diff --git a/client/contracts/ERC20Tornado.json b/client/contracts/ERC20Tornado.json index 2361706..0b07c2d 100644 --- a/client/contracts/ERC20Tornado.json +++ b/client/contracts/ERC20Tornado.json @@ -8,6 +8,11 @@ "name": "_verifier", "type": "address" }, + { + "internalType": "contract IFeeManager", + "name": "_feeManager", + "type": "address" + }, { "internalType": "uint256", "name": "_denomination", @@ -215,6 +220,21 @@ "stateMutability": "payable", "type": "function" }, + { + "constant": true, + "inputs": [], + "name": "feeManager", + "outputs": [ + { + "internalType": "contract IFeeManager", + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, { "constant": true, "inputs": [ @@ -406,6 +426,21 @@ "stateMutability": "view", "type": "function" }, + { + "constant": true, + "inputs": [], + "name": "protocolFee", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, { "constant": true, "inputs": [ @@ -539,21 +574,21 @@ "type": "function" } ], - "metadata": "{\"compiler\":{\"version\":\"0.5.17+commit.d19bba13\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"contract IVerifier\",\"name\":\"_verifier\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_denomination\",\"type\":\"uint256\"},{\"internalType\":\"uint32\",\"name\":\"_merkleTreeHeight\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"_operator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"commitment\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"leafIndex\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"}],\"name\":\"Deposit\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"nullifierHash\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"relayer\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\"}],\"name\":\"Withdrawal\",\"type\":\"event\"},{\"constant\":true,\"inputs\":[],\"name\":\"FIELD_SIZE\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"ROOT_HISTORY_SIZE\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"ZERO_VALUE\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"_newOperator\",\"type\":\"address\"}],\"name\":\"changeOperator\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"commitments\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"currentRootIndex\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"denomination\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_commitment\",\"type\":\"bytes32\"}],\"name\":\"deposit\",\"outputs\":[],\"payable\":true,\"stateMutability\":\"payable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"filledSubtrees\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"getLastRoot\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_left\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"_right\",\"type\":\"bytes32\"}],\"name\":\"hashLeftRight\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_root\",\"type\":\"bytes32\"}],\"name\":\"isKnownRoot\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_nullifierHash\",\"type\":\"bytes32\"}],\"name\":\"isSpent\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"_nullifierHashes\",\"type\":\"bytes32[]\"}],\"name\":\"isSpentArray\",\"outputs\":[{\"internalType\":\"bool[]\",\"name\":\"spent\",\"type\":\"bool[]\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"levels\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"nextIndex\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"nullifierHashes\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"operator\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"roots\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"token\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"_newVerifier\",\"type\":\"address\"}],\"name\":\"updateVerifier\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"verifier\",\"outputs\":[{\"internalType\":\"contract IVerifier\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"_proof\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"_root\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"_nullifierHash\",\"type\":\"bytes32\"},{\"internalType\":\"address payable\",\"name\":\"_recipient\",\"type\":\"address\"},{\"internalType\":\"address payable\",\"name\":\"_relayer\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_fee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_refund\",\"type\":\"uint256\"}],\"name\":\"withdraw\",\"outputs\":[],\"payable\":true,\"stateMutability\":\"payable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"zeros\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"methods\":{\"changeOperator(address)\":{\"details\":\"operator can change his address \"},\"deposit(bytes32)\":{\"details\":\"Deposit funds into the contract. The caller must send (for ETH) or approve (for ERC20) value equal to or `denomination` of this instance.\",\"params\":{\"_commitment\":\"the note commitment, which is PedersenHash(nullifier + secret)\"}},\"getLastRoot()\":{\"details\":\"Returns the last root\"},\"hashLeftRight(bytes32,bytes32)\":{\"details\":\"Hash 2 tree leaves, returns MiMC(_left, _right)\"},\"isKnownRoot(bytes32)\":{\"details\":\"Whether the root is present in the root history\"},\"isSpent(bytes32)\":{\"details\":\"whether a note is already spent \"},\"isSpentArray(bytes32[])\":{\"details\":\"whether an array of notes is already spent \"},\"updateVerifier(address)\":{\"details\":\"allow operator to update SNARK verification keys. This is needed to update keys after the final trusted setup ceremony is held. After that operator rights are supposed to be transferred to zero address\"},\"withdraw(bytes,bytes32,bytes32,address,address,uint256,uint256)\":{\"details\":\"Withdraw a deposit from the contract. `proof` is a zkSNARK proof data, and input is an array of circuit public inputs `input` array consists of: - merkle root of all deposits in the contract - hash of unique deposit nullifier to prevent double spends - the recipient of funds - optional fee that goes to the transaction sender (usually a relay)\"}}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/Users/brianli/dotfiles/tornado-core/contracts/ERC20Tornado.sol\":\"ERC20Tornado\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/Users/brianli/dotfiles/tornado-core/contracts/ERC20Tornado.sol\":{\"keccak256\":\"0x708938fd083239d2e9cd17e457cf25a2150bb900082fad58af8b689f786aef9c\",\"urls\":[\"bzz-raw://f345afd62002f883c60c032cd0cb051663dc8a3e59a52bf44109633b96cb3685\",\"dweb:/ipfs/QmNwjnH2uyNoq9GPjNUv6Z1mgtiR5rY3K7EHY74RBjXMpw\"]},\"/Users/brianli/dotfiles/tornado-core/contracts/MerkleTreeWithHistory.sol\":{\"keccak256\":\"0x671cc9268dd70c47d18795f7e37fc4df11763fcbcca026edcf163f4239036254\",\"urls\":[\"bzz-raw://9c36a207ed164b60a514eae89bfb15e5b4de4b346c4a89a7a1cb50a940bc699d\",\"dweb:/ipfs/QmbPEqFJAGMpYduLEFsbPazyBsYWcjRtpth8X26wCHALwk\"]},\"/Users/brianli/dotfiles/tornado-core/contracts/Tornado.sol\":{\"keccak256\":\"0x09c70432243629ef44697fd3d0ca89d3578e2b1c9f46d90757371edb163c14da\",\"urls\":[\"bzz-raw://d2a2c9fa85c32cb15793282792cd25c71804a10aa5a911e41f3bcd07f5df117e\",\"dweb:/ipfs/QmeQ1s6ypNnP7fossR4x9svuuLjcSBtQ5spUTmWGZY5Ljr\"]},\"@openzeppelin/contracts/utils/ReentrancyGuard.sol\":{\"keccak256\":\"0xb63221b23818d622bfd83d18e0968307e4fcb7a35536bdceded76e1cf8349acd\",\"urls\":[\"bzz-raw://44e1e8c22362c4708a8c3362735f1465f5b05e2f7315e16c7010d694ce019d73\",\"dweb:/ipfs/QmWj9g8X1hxkXRre2kwkEjLBetjuzmSbWHD81bsSojnBkS\"]}},\"version\":1}", - "bytecode": "0x6080604052600380546001600160401b03191690553480156200002157600080fd5b5060405162001d1238038062001d12833981810160405260a08110156200004757600080fd5b50805160208201516040830151606084015160809094015192939192909190848484848163ffffffff8116620000af5760405162461bcd60e51b815260040180806020018281038252602781526020018062001c896027913960400191505060405180910390fd5b60208163ffffffff1610620000f65760405162461bcd60e51b815260040180806020018281038252602281526020018062001cd06022913960400191505060405180910390fd5b6000805463ffffffff191663ffffffff83161781556002805460018181019092557f2fe54c60d3acabf3343a35b6eba15db4821b340f76e741e2249685ed4899af6c60008051602062001c48833981519152909101819055815480830183559282905260008051602062001cf28339815191529092018290555b60005463ffffffff9081169082161015620001e4576200019a82806001600160e01b036200029f16565b60028054600181810190925560008051602062001c488339815191520182905580548082018255600082905260008051602062001cf2833981519152018290559092500162000170565b50620001fa81806001600160e01b036200029f16565b60046000015550506068805460ff19166001179055826200024d5760405162461bcd60e51b815260040180806020018281038252602581526020018062001c236025913960400191505060405180910390fd5b606c80546001600160a01b039586166001600160a01b031991821617909155606d80549286169282169290921790915560699290925550606e8054939092169216919091179055506200048c92505050565b600060008051602062001cb0833981519152831062000305576040805162461bcd60e51b815260206004820181905260248201527f5f6c6566742073686f756c6420626520696e7369646520746865206669656c64604482015290519081900360640190fd5b60008051602062001cb08339815191528210620003545760405162461bcd60e51b815260040180806020018281038252602181526020018062001c686021913960400191505060405180910390fd5b6040805163f47d33b560e01b81526004810185905260006024820181905282518693919273__Hasher________________________________9263f47d33b592604480840193829003018186803b158015620003af57600080fd5b505af4158015620003c4573d6000803e3d6000fd5b505050506040513d6040811015620003db57600080fd5b508051602090910151909250905060008051602062001cb0833981519152848308915073__Hasher________________________________63f47d33b583836040518363ffffffff1660e01b81526004018083815260200182815260200192505050604080518083038186803b1580156200045557600080fd5b505af41580156200046a573d6000803e3d6000fd5b505050506040513d60408110156200048157600080fd5b505195945050505050565b611787806200049c6000396000f3fe60806040526004361061014b5760003560e01c806397fc007c116100b6578063e5285dcc1161006f578063e5285dcc14610514578063e82955881461053e578063ec73295914610568578063f178e47c1461057d578063fc0c546a146105a7578063fc7e9c6f146105bc5761014b565b806397fc007c146103a55780639fa12d0b146103d8578063b214faa5146104a3578063ba70f757146104c0578063c2b40ae4146104d5578063cd87a3b4146104ff5761014b565b80634ecf518b116101085780634ecf518b146102e4578063570ca735146103125780636d9833e314610327578063839df945146103515780638bca6d161461037b57806390eeb02b146103905761014b565b806306394c9b1461015057806317cc915c1461018557806321a0adb6146101c35780632b7ac3f31461025c57806338bf282e1461028d578063414a37ba146102cf575b600080fd5b34801561015c57600080fd5b506101836004803603602081101561017357600080fd5b50356001600160a01b03166105d1565b005b34801561019157600080fd5b506101af600480360360208110156101a857600080fd5b503561063c565b604080519115158252519081900360200190f35b610183600480360360e08110156101d957600080fd5b810190602081018135600160201b8111156101f357600080fd5b82018360208201111561020557600080fd5b803590602001918460018302840111600160201b8311171561022657600080fd5b91935091508035906020810135906001600160a01b03604082013581169160608101359091169060808101359060a00135610651565b34801561026857600080fd5b5061027161099e565b604080516001600160a01b039092168252519081900360200190f35b34801561029957600080fd5b506102bd600480360360408110156102b057600080fd5b50803590602001356109ad565b60408051918252519081900360200190f35b3480156102db57600080fd5b506102bd610b8e565b3480156102f057600080fd5b506102f9610ba0565b6040805163ffffffff9092168252519081900360200190f35b34801561031e57600080fd5b50610271610bac565b34801561033357600080fd5b506101af6004803603602081101561034a57600080fd5b5035610bbb565b34801561035d57600080fd5b506101af6004803603602081101561037457600080fd5b5035610c2e565b34801561038757600080fd5b506102bd610c43565b34801561039c57600080fd5b506102f9610c49565b3480156103b157600080fd5b50610183600480360360208110156103c857600080fd5b50356001600160a01b0316610c55565b3480156103e457600080fd5b50610453600480360360208110156103fb57600080fd5b810190602081018135600160201b81111561041557600080fd5b82018360208201111561042757600080fd5b803590602001918460208302840111600160201b8311171561044857600080fd5b509092509050610cc0565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561048f578181015183820152602001610477565b505050509050019250505060405180910390f35b610183600480360360208110156104b957600080fd5b5035610d48565b3480156104cc57600080fd5b506102bd610e75565b3480156104e157600080fd5b506102bd600480360360208110156104f857600080fd5b5035610e95565b34801561050b57600080fd5b506102f9610ea9565b34801561052057600080fd5b506101af6004803603602081101561053757600080fd5b5035610eae565b34801561054a57600080fd5b506102bd6004803603602081101561056157600080fd5b5035610ec3565b34801561057457600080fd5b506102bd610ee1565b34801561058957600080fd5b506102bd600480360360208110156105a057600080fd5b5035610f05565b3480156105b357600080fd5b50610271610f12565b3480156105c857600080fd5b506102f9610f21565b606d546001600160a01b0316331461061a5760405162461bcd60e51b815260040180806020018281038252602581526020018061172e6025913960400191505060405180910390fd5b606d80546001600160a01b0319166001600160a01b0392909216919091179055565b606a6020526000908152604090205460ff1681565b60685460ff166106a8576040805162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015290519081900360640190fd5b6068805460ff19169055606954821115610709576040805162461bcd60e51b815260206004820152601a60248201527f4665652065786365656473207472616e736665722076616c7565000000000000604482015290519081900360640190fd5b6000858152606a602052604090205460ff161561076d576040805162461bcd60e51b815260206004820152601f60248201527f546865206e6f746520686173206265656e20616c7265616479207370656e7400604482015290519081900360640190fd5b61077686610bbb565b6107c7576040805162461bcd60e51b815260206004820152601c60248201527f43616e6e6f742066696e6420796f7572206d65726b6c6520726f6f7400000000604482015290519081900360640190fd5b606c546040805160c08082018352898252602082018990526001600160a01b038881168385015287811660608401526080830187905260a08301869052925163695ef6f960e01b8152929093169263695ef6f9928c928c9290916004810191829160240190849080838360005b8381101561084c578181015183820152602001610834565b505050509050018281038252858582818152602001925080828437600081840152601f19601f820116905080830192505050945050505050602060405180830381600087803b15801561089e57600080fd5b505af11580156108b2573d6000803e3d6000fd5b505050506040513d60208110156108c857600080fd5b5051610914576040805162461bcd60e51b815260206004820152601660248201527524b73b30b634b2103bb4ba34323930bb90383937b7b360511b604482015290519081900360640190fd5b6000858152606a60205260409020805460ff1916600117905561093984848484610f34565b604080516001600160a01b038681168252602082018890528183018590529151918516917fe9e508bad6d4c3227e881ca19068f099da81b5164dd6d62b2eaf1e8bc6c349319181900360600190a250506068805460ff19166001179055505050505050565b606c546001600160a01b031681565b60006000805160206116bd8339815191528310610a11576040805162461bcd60e51b815260206004820181905260248201527f5f6c6566742073686f756c6420626520696e7369646520746865206669656c64604482015290519081900360640190fd5b6000805160206116bd8339815191528210610a5d5760405162461bcd60e51b815260040180806020018281038252602181526020018061166d6021913960400191505060405180910390fd5b6040805163f47d33b560e01b81526004810185905260006024820181905282518693919273__Hasher________________________________9263f47d33b592604480840193829003018186803b158015610ab757600080fd5b505af4158015610acb573d6000803e3d6000fd5b505050506040513d6040811015610ae157600080fd5b50805160209091015190925090506000805160206116bd833981519152848308915073__Hasher________________________________63f47d33b583836040518363ffffffff1660e01b81526004018083815260200182815260200192505050604080518083038186803b158015610b5957600080fd5b505af4158015610b6d573d6000803e3d6000fd5b505050506040513d6040811015610b8357600080fd5b505195945050505050565b6000805160206116bd83398151915281565b60005463ffffffff1681565b606d546001600160a01b031681565b600081610bca57506000610c29565b60035463ffffffff165b60048163ffffffff1660648110610be757fe5b0154831415610bfa576001915050610c29565b63ffffffff8116610c09575060645b6003546000199091019063ffffffff80831691161415610bd45760009150505b919050565b606b6020526000908152604090205460ff1681565b60695481565b60035463ffffffff1681565b606d546001600160a01b03163314610c9e5760405162461bcd60e51b815260040180806020018281038252602581526020018061172e6025913960400191505060405180910390fd5b606c80546001600160a01b0319166001600160a01b0392909216919091179055565b604080518281526020808402820101909152606090828015610cec578160200160208202803883390190505b50905060005b82811015610d4157610d15848483818110610d0957fe5b90506020020135610eae565b15610d39576001828281518110610d2857fe5b911515602092830291909101909101525b600101610cf2565b5092915050565b60685460ff16610d9f576040805162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015290519081900360640190fd5b6068805460ff191690556000818152606b602052604090205460ff1615610df75760405162461bcd60e51b81526004018080602001828103825260218152602001806116dd6021913960400191505060405180910390fd5b6000610e028261102f565b6000838152606b60205260409020805460ff191660011790559050610e256111c6565b6040805163ffffffff83168152426020820152815184927fa945e51eec50ab98c161376f0db4cf2aeba3ec92755fe2fcd388bdbbb80ff196928290030190a250506068805460ff19166001179055565b60035460009060049063ffffffff1660648110610e8e57fe5b0154905090565b60048160648110610ea257fe5b0154905081565b606481565b6000908152606a602052604090205460ff1690565b60028181548110610ed057fe5b600091825260209091200154905081565b7f2fe54c60d3acabf3343a35b6eba15db4821b340f76e741e2249685ed4899af6c81565b60018181548110610ed057fe5b606e546001600160a01b031681565b600354600160201b900463ffffffff1681565b803414610f725760405162461bcd60e51b81526004018080602001828103825260308152602001806116166030913960400191505060405180910390fd5b610f80848360695403611212565b8115610f9057610f908383611212565b8015611029576040516000906001600160a01b0386169083908381818185875af1925050503d8060008114610fe1576040519150601f19603f3d011682016040523d82523d6000602084013e610fe6565b606091505b5050905080611027576040516001600160a01b0385169083156108fc029084906000818181858888f19350505050158015611025573d6000803e3d6000fd5b505b505b50505050565b60035460008054909163ffffffff600160201b909104811691811660020a1681141561108c5760405162461bcd60e51b815260040180806020018281038252602f8152602001806115bd602f913960400191505060405180910390fd5b6003805463ffffffff600160201b80830482166001019091160267ffffffff000000001990911617905582600080805b60005463ffffffff908116908216101561116457600185166111205783925060028163ffffffff16815481106110ee57fe5b906000526020600020015491508360018263ffffffff168154811061110f57fe5b600091825260209091200155611144565b60018163ffffffff168154811061113357fe5b906000526020600020015492508391505b61114e83836109ad565b9350600263ffffffff86160494506001016110bc565b5060035460649063ffffffff908116600101166003805463ffffffff19169290910663ffffffff9081169290921790819055849160049116606481106111a657fe5b01555050600354600160201b900463ffffffff1660001901949350505050565b34156112035760405162461bcd60e51b81526004018080602001828103825260308152602001806116fe6030913960400191505060405180910390fd5b61121033306069546113dd565b565b606e54604080516001600160a01b038581166024830152604480830186905283518084039091018152606490920183526020820180516001600160e01b031663a9059cbb60e01b178152925182516000956060959316939282918083835b6020831061128f5780518252601f199092019160209182019101611270565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d80600081146112f1576040519150601f19603f3d011682016040523d82523d6000602084013e6112f6565b606091505b509150915081611341576040805162461bcd60e51b81526020600482015260116024820152706e6f7420656e6f75676820746f6b656e7360781b604482015290519081900360640190fd5b8051156110295780516020146113885760405162461bcd60e51b815260040180806020018281038252602a8152602001806115ec602a913960400191505060405180910390fd5b80806020019051602081101561139d57600080fd5b50519150816110295760405162461bcd60e51b81526004018080602001828103825260278152602001806116466027913960400191505060405180910390fd5b606e54604080516001600160a01b0386811660248301528581166044830152606480830186905283518084039091018152608490920183526020820180516001600160e01b03166323b872dd60e01b178152925182516000956060959316939282918083835b602083106114625780518252601f199092019160209182019101611443565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d80600081146114c4576040519150601f19603f3d011682016040523d82523d6000602084013e6114c9565b606091505b509150915081611520576040805162461bcd60e51b815260206004820152601960248201527f6e6f7420656e6f75676820616c6c6f77656420746f6b656e7300000000000000604482015290519081900360640190fd5b8051156110275780516020146115675760405162461bcd60e51b815260040180806020018281038252602a8152602001806115ec602a913960400191505060405180910390fd5b80806020019051602081101561157c57600080fd5b50519150816110275760405162461bcd60e51b815260040180806020018281038252602f81526020018061168e602f913960400191505060405180910390fdfe4d65726b6c6520747265652069732066756c6c2e204e6f206d6f7265206c656166732063616e20626520616464656464617461206c656e6774682073686f756c64206265206569746865722030206f72203332206279746573496e636f727265637420726566756e6420616d6f756e742072656365697665642062792074686520636f6e74726163746e6f7420656e6f75676820746f6b656e732e20546f6b656e2072657475726e732066616c73652e5f72696768742073686f756c6420626520696e7369646520746865206669656c646e6f7420656e6f75676820616c6c6f77656420746f6b656e732e20546f6b656e2072657475726e732066616c73652e30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000154686520636f6d6d69746d656e7420686173206265656e207375626d69747465644554482076616c756520697320737570706f73656420746f206265203020666f7220455243323020696e7374616e63654f6e6c79206f70657261746f722063616e2063616c6c20746869732066756e6374696f6e2ea265627a7a72315820494b71139a3b0e5b3d4285ff58127e5c54881ed5204c3d740b94c1c4832e681c64736f6c6343000511003264656e6f6d696e6174696f6e2073686f756c642062652067726561746572207468616e2030405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace5f72696768742073686f756c6420626520696e7369646520746865206669656c645f747265654c6576656c732073686f756c642062652067726561746572207468616e207a65726f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000015f747265654c6576656c732073686f756c64206265206c657373207468616e203332b10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6", - "deployedBytecode": "0x60806040526004361061014b5760003560e01c806397fc007c116100b6578063e5285dcc1161006f578063e5285dcc14610514578063e82955881461053e578063ec73295914610568578063f178e47c1461057d578063fc0c546a146105a7578063fc7e9c6f146105bc5761014b565b806397fc007c146103a55780639fa12d0b146103d8578063b214faa5146104a3578063ba70f757146104c0578063c2b40ae4146104d5578063cd87a3b4146104ff5761014b565b80634ecf518b116101085780634ecf518b146102e4578063570ca735146103125780636d9833e314610327578063839df945146103515780638bca6d161461037b57806390eeb02b146103905761014b565b806306394c9b1461015057806317cc915c1461018557806321a0adb6146101c35780632b7ac3f31461025c57806338bf282e1461028d578063414a37ba146102cf575b600080fd5b34801561015c57600080fd5b506101836004803603602081101561017357600080fd5b50356001600160a01b03166105d1565b005b34801561019157600080fd5b506101af600480360360208110156101a857600080fd5b503561063c565b604080519115158252519081900360200190f35b610183600480360360e08110156101d957600080fd5b810190602081018135600160201b8111156101f357600080fd5b82018360208201111561020557600080fd5b803590602001918460018302840111600160201b8311171561022657600080fd5b91935091508035906020810135906001600160a01b03604082013581169160608101359091169060808101359060a00135610651565b34801561026857600080fd5b5061027161099e565b604080516001600160a01b039092168252519081900360200190f35b34801561029957600080fd5b506102bd600480360360408110156102b057600080fd5b50803590602001356109ad565b60408051918252519081900360200190f35b3480156102db57600080fd5b506102bd610b8e565b3480156102f057600080fd5b506102f9610ba0565b6040805163ffffffff9092168252519081900360200190f35b34801561031e57600080fd5b50610271610bac565b34801561033357600080fd5b506101af6004803603602081101561034a57600080fd5b5035610bbb565b34801561035d57600080fd5b506101af6004803603602081101561037457600080fd5b5035610c2e565b34801561038757600080fd5b506102bd610c43565b34801561039c57600080fd5b506102f9610c49565b3480156103b157600080fd5b50610183600480360360208110156103c857600080fd5b50356001600160a01b0316610c55565b3480156103e457600080fd5b50610453600480360360208110156103fb57600080fd5b810190602081018135600160201b81111561041557600080fd5b82018360208201111561042757600080fd5b803590602001918460208302840111600160201b8311171561044857600080fd5b509092509050610cc0565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561048f578181015183820152602001610477565b505050509050019250505060405180910390f35b610183600480360360208110156104b957600080fd5b5035610d48565b3480156104cc57600080fd5b506102bd610e75565b3480156104e157600080fd5b506102bd600480360360208110156104f857600080fd5b5035610e95565b34801561050b57600080fd5b506102f9610ea9565b34801561052057600080fd5b506101af6004803603602081101561053757600080fd5b5035610eae565b34801561054a57600080fd5b506102bd6004803603602081101561056157600080fd5b5035610ec3565b34801561057457600080fd5b506102bd610ee1565b34801561058957600080fd5b506102bd600480360360208110156105a057600080fd5b5035610f05565b3480156105b357600080fd5b50610271610f12565b3480156105c857600080fd5b506102f9610f21565b606d546001600160a01b0316331461061a5760405162461bcd60e51b815260040180806020018281038252602581526020018061172e6025913960400191505060405180910390fd5b606d80546001600160a01b0319166001600160a01b0392909216919091179055565b606a6020526000908152604090205460ff1681565b60685460ff166106a8576040805162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015290519081900360640190fd5b6068805460ff19169055606954821115610709576040805162461bcd60e51b815260206004820152601a60248201527f4665652065786365656473207472616e736665722076616c7565000000000000604482015290519081900360640190fd5b6000858152606a602052604090205460ff161561076d576040805162461bcd60e51b815260206004820152601f60248201527f546865206e6f746520686173206265656e20616c7265616479207370656e7400604482015290519081900360640190fd5b61077686610bbb565b6107c7576040805162461bcd60e51b815260206004820152601c60248201527f43616e6e6f742066696e6420796f7572206d65726b6c6520726f6f7400000000604482015290519081900360640190fd5b606c546040805160c08082018352898252602082018990526001600160a01b038881168385015287811660608401526080830187905260a08301869052925163695ef6f960e01b8152929093169263695ef6f9928c928c9290916004810191829160240190849080838360005b8381101561084c578181015183820152602001610834565b505050509050018281038252858582818152602001925080828437600081840152601f19601f820116905080830192505050945050505050602060405180830381600087803b15801561089e57600080fd5b505af11580156108b2573d6000803e3d6000fd5b505050506040513d60208110156108c857600080fd5b5051610914576040805162461bcd60e51b815260206004820152601660248201527524b73b30b634b2103bb4ba34323930bb90383937b7b360511b604482015290519081900360640190fd5b6000858152606a60205260409020805460ff1916600117905561093984848484610f34565b604080516001600160a01b038681168252602082018890528183018590529151918516917fe9e508bad6d4c3227e881ca19068f099da81b5164dd6d62b2eaf1e8bc6c349319181900360600190a250506068805460ff19166001179055505050505050565b606c546001600160a01b031681565b60006000805160206116bd8339815191528310610a11576040805162461bcd60e51b815260206004820181905260248201527f5f6c6566742073686f756c6420626520696e7369646520746865206669656c64604482015290519081900360640190fd5b6000805160206116bd8339815191528210610a5d5760405162461bcd60e51b815260040180806020018281038252602181526020018061166d6021913960400191505060405180910390fd5b6040805163f47d33b560e01b81526004810185905260006024820181905282518693919273__Hasher________________________________9263f47d33b592604480840193829003018186803b158015610ab757600080fd5b505af4158015610acb573d6000803e3d6000fd5b505050506040513d6040811015610ae157600080fd5b50805160209091015190925090506000805160206116bd833981519152848308915073__Hasher________________________________63f47d33b583836040518363ffffffff1660e01b81526004018083815260200182815260200192505050604080518083038186803b158015610b5957600080fd5b505af4158015610b6d573d6000803e3d6000fd5b505050506040513d6040811015610b8357600080fd5b505195945050505050565b6000805160206116bd83398151915281565b60005463ffffffff1681565b606d546001600160a01b031681565b600081610bca57506000610c29565b60035463ffffffff165b60048163ffffffff1660648110610be757fe5b0154831415610bfa576001915050610c29565b63ffffffff8116610c09575060645b6003546000199091019063ffffffff80831691161415610bd45760009150505b919050565b606b6020526000908152604090205460ff1681565b60695481565b60035463ffffffff1681565b606d546001600160a01b03163314610c9e5760405162461bcd60e51b815260040180806020018281038252602581526020018061172e6025913960400191505060405180910390fd5b606c80546001600160a01b0319166001600160a01b0392909216919091179055565b604080518281526020808402820101909152606090828015610cec578160200160208202803883390190505b50905060005b82811015610d4157610d15848483818110610d0957fe5b90506020020135610eae565b15610d39576001828281518110610d2857fe5b911515602092830291909101909101525b600101610cf2565b5092915050565b60685460ff16610d9f576040805162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015290519081900360640190fd5b6068805460ff191690556000818152606b602052604090205460ff1615610df75760405162461bcd60e51b81526004018080602001828103825260218152602001806116dd6021913960400191505060405180910390fd5b6000610e028261102f565b6000838152606b60205260409020805460ff191660011790559050610e256111c6565b6040805163ffffffff83168152426020820152815184927fa945e51eec50ab98c161376f0db4cf2aeba3ec92755fe2fcd388bdbbb80ff196928290030190a250506068805460ff19166001179055565b60035460009060049063ffffffff1660648110610e8e57fe5b0154905090565b60048160648110610ea257fe5b0154905081565b606481565b6000908152606a602052604090205460ff1690565b60028181548110610ed057fe5b600091825260209091200154905081565b7f2fe54c60d3acabf3343a35b6eba15db4821b340f76e741e2249685ed4899af6c81565b60018181548110610ed057fe5b606e546001600160a01b031681565b600354600160201b900463ffffffff1681565b803414610f725760405162461bcd60e51b81526004018080602001828103825260308152602001806116166030913960400191505060405180910390fd5b610f80848360695403611212565b8115610f9057610f908383611212565b8015611029576040516000906001600160a01b0386169083908381818185875af1925050503d8060008114610fe1576040519150601f19603f3d011682016040523d82523d6000602084013e610fe6565b606091505b5050905080611027576040516001600160a01b0385169083156108fc029084906000818181858888f19350505050158015611025573d6000803e3d6000fd5b505b505b50505050565b60035460008054909163ffffffff600160201b909104811691811660020a1681141561108c5760405162461bcd60e51b815260040180806020018281038252602f8152602001806115bd602f913960400191505060405180910390fd5b6003805463ffffffff600160201b80830482166001019091160267ffffffff000000001990911617905582600080805b60005463ffffffff908116908216101561116457600185166111205783925060028163ffffffff16815481106110ee57fe5b906000526020600020015491508360018263ffffffff168154811061110f57fe5b600091825260209091200155611144565b60018163ffffffff168154811061113357fe5b906000526020600020015492508391505b61114e83836109ad565b9350600263ffffffff86160494506001016110bc565b5060035460649063ffffffff908116600101166003805463ffffffff19169290910663ffffffff9081169290921790819055849160049116606481106111a657fe5b01555050600354600160201b900463ffffffff1660001901949350505050565b34156112035760405162461bcd60e51b81526004018080602001828103825260308152602001806116fe6030913960400191505060405180910390fd5b61121033306069546113dd565b565b606e54604080516001600160a01b038581166024830152604480830186905283518084039091018152606490920183526020820180516001600160e01b031663a9059cbb60e01b178152925182516000956060959316939282918083835b6020831061128f5780518252601f199092019160209182019101611270565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d80600081146112f1576040519150601f19603f3d011682016040523d82523d6000602084013e6112f6565b606091505b509150915081611341576040805162461bcd60e51b81526020600482015260116024820152706e6f7420656e6f75676820746f6b656e7360781b604482015290519081900360640190fd5b8051156110295780516020146113885760405162461bcd60e51b815260040180806020018281038252602a8152602001806115ec602a913960400191505060405180910390fd5b80806020019051602081101561139d57600080fd5b50519150816110295760405162461bcd60e51b81526004018080602001828103825260278152602001806116466027913960400191505060405180910390fd5b606e54604080516001600160a01b0386811660248301528581166044830152606480830186905283518084039091018152608490920183526020820180516001600160e01b03166323b872dd60e01b178152925182516000956060959316939282918083835b602083106114625780518252601f199092019160209182019101611443565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d80600081146114c4576040519150601f19603f3d011682016040523d82523d6000602084013e6114c9565b606091505b509150915081611520576040805162461bcd60e51b815260206004820152601960248201527f6e6f7420656e6f75676820616c6c6f77656420746f6b656e7300000000000000604482015290519081900360640190fd5b8051156110275780516020146115675760405162461bcd60e51b815260040180806020018281038252602a8152602001806115ec602a913960400191505060405180910390fd5b80806020019051602081101561157c57600080fd5b50519150816110275760405162461bcd60e51b815260040180806020018281038252602f81526020018061168e602f913960400191505060405180910390fdfe4d65726b6c6520747265652069732066756c6c2e204e6f206d6f7265206c656166732063616e20626520616464656464617461206c656e6774682073686f756c64206265206569746865722030206f72203332206279746573496e636f727265637420726566756e6420616d6f756e742072656365697665642062792074686520636f6e74726163746e6f7420656e6f75676820746f6b656e732e20546f6b656e2072657475726e732066616c73652e5f72696768742073686f756c6420626520696e7369646520746865206669656c646e6f7420656e6f75676820616c6c6f77656420746f6b656e732e20546f6b656e2072657475726e732066616c73652e30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000154686520636f6d6d69746d656e7420686173206265656e207375626d69747465644554482076616c756520697320737570706f73656420746f206265203020666f7220455243323020696e7374616e63654f6e6c79206f70657261746f722063616e2063616c6c20746869732066756e6374696f6e2ea265627a7a72315820494b71139a3b0e5b3d4285ff58127e5c54881ed5204c3d740b94c1c4832e681c64736f6c63430005110032", - "sourceMap": "805:2189:0:-;;;1430:34:2;;;-1:-1:-1;;;;;;1468:27:2;;;867:237:0;5:2:-1;;;;30:1;27;20:12;5:2;867:237:0;;;;;;;;;;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;-1:-1;867:237:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1646:15:2;;;1638:67;;;;-1:-1:-1;;;1638:67:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1733:2;1719:11;:16;;;1711:63;;;;-1:-1:-1;;;1711:63:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1780:6;:20;;-1:-1:-1;;1780:20:2;;;;;;;1854:5;27:10:-1;;-1:-1;23:18;;;45:23;;;1088:77:2;-1:-1:-1;;;;;;;;;;;1854:23:2;;;;;;27:10:-1;;23:18;;;45:23;;1883:32:2;;;;-1:-1:-1;;;;;;;;;;;1883:32:2;;;;;;1922:175;1945:6;;;;;;1941:10;;;;1922:175;;;1980:39;1994:11;;-1:-1:-1;;;;;1980:13:2;:39;:::i;:::-;2027:5;27:10:-1;;39:1;23:18;;;45:23;;;-1:-1;;;;;;;;;;;2027:23:2;;;;27:10:-1;;23:18;;;45:23;;-1:-1;2058:32:2;;;-1:-1:-1;;;;;;;;;;;2058:32:2;;;;1966:53;;-1:-1:-1;1953:3:2;1922:175;;;-1:-1:-1;2114:39:2;2128:11;;-1:-1:-1;;;;;2114:13:2;:39;:::i;:::-;2103:5;2109:1;2103:8;:50;-1:-1:-1;;1421:11:18;:18;;-1:-1:-1;;1421:18:18;1435:4;1421:18;;;2260:17:8;2252:67;;;;-1:-1:-1;;;2252:67:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2325:8;:20;;-1:-1:-1;;;;;2325:20:8;;;-1:-1:-1;;;;;;2325:20:8;;;;;;;2351:8;:20;;;;;;;;;;;;;;;2377:12;:28;;;;-1:-1:-1;1085:5:0;:14;;;;;;;;;;;;;;-1:-1:-1;805:2189:0;;-1:-1:-1;;;805:2189:0;2230:445:2;2305:7;-1:-1:-1;;;;;;;;;;;2328:27:2;;2320:72;;;;;-1:-1:-1;;;2320:72:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2406:28:2;;2398:74;;;;-1:-1:-1;;;2398:74:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2538:23;;;-1:-1:-1;;;2538:23:2;;;;;;;;2478:9;2538:23;;;;;;;;2498:5;;2478:9;;2538:6;;:17;;:23;;;;;;;;;;:6;:23;;;5:2:-1;;;;30:1;27;20:12;5:2;2538:23:2;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2538:23:2;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2538:23:2;;;;;;;;;-1:-1:-1;2538:23:2;-1:-1:-1;;;;;;;;;;;;2589:6:2;2578:1;2571:38;2567:42;;2624:6;:17;2642:1;2645;2624:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2624:23:2;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2624:23:2;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2624:23:2;;2230:445;-1:-1:-1;;;;;2230:445:2:o;805:2189:0:-;;;;;;;", - "deployedSourceMap": "805:2189:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5355:102:8;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5355:102:8;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5355:102:8;-1:-1:-1;;;;;5355:102:8;;:::i;:::-;;1089:47;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1089:47:8;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1089:47:8;;:::i;:::-;;;;;;;;;;;;;;;;;;3478:781;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;3478:781:8;;;;;;;;-1:-1:-1;;;5:28;;2:2;;;46:1;43;36:12;2:2;3478:781:8;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;3478:781:8;;;;;;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;3478:781:8;;-1:-1:-1;3478:781:8;-1:-1:-1;3478:781:8;;;;;;;;-1:-1:-1;;;;;3478:781:8;;;;;;;;;;;;;;;;;;;;;;;;:::i;1278:25::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1278:25:8;;;:::i;:::-;;;;-1:-1:-1;;;;;1278:25:8;;;;;;;;;;;;;;2230:445:2;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2230:445:2;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2230:445:2;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;933:114;;8:9:-1;5:2;;;30:1;27;20:12;5:2;933:114:2;;;:::i;1209:20::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1209:20:2;;;:::i;:::-;;;;;;;;;;;;;;;;;;;1463:23:8;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1463:23:8;;;:::i;3553:342:2:-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3553:342:2;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3553:342:2;;:::i;1231:43:8:-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1231:43:8;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1231:43:8;;:::i;1058:27::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1058:27:8;;;:::i;1430:34:2:-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1430:34:2;;;:::i;5192:113:8:-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5192:113:8;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5192:113:8;-1:-1:-1;;;;;5192:113:8;;:::i;4669:293::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4669:293:8;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;4669:293:8;;;;;;;;-1:-1:-1;;;5:28;;2:2;;;46:1;43;36:12;2:2;4669:293:8;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;4669:293:8;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;-1:-1;;;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;-1:-1;4669:293:8;;-1:-1:-1;4669:293:8;-1:-1:-1;4669:293:8;:::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;4669:293:8;;;;;;;;;;;;;;;;;2658:324;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2658:324:8;;:::i;3941:93:2:-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3941:93:2;;;:::i;1549:39::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1549:39:2;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1549:39:2;;:::i;1499:46::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1499:46:2;;;:::i;4492:116:8:-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4492:116:8;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;4492:116:8;;:::i;1404:22:2:-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1404:22:2;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1404:22:2;;:::i;1051:114::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1051:114:2;;;:::i;1369:31::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1369:31:2;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1369:31:2;;:::i;842:20:0:-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;842:20:0;;;:::i;1468:27:2:-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1468:27:2;;;:::i;5355:102:8:-;1540:8;;-1:-1:-1;;;;;1540:8:8;1526:10;:22;1518:72;;;;-1:-1:-1;;;1518:72:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5429:8;:23;;-1:-1:-1;;;;;;5429:23:8;-1:-1:-1;;;;;5429:23:8;;;;;;;;;;5355:102::o;1089:47::-;;;;;;;;;;;;;;;:::o;3478:781::-;1934:11:18;;;;1926:55;;;;;-1:-1:-1;;;1926:55:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;2056:11;:19;;-1:-1:-1;;2056:19:18;;;3695:12:8;;3687:20;;;3679:59;;;;;-1:-1:-1;;;3679:59:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;3753:31;;;;:15;:31;;;;;;;;3752:32;3744:76;;;;;-1:-1:-1;;;3744:76:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;3834:18;3846:5;3834:11;:18::i;:::-;3826:59;;;;;-1:-1:-1;;;3826:59:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;3932:8;;:126;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4003:19:8;;;3932:126;;;;4024:17;;;3932:126;;;;;;;;;;;;;;;;;;-1:-1:-1;;;3932:126:8;;:8;;;;;:20;;3953:6;;;;3932:126;;;;;;;;;;;;;;;;:8;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;3932:126:8;;;;;;;;;;;;;;;;;;;;;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;;3932:126:8;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3932:126:8;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3932:126:8;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3932:126:8;3924:161;;;;;-1:-1:-1;;;3924:161:8;;;;;;;;;;;;-1:-1:-1;;;3924:161:8;;;;;;;;;;;;;;;4092:31;;;;:15;:31;;;;;:38;;-1:-1:-1;;4092:38:8;4126:4;4092:38;;;4136:53;4153:10;4165:8;4175:4;4181:7;4136:16;:53::i;:::-;4200:54;;;-1:-1:-1;;;;;4200:54:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2230:11:18;:18;;-1:-1:-1;;2230:18:18;2244:4;2230:18;;;-1:-1:-1;;;;;;3478:781:8:o;1278:25::-;;;-1:-1:-1;;;;;1278:25:8;;:::o;2230:445:2:-;2305:7;-1:-1:-1;;;;;;;;;;;2328:27:2;;2320:72;;;;;-1:-1:-1;;;2320:72:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2406:28:2;;2398:74;;;;-1:-1:-1;;;2398:74:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2538:23;;;-1:-1:-1;;;2538:23:2;;;;;;;;2478:9;2538:23;;;;;;;;2498:5;;2478:9;;2538:6;;:17;;:23;;;;;;;;;;:6;:23;;;5:2:-1;;;;30:1;27;20:12;5:2;2538:23:2;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2538:23:2;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2538:23:2;;;;;;;;;-1:-1:-1;2538:23:2;-1:-1:-1;;;;;;;;;;;;2589:6:2;2578:1;2571:38;2567:42;;2624:6;:17;2642:1;2645;2624:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2624:23:2;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2624:23:2;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2624:23:2;;2230:445;-1:-1:-1;;;;;2230:445:2:o;933:114::-;-1:-1:-1;;;;;;;;;;;933:114:2;:::o;1209:20::-;;;;;;:::o;1463:23:8:-;;;-1:-1:-1;;;;;1463:23:8;;:::o;3553:342:2:-;3609:4;3625:10;3621:43;;-1:-1:-1;3652:5:2;3645:12;;3621:43;3680:16;;;;3702:171;3726:5;3732:1;3726:8;;;;;;;;;;;3717:5;:17;3713:53;;;3753:4;3746:11;;;;;3713:53;3777:6;;;3773:52;;-1:-1:-1;1542:3:2;3773:52;3855:16;;-1:-1:-1;;3832:3:2;;;;3855:16;3850:21;;;3855:16;;3850:21;;3702:171;;3885:5;3878:12;;;3553:342;;;;:::o;1231:43:8:-;;;;;;;;;;;;;;;:::o;1058:27::-;;;;:::o;1430:34:2:-;;;;;;:::o;5192:113:8:-;1540:8;;-1:-1:-1;;;;;1540:8:8;1526:10;:22;1518:72;;;;-1:-1:-1;;;1518:72:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5266:8;:34;;-1:-1:-1;;;;;;5266:34:8;-1:-1:-1;;;;;5266:34:8;;;;;;;;;;5192:113::o;4669:293::-;4785:35;;;;;;;;;;;;;;;;4750:19;;4796:16;4785:35;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;136:17;;-1:-1;4785:35:8;-1:-1:-1;4777:43:8;-1:-1:-1;4830:6:8;4826:132;4842:27;;;4826:132;;;4888:28;4896:16;;4913:1;4896:19;;;;;;;;;;;;;4888:7;:28::i;:::-;4884:68;;;4939:4;4928:5;4934:1;4928:8;;;;;;;;:15;;;:8;;;;;;;;;;;:15;4884:68;4871:3;;4826:132;;;;4669:293;;;;:::o;2658:324::-;1934:11:18;;;;1926:55;;;;;-1:-1:-1;;;1926:55:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;2056:11;:19;;-1:-1:-1;;2056:19:18;;;2070:5;2741:24:8;;;:11;:24;;;;;;2056:19:18;2741:24:8;2740:25;2732:71;;;;-1:-1:-1;;;2732:71:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2810:20;2833;2841:11;2833:7;:20::i;:::-;2859:24;;;;:11;:24;;;;;:31;;-1:-1:-1;;2859:31:8;2886:4;2859:31;;;2810:43;-1:-1:-1;2896:17:8;:15;:17::i;:::-;2925:52;;;;;;;;2961:15;2925:52;;;;;;2933:11;;2925:52;;;;;;;;-1:-1:-1;;2230:11:18;:18;;-1:-1:-1;;2230:18:18;2244:4;2230:18;;;2658:324:8:o;3941:93:2:-;4012:16;;3984:7;;4006:5;;4012:16;;4006:23;;;;;;;;;3999:30;;3941:93;:::o;1549:39::-;;;;;;;;;;;;;-1:-1:-1;1549:39:2;:::o;1499:46::-;1542:3;1499:46;:::o;4492:116:8:-;4553:4;4572:31;;;:15;:31;;;;;;;;;4492:116::o;1404:22:2:-;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1404:22:2;:::o;1051:114::-;1088:77;1051:114;:::o;1369:31::-;;;;;;;;;;842:20:0;;;-1:-1:-1;;;;;842:20:0;;:::o;1468:27:2:-;;;-1:-1:-1;;;1468:27:2;;;;;:::o;1303:547:0:-;1450:7;1437:9;:20;1429:81;;;;-1:-1:-1;;;1429:81:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1517:51;1536:10;1563:4;1548:12;;:19;1517:18;:51::i;:::-;1578:8;;1574:63;;1596:34;1615:8;1625:4;1596:18;:34::i;:::-;1647:11;;1643:203;;1687:34;;1669:12;;-1:-1:-1;;;;;1687:15:0;;;1709:7;;1669:12;1687:34;1669:12;1687:34;1709:7;1687:15;:34;;;;;;;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;;1668:53:0;;;1734:7;1729:111;;1805:26;;-1:-1:-1;;;;;1805:17:0;;;:26;;;;;1823:7;;1805:26;;;;1823:7;1805:17;:26;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1805:26:0;1729:111;1643:203;;1303:547;;;;:::o;2679:802:2:-;2770:9;;2728:12;2820:6;;2728:12;;2770:9;-1:-1:-1;;;2770:9:2;;;;;;2820:6;;2816:1;2809:17;2793:33;;;;2785:93;;;;-1:-1:-1;;;2785:93:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2884:9;:14;;;-1:-1:-1;;;2884:14:2;;;;;2897:1;2884:14;;;;;-1:-1:-1;;2884:14:2;;;;;;2931:5;-1:-1:-1;;;2980:355:2;3003:6;;;;;;2999:10;;;;2980:355;;;3028:16;;;3024:225;;3068:16;3061:23;;3102:5;3108:1;3102:8;;;;;;;;;;;;;;;;;;3094:16;;3141;3121:14;3136:1;3121:17;;;;;;;;;;;;;;;;;;;:36;3024:225;;;3189:14;3204:1;3189:17;;;;;;;;;;;;;;;;;;3182:24;;3224:16;3216:24;;3024:225;3276:26;3290:4;3296:5;3276:13;:26::i;:::-;3257:45;-1:-1:-1;3327:1:2;3311:17;;;;;-1:-1:-1;3011:3:2;;2980:355;;;-1:-1:-1;3361:16:2;;1542:3;;3360:42;3361:16;;;;:20;3360:42;3341:16;:61;;-1:-1:-1;;3341:61:2;3360:42;;;;3341:61;;;;;;;;;;;;3434:16;;3408:5;;3414:16;3408:23;;;;;;;;:42;-1:-1:-1;;3463:9:2;;-1:-1:-1;;;3463:9:2;;;;-1:-1:-1;;3463:13:2;;2679:802;-1:-1:-1;;;;2679:802:2:o;1108:191:0:-;1158:9;:14;1150:75;;;;-1:-1:-1;;;1150:75:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1231:63;1254:10;1274:4;1281:12;;1231:22;:63::i;:::-;1108:191::o;2448:544::-;2557:5;;2568:63;;;-1:-1:-1;;;;;2568:63:0;;;;;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;2568:63:0;;;;;;;25:18:-1;;61:17;;-1:-1;;;;;182:15;-1:-1;;;179:29;160:49;;2557:75:0;;;;2522:12;;2536:17;;2557:5;;;2568:63;2557:75;;;;25:18:-1;36:153;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;;;2557:75:0;;;;;;;;;;;;;;;;;;;;;;;;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;;2521:111:0;;;;2646:7;2638:37;;;;;-1:-1:-1;;;2638:37:0;;;;;;;;;;;;-1:-1:-1;;;2638:37:0;;;;;;;;;;;;;;;2775:11;;:15;2771:217;;2808:4;:11;2823:2;2808:17;2800:72;;;;-1:-1:-1;;;2800:72:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2901:4;2890:24;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2890:24:0;;-1:-1:-1;2890:24:0;2922:59;;;;-1:-1:-1;;;2922:59:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1854:590;1982:5;;1993:74;;;-1:-1:-1;;;;;1993:74:0;;;;;;;;;;;;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;1993:74:0;;;;;;;25:18:-1;;61:17;;-1:-1;;;;;182:15;-1:-1;;;179:29;160:49;;1982:86:0;;;;1947:12;;1961:17;;1982:5;;;1993:74;1982:86;;;;25:18:-1;36:153;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;;;1982:86:0;;;;;;;;;;;;;;;;;;;;;;;;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;;1946:122:0;;;;2082:7;2074:45;;;;;-1:-1:-1;;;2074:45:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;2219:11;;:15;2215:225;;2252:4;:11;2267:2;2252:17;2244:72;;;;-1:-1:-1;;;2244:72:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2345:4;2334:24;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2334:24:0;;-1:-1:-1;2334:24:0;2366:67;;;;-1:-1:-1;;;2366:67:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;", - "source": "// https://tornado.cash\n/*\n* d888888P dP a88888b. dP\n* 88 88 d8' `88 88\n* 88 .d8888b. 88d888b. 88d888b. .d8888b. .d888b88 .d8888b. 88 .d8888b. .d8888b. 88d888b.\n* 88 88' `88 88' `88 88' `88 88' `88 88' `88 88' `88 88 88' `88 Y8ooooo. 88' `88\n* 88 88. .88 88 88 88 88. .88 88. .88 88. .88 dP Y8. .88 88. .88 88 88 88\n* dP `88888P' dP dP dP `88888P8 `88888P8 `88888P' 88 Y88888P' `88888P8 `88888P' dP dP\n* ooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo\n*/\n\npragma solidity 0.5.17;\n\nimport \"./Tornado.sol\";\n\ncontract ERC20Tornado is Tornado {\n address public token;\n\n constructor(\n IVerifier _verifier,\n uint256 _denomination,\n uint32 _merkleTreeHeight,\n address _operator,\n address _token\n ) Tornado(_verifier, _denomination, _merkleTreeHeight, _operator) public {\n token = _token;\n }\n\n function _processDeposit() internal {\n require(msg.value == 0, \"ETH value is supposed to be 0 for ERC20 instance\");\n _safeErc20TransferFrom(msg.sender, address(this), denomination);\n }\n\n function _processWithdraw(address payable _recipient, address payable _relayer, uint256 _fee, uint256 _refund) internal {\n require(msg.value == _refund, \"Incorrect refund amount received by the contract\");\n\n _safeErc20Transfer(_recipient, denomination - _fee);\n if (_fee > 0) {\n _safeErc20Transfer(_relayer, _fee);\n }\n\n if (_refund > 0) {\n (bool success, ) = _recipient.call.value(_refund)(\"\");\n if (!success) {\n // let's return _refund back to the relayer\n _relayer.transfer(_refund);\n }\n }\n }\n\n function _safeErc20TransferFrom(address _from, address _to, uint256 _amount) internal {\n (bool success, bytes memory data) = token.call(abi.encodeWithSelector(0x23b872dd /* transferFrom */, _from, _to, _amount));\n require(success, \"not enough allowed tokens\");\n\n // if contract returns some data lets make sure that is `true` according to standard\n if (data.length > 0) {\n require(data.length == 32, \"data length should be either 0 or 32 bytes\");\n success = abi.decode(data, (bool));\n require(success, \"not enough allowed tokens. Token returns false.\");\n }\n }\n\n function _safeErc20Transfer(address _to, uint256 _amount) internal {\n (bool success, bytes memory data) = token.call(abi.encodeWithSelector(0xa9059cbb /* transfer */, _to, _amount));\n require(success, \"not enough tokens\");\n\n // if contract returns some data lets make sure that is `true` according to standard\n if (data.length > 0) {\n require(data.length == 32, \"data length should be either 0 or 32 bytes\");\n success = abi.decode(data, (bool));\n require(success, \"not enough tokens. Token returns false.\");\n }\n }\n}\n", + "metadata": "{\"compiler\":{\"version\":\"0.5.17+commit.d19bba13\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"contract IVerifier\",\"name\":\"_verifier\",\"type\":\"address\"},{\"internalType\":\"contract IFeeManager\",\"name\":\"_feeManager\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_denomination\",\"type\":\"uint256\"},{\"internalType\":\"uint32\",\"name\":\"_merkleTreeHeight\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"_operator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"commitment\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"leafIndex\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"}],\"name\":\"Deposit\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"nullifierHash\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"relayer\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\"}],\"name\":\"Withdrawal\",\"type\":\"event\"},{\"constant\":true,\"inputs\":[],\"name\":\"FIELD_SIZE\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"ROOT_HISTORY_SIZE\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"ZERO_VALUE\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"_newOperator\",\"type\":\"address\"}],\"name\":\"changeOperator\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"commitments\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"currentRootIndex\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"denomination\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_commitment\",\"type\":\"bytes32\"}],\"name\":\"deposit\",\"outputs\":[],\"payable\":true,\"stateMutability\":\"payable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"feeManager\",\"outputs\":[{\"internalType\":\"contract IFeeManager\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"filledSubtrees\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"getLastRoot\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_left\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"_right\",\"type\":\"bytes32\"}],\"name\":\"hashLeftRight\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_root\",\"type\":\"bytes32\"}],\"name\":\"isKnownRoot\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_nullifierHash\",\"type\":\"bytes32\"}],\"name\":\"isSpent\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"_nullifierHashes\",\"type\":\"bytes32[]\"}],\"name\":\"isSpentArray\",\"outputs\":[{\"internalType\":\"bool[]\",\"name\":\"spent\",\"type\":\"bool[]\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"levels\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"nextIndex\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"nullifierHashes\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"operator\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"protocolFee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"roots\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"token\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"_newVerifier\",\"type\":\"address\"}],\"name\":\"updateVerifier\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"verifier\",\"outputs\":[{\"internalType\":\"contract IVerifier\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"_proof\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"_root\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"_nullifierHash\",\"type\":\"bytes32\"},{\"internalType\":\"address payable\",\"name\":\"_recipient\",\"type\":\"address\"},{\"internalType\":\"address payable\",\"name\":\"_relayer\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_fee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_refund\",\"type\":\"uint256\"}],\"name\":\"withdraw\",\"outputs\":[],\"payable\":true,\"stateMutability\":\"payable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"zeros\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"methods\":{\"changeOperator(address)\":{\"details\":\"operator can change his address \"},\"deposit(bytes32)\":{\"details\":\"Deposit funds into the contract. The caller must send (for ETH) or approve (for ERC20) value equal to or `denomination` of this instance.\",\"params\":{\"_commitment\":\"the note commitment, which is PedersenHash(nullifier + secret)\"}},\"getLastRoot()\":{\"details\":\"Returns the last root\"},\"hashLeftRight(bytes32,bytes32)\":{\"details\":\"Hash 2 tree leaves, returns MiMC(_left, _right)\"},\"isKnownRoot(bytes32)\":{\"details\":\"Whether the root is present in the root history\"},\"isSpent(bytes32)\":{\"details\":\"whether a note is already spent \"},\"isSpentArray(bytes32[])\":{\"details\":\"whether an array of notes is already spent \"},\"updateVerifier(address)\":{\"details\":\"allow operator to update SNARK verification keys. This is needed to update keys after the final trusted setup ceremony is held. After that operator rights are supposed to be transferred to zero address\"},\"withdraw(bytes,bytes32,bytes32,address,address,uint256,uint256)\":{\"details\":\"Withdraw a deposit from the contract. `proof` is a zkSNARK proof data, and input is an array of circuit public inputs `input` array consists of: - merkle root of all deposits in the contract - hash of unique deposit nullifier to prevent double spends - the recipient of funds - optional fee that goes to the transaction sender (usually a relay)\"}}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/Users/brianli/dotfiles/tornado-core/contracts/ERC20Tornado.sol\":\"ERC20Tornado\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/Users/brianli/dotfiles/tornado-core/contracts/ERC20Tornado.sol\":{\"keccak256\":\"0x5c57c88351063f1864166162f6f32be5aebae197a18abaef8d08d67b36440a51\",\"urls\":[\"bzz-raw://6da2d6faa828b1cad43428366d273e4aa61fc176d6541fb641028985497caa0f\",\"dweb:/ipfs/QmULz388t88hr999vUk5PidTTJwbEWGUyb3d6QGnDA6qoV\"]},\"/Users/brianli/dotfiles/tornado-core/contracts/MerkleTreeWithHistory.sol\":{\"keccak256\":\"0x671cc9268dd70c47d18795f7e37fc4df11763fcbcca026edcf163f4239036254\",\"urls\":[\"bzz-raw://9c36a207ed164b60a514eae89bfb15e5b4de4b346c4a89a7a1cb50a940bc699d\",\"dweb:/ipfs/QmbPEqFJAGMpYduLEFsbPazyBsYWcjRtpth8X26wCHALwk\"]},\"/Users/brianli/dotfiles/tornado-core/contracts/Tornado.sol\":{\"keccak256\":\"0xe7db8acb3efcecf95c7364f447ed1764c571dbf5090fd4641fe4668a965332eb\",\"urls\":[\"bzz-raw://45e790c247c38ed8ae473e3165c1148ea10a753cf6e9f9c8742394019be2aef6\",\"dweb:/ipfs/QmaGfk1ndvqur2NvCY3TWoKuorfBVShXeykKei18GDY582\"]},\"@openzeppelin/contracts/utils/ReentrancyGuard.sol\":{\"keccak256\":\"0xb63221b23818d622bfd83d18e0968307e4fcb7a35536bdceded76e1cf8349acd\",\"urls\":[\"bzz-raw://44e1e8c22362c4708a8c3362735f1465f5b05e2f7315e16c7010d694ce019d73\",\"dweb:/ipfs/QmWj9g8X1hxkXRre2kwkEjLBetjuzmSbWHD81bsSojnBkS\"]}},\"version\":1}", + "bytecode": "0x6080604052600380546001600160401b03191690553480156200002157600080fd5b5060405162001e5838038062001e58833981810160405260c08110156200004757600080fd5b508051602082015160408301516060840151608085015160a090950151939492939192909185858585858163ffffffff8116620000b65760405162461bcd60e51b815260040180806020018281038252602781526020018062001dcf6027913960400191505060405180910390fd5b60208163ffffffff1610620000fd5760405162461bcd60e51b815260040180806020018281038252602281526020018062001e166022913960400191505060405180910390fd5b6000805463ffffffff191663ffffffff83161781556002805460018181019092557f2fe54c60d3acabf3343a35b6eba15db4821b340f76e741e2249685ed4899af6c60008051602062001d8e833981519152909101819055815480830183559282905260008051602062001e388339815191529092018290555b60005463ffffffff9081169082161015620001eb57620001a182806001600160e01b03620002ba16565b60028054600181810190925560008051602062001d8e8339815191520182905580548082018255600082905260008051602062001e38833981519152018290559092500162000177565b506200020181806001600160e01b03620002ba16565b60046000015550506068805460ff1916600117905582620002545760405162461bcd60e51b815260040180806020018281038252602581526020018062001d696025913960400191505060405180910390fd5b606c80546001600160a01b03199081166001600160a01b0397881617909155606d8054821695871695909517909455606e8054851691861691909117905550606955606f805490911691831691909117905560c8840460705550620004a7945050505050565b600060008051602062001df6833981519152831062000320576040805162461bcd60e51b815260206004820181905260248201527f5f6c6566742073686f756c6420626520696e7369646520746865206669656c64604482015290519081900360640190fd5b60008051602062001df683398151915282106200036f5760405162461bcd60e51b815260040180806020018281038252602181526020018062001dae6021913960400191505060405180910390fd5b6040805163f47d33b560e01b81526004810185905260006024820181905282518693919273__Hasher________________________________9263f47d33b592604480840193829003018186803b158015620003ca57600080fd5b505af4158015620003df573d6000803e3d6000fd5b505050506040513d6040811015620003f657600080fd5b508051602090910151909250905060008051602062001df6833981519152848308915073__Hasher________________________________63f47d33b583836040518363ffffffff1660e01b81526004018083815260200182815260200192505050604080518083038186803b1580156200047057600080fd5b505af415801562000485573d6000803e3d6000fd5b505050506040513d60408110156200049c57600080fd5b505195945050505050565b6118b280620004b76000396000f3fe6080604052600436106101815760003560e01c80639fa12d0b116100d1578063d0fb02031161008a578063ec73295911610064578063ec732959146105c8578063f178e47c146105dd578063fc0c546a14610607578063fc7e9c6f1461061c57610181565b8063d0fb02031461055f578063e5285dcc14610574578063e82955881461059e57610181565b80639fa12d0b1461040e578063b0e21e8a146104d9578063b214faa5146104ee578063ba70f7571461050b578063c2b40ae414610520578063cd87a3b41461054a57610181565b80634ecf518b1161013e578063839df94511610118578063839df945146103875780638bca6d16146103b157806390eeb02b146103c657806397fc007c146103db57610181565b80634ecf518b1461031a578063570ca735146103485780636d9833e31461035d57610181565b806306394c9b1461018657806317cc915c146101bb57806321a0adb6146101f95780632b7ac3f31461029257806338bf282e146102c3578063414a37ba14610305575b600080fd5b34801561019257600080fd5b506101b9600480360360208110156101a957600080fd5b50356001600160a01b0316610631565b005b3480156101c757600080fd5b506101e5600480360360208110156101de57600080fd5b503561069c565b604080519115158252519081900360200190f35b6101b9600480360360e081101561020f57600080fd5b810190602081018135600160201b81111561022957600080fd5b82018360208201111561023b57600080fd5b803590602001918460018302840111600160201b8311171561025c57600080fd5b91935091508035906020810135906001600160a01b03604082013581169160608101359091169060808101359060a001356106b1565b34801561029e57600080fd5b506102a7610a70565b604080516001600160a01b039092168252519081900360200190f35b3480156102cf57600080fd5b506102f3600480360360408110156102e657600080fd5b5080359060200135610a7f565b60408051918252519081900360200190f35b34801561031157600080fd5b506102f3610c60565b34801561032657600080fd5b5061032f610c72565b6040805163ffffffff9092168252519081900360200190f35b34801561035457600080fd5b506102a7610c7e565b34801561036957600080fd5b506101e56004803603602081101561038057600080fd5b5035610c8d565b34801561039357600080fd5b506101e5600480360360208110156103aa57600080fd5b5035610d00565b3480156103bd57600080fd5b506102f3610d15565b3480156103d257600080fd5b5061032f610d1b565b3480156103e757600080fd5b506101b9600480360360208110156103fe57600080fd5b50356001600160a01b0316610d27565b34801561041a57600080fd5b506104896004803603602081101561043157600080fd5b810190602081018135600160201b81111561044b57600080fd5b82018360208201111561045d57600080fd5b803590602001918460208302840111600160201b8311171561047e57600080fd5b509092509050610d92565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156104c55781810151838201526020016104ad565b505050509050019250505060405180910390f35b3480156104e557600080fd5b506102f3610e1a565b6101b96004803603602081101561050457600080fd5b5035610e20565b34801561051757600080fd5b506102f3610f4d565b34801561052c57600080fd5b506102f36004803603602081101561054357600080fd5b5035610f6d565b34801561055657600080fd5b5061032f610f81565b34801561056b57600080fd5b506102a7610f86565b34801561058057600080fd5b506101e56004803603602081101561059757600080fd5b5035610f95565b3480156105aa57600080fd5b506102f3600480360360208110156105c157600080fd5b5035610faa565b3480156105d457600080fd5b506102f3610fc8565b3480156105e957600080fd5b506102f36004803603602081101561060057600080fd5b5035610fec565b34801561061357600080fd5b506102a7610ff9565b34801561062857600080fd5b5061032f611008565b606e546001600160a01b0316331461067a5760405162461bcd60e51b81526004018080602001828103825260258152602001806118596025913960400191505060405180910390fd5b606e80546001600160a01b0319166001600160a01b0392909216919091179055565b606a6020526000908152604090205460ff1681565b60685460ff16610708576040805162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015290519081900360640190fd5b6068805460ff19169055606954821115610769576040805162461bcd60e51b815260206004820152601a60248201527f4665652065786365656473207472616e736665722076616c7565000000000000604482015290519081900360640190fd5b6000858152606a602052604090205460ff16156107cd576040805162461bcd60e51b815260206004820152601f60248201527f546865206e6f746520686173206265656e20616c7265616479207370656e7400604482015290519081900360640190fd5b6107d686610c8d565b610827576040805162461bcd60e51b815260206004820152601c60248201527f43616e6e6f742066696e6420796f7572206d65726b6c6520726f6f7400000000604482015290519081900360640190fd5b606c546040805160c08082018352898252602082018990526001600160a01b038881168385015287811660608401526080830187905260a08301869052925163695ef6f960e01b8152929093169263695ef6f9928c928c9290916004810191829160240190849080838360005b838110156108ac578181015183820152602001610894565b505050509050018281038252858582818152602001925080828437600081840152601f19601f820116905080830192505050945050505050602060405180830381600087803b1580156108fe57600080fd5b505af1158015610912573d6000803e3d6000fd5b505050506040513d602081101561092857600080fd5b5051610974576040805162461bcd60e51b815260206004820152601660248201527524b73b30b634b2103bb4ba34323930bb90383937b7b360511b604482015290519081900360640190fd5b6000858152606a6020908152604091829020805460ff19166001179055606d548251622fcfcb60e31b81529251610a0b9388938893889388936001600160a01b039092169263017e7e589260048082019391829003018186803b1580156109da57600080fd5b505afa1580156109ee573d6000803e3d6000fd5b505050506040513d6020811015610a0457600080fd5b505161101b565b604080516001600160a01b038681168252602082018890528183018590529151918516917fe9e508bad6d4c3227e881ca19068f099da81b5164dd6d62b2eaf1e8bc6c349319181900360600190a250506068805460ff19166001179055505050505050565b606c546001600160a01b031681565b60006000805160206117e88339815191528310610ae3576040805162461bcd60e51b815260206004820181905260248201527f5f6c6566742073686f756c6420626520696e7369646520746865206669656c64604482015290519081900360640190fd5b6000805160206117e88339815191528210610b2f5760405162461bcd60e51b81526004018080602001828103825260218152602001806117986021913960400191505060405180910390fd5b6040805163f47d33b560e01b81526004810185905260006024820181905282518693919273__Hasher________________________________9263f47d33b592604480840193829003018186803b158015610b8957600080fd5b505af4158015610b9d573d6000803e3d6000fd5b505050506040513d6040811015610bb357600080fd5b50805160209091015190925090506000805160206117e8833981519152848308915073__Hasher________________________________63f47d33b583836040518363ffffffff1660e01b81526004018083815260200182815260200192505050604080518083038186803b158015610c2b57600080fd5b505af4158015610c3f573d6000803e3d6000fd5b505050506040513d6040811015610c5557600080fd5b505195945050505050565b6000805160206117e883398151915281565b60005463ffffffff1681565b606e546001600160a01b031681565b600081610c9c57506000610cfb565b60035463ffffffff165b60048163ffffffff1660648110610cb957fe5b0154831415610ccc576001915050610cfb565b63ffffffff8116610cdb575060645b6003546000199091019063ffffffff80831691161415610ca65760009150505b919050565b606b6020526000908152604090205460ff1681565b60695481565b60035463ffffffff1681565b606e546001600160a01b03163314610d705760405162461bcd60e51b81526004018080602001828103825260258152602001806118596025913960400191505060405180910390fd5b606c80546001600160a01b0319166001600160a01b0392909216919091179055565b604080518281526020808402820101909152606090828015610dbe578160200160208202803883390190505b50905060005b82811015610e1357610de7848483818110610ddb57fe5b90506020020135610f95565b15610e0b576001828281518110610dfa57fe5b911515602092830291909101909101525b600101610dc4565b5092915050565b60705481565b60685460ff16610e77576040805162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015290519081900360640190fd5b6068805460ff191690556000818152606b602052604090205460ff1615610ecf5760405162461bcd60e51b81526004018080602001828103825260218152602001806118086021913960400191505060405180910390fd5b6000610eda8261114d565b6000838152606b60205260409020805460ff191660011790559050610efd6112e4565b6040805163ffffffff83168152426020820152815184927fa945e51eec50ab98c161376f0db4cf2aeba3ec92755fe2fcd388bdbbb80ff196928290030190a250506068805460ff19166001179055565b60035460009060049063ffffffff1660648110610f6657fe5b0154905090565b60048160648110610f7a57fe5b0154905081565b606481565b606d546001600160a01b031681565b6000908152606a602052604090205460ff1690565b60028181548110610fb757fe5b600091825260209091200154905081565b7f2fe54c60d3acabf3343a35b6eba15db4821b340f76e741e2249685ed4899af6c81565b60018181548110610fb757fe5b606f546001600160a01b031681565b600354600160201b900463ffffffff1681565b8134146110595760405162461bcd60e51b81526004018080602001828103825260308152602001806117416030913960400191505060405180910390fd5b6001600160a01b0381161580159061108e5761107d86607054866069540303611330565b61108982607054611330565b61109c565b61109c868560695403611330565b83156110ac576110ac8585611330565b8215611145576040516000906001600160a01b0388169085908381818185875af1925050503d80600081146110fd576040519150601f19603f3d011682016040523d82523d6000602084013e611102565b606091505b5050905080611143576040516001600160a01b0387169085156108fc029086906000818181858888f19350505050158015611141573d6000803e3d6000fd5b505b505b505050505050565b60035460008054909163ffffffff600160201b909104811691811660020a168114156111aa5760405162461bcd60e51b815260040180806020018281038252602f8152602001806116e8602f913960400191505060405180910390fd5b6003805463ffffffff600160201b80830482166001019091160267ffffffff000000001990911617905582600080805b60005463ffffffff9081169082161015611282576001851661123e5783925060028163ffffffff168154811061120c57fe5b906000526020600020015491508360018263ffffffff168154811061122d57fe5b600091825260209091200155611262565b60018163ffffffff168154811061125157fe5b906000526020600020015492508391505b61126c8383610a7f565b9350600263ffffffff86160494506001016111da565b5060035460649063ffffffff908116600101166003805463ffffffff19169290910663ffffffff9081169290921790819055849160049116606481106112c457fe5b01555050600354600160201b900463ffffffff1660001901949350505050565b34156113215760405162461bcd60e51b81526004018080602001828103825260308152602001806118296030913960400191505060405180910390fd5b61132e3330606954611501565b565b606f54604080516001600160a01b038581166024830152604480830186905283518084039091018152606490920183526020820180516001600160e01b031663a9059cbb60e01b178152925182516000956060959316939282918083835b602083106113ad5780518252601f19909201916020918201910161138e565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d806000811461140f576040519150601f19603f3d011682016040523d82523d6000602084013e611414565b606091505b50915091508161145f576040805162461bcd60e51b81526020600482015260116024820152706e6f7420656e6f75676820746f6b656e7360781b604482015290519081900360640190fd5b8051156114fb5780516020146114a65760405162461bcd60e51b815260040180806020018281038252602a815260200180611717602a913960400191505060405180910390fd5b8080602001905160208110156114bb57600080fd5b50519150816114fb5760405162461bcd60e51b81526004018080602001828103825260278152602001806117716027913960400191505060405180910390fd5b50505050565b606f54604080516001600160a01b0386811660248301528581166044830152606480830186905283518084039091018152608490920183526020820180516001600160e01b03166323b872dd60e01b178152925182516000956060959316939282918083835b602083106115865780518252601f199092019160209182019101611567565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d80600081146115e8576040519150601f19603f3d011682016040523d82523d6000602084013e6115ed565b606091505b509150915081611644576040805162461bcd60e51b815260206004820152601960248201527f6e6f7420656e6f75676820616c6c6f77656420746f6b656e7300000000000000604482015290519081900360640190fd5b8051156116e057805160201461168b5760405162461bcd60e51b815260040180806020018281038252602a815260200180611717602a913960400191505060405180910390fd5b8080602001905160208110156116a057600080fd5b50519150816116e05760405162461bcd60e51b815260040180806020018281038252602f8152602001806117b9602f913960400191505060405180910390fd5b505050505056fe4d65726b6c6520747265652069732066756c6c2e204e6f206d6f7265206c656166732063616e20626520616464656464617461206c656e6774682073686f756c64206265206569746865722030206f72203332206279746573496e636f727265637420726566756e6420616d6f756e742072656365697665642062792074686520636f6e74726163746e6f7420656e6f75676820746f6b656e732e20546f6b656e2072657475726e732066616c73652e5f72696768742073686f756c6420626520696e7369646520746865206669656c646e6f7420656e6f75676820616c6c6f77656420746f6b656e732e20546f6b656e2072657475726e732066616c73652e30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000154686520636f6d6d69746d656e7420686173206265656e207375626d69747465644554482076616c756520697320737570706f73656420746f206265203020666f7220455243323020696e7374616e63654f6e6c79206f70657261746f722063616e2063616c6c20746869732066756e6374696f6e2ea265627a7a72315820c90af910ddfda5b33dab20c369a888b349922f695f9eee0e2eb3e0273adc895364736f6c6343000511003264656e6f6d696e6174696f6e2073686f756c642062652067726561746572207468616e2030405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace5f72696768742073686f756c6420626520696e7369646520746865206669656c645f747265654c6576656c732073686f756c642062652067726561746572207468616e207a65726f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000015f747265654c6576656c732073686f756c64206265206c657373207468616e203332b10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6", + "deployedBytecode": "0x6080604052600436106101815760003560e01c80639fa12d0b116100d1578063d0fb02031161008a578063ec73295911610064578063ec732959146105c8578063f178e47c146105dd578063fc0c546a14610607578063fc7e9c6f1461061c57610181565b8063d0fb02031461055f578063e5285dcc14610574578063e82955881461059e57610181565b80639fa12d0b1461040e578063b0e21e8a146104d9578063b214faa5146104ee578063ba70f7571461050b578063c2b40ae414610520578063cd87a3b41461054a57610181565b80634ecf518b1161013e578063839df94511610118578063839df945146103875780638bca6d16146103b157806390eeb02b146103c657806397fc007c146103db57610181565b80634ecf518b1461031a578063570ca735146103485780636d9833e31461035d57610181565b806306394c9b1461018657806317cc915c146101bb57806321a0adb6146101f95780632b7ac3f31461029257806338bf282e146102c3578063414a37ba14610305575b600080fd5b34801561019257600080fd5b506101b9600480360360208110156101a957600080fd5b50356001600160a01b0316610631565b005b3480156101c757600080fd5b506101e5600480360360208110156101de57600080fd5b503561069c565b604080519115158252519081900360200190f35b6101b9600480360360e081101561020f57600080fd5b810190602081018135600160201b81111561022957600080fd5b82018360208201111561023b57600080fd5b803590602001918460018302840111600160201b8311171561025c57600080fd5b91935091508035906020810135906001600160a01b03604082013581169160608101359091169060808101359060a001356106b1565b34801561029e57600080fd5b506102a7610a70565b604080516001600160a01b039092168252519081900360200190f35b3480156102cf57600080fd5b506102f3600480360360408110156102e657600080fd5b5080359060200135610a7f565b60408051918252519081900360200190f35b34801561031157600080fd5b506102f3610c60565b34801561032657600080fd5b5061032f610c72565b6040805163ffffffff9092168252519081900360200190f35b34801561035457600080fd5b506102a7610c7e565b34801561036957600080fd5b506101e56004803603602081101561038057600080fd5b5035610c8d565b34801561039357600080fd5b506101e5600480360360208110156103aa57600080fd5b5035610d00565b3480156103bd57600080fd5b506102f3610d15565b3480156103d257600080fd5b5061032f610d1b565b3480156103e757600080fd5b506101b9600480360360208110156103fe57600080fd5b50356001600160a01b0316610d27565b34801561041a57600080fd5b506104896004803603602081101561043157600080fd5b810190602081018135600160201b81111561044b57600080fd5b82018360208201111561045d57600080fd5b803590602001918460208302840111600160201b8311171561047e57600080fd5b509092509050610d92565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156104c55781810151838201526020016104ad565b505050509050019250505060405180910390f35b3480156104e557600080fd5b506102f3610e1a565b6101b96004803603602081101561050457600080fd5b5035610e20565b34801561051757600080fd5b506102f3610f4d565b34801561052c57600080fd5b506102f36004803603602081101561054357600080fd5b5035610f6d565b34801561055657600080fd5b5061032f610f81565b34801561056b57600080fd5b506102a7610f86565b34801561058057600080fd5b506101e56004803603602081101561059757600080fd5b5035610f95565b3480156105aa57600080fd5b506102f3600480360360208110156105c157600080fd5b5035610faa565b3480156105d457600080fd5b506102f3610fc8565b3480156105e957600080fd5b506102f36004803603602081101561060057600080fd5b5035610fec565b34801561061357600080fd5b506102a7610ff9565b34801561062857600080fd5b5061032f611008565b606e546001600160a01b0316331461067a5760405162461bcd60e51b81526004018080602001828103825260258152602001806118596025913960400191505060405180910390fd5b606e80546001600160a01b0319166001600160a01b0392909216919091179055565b606a6020526000908152604090205460ff1681565b60685460ff16610708576040805162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015290519081900360640190fd5b6068805460ff19169055606954821115610769576040805162461bcd60e51b815260206004820152601a60248201527f4665652065786365656473207472616e736665722076616c7565000000000000604482015290519081900360640190fd5b6000858152606a602052604090205460ff16156107cd576040805162461bcd60e51b815260206004820152601f60248201527f546865206e6f746520686173206265656e20616c7265616479207370656e7400604482015290519081900360640190fd5b6107d686610c8d565b610827576040805162461bcd60e51b815260206004820152601c60248201527f43616e6e6f742066696e6420796f7572206d65726b6c6520726f6f7400000000604482015290519081900360640190fd5b606c546040805160c08082018352898252602082018990526001600160a01b038881168385015287811660608401526080830187905260a08301869052925163695ef6f960e01b8152929093169263695ef6f9928c928c9290916004810191829160240190849080838360005b838110156108ac578181015183820152602001610894565b505050509050018281038252858582818152602001925080828437600081840152601f19601f820116905080830192505050945050505050602060405180830381600087803b1580156108fe57600080fd5b505af1158015610912573d6000803e3d6000fd5b505050506040513d602081101561092857600080fd5b5051610974576040805162461bcd60e51b815260206004820152601660248201527524b73b30b634b2103bb4ba34323930bb90383937b7b360511b604482015290519081900360640190fd5b6000858152606a6020908152604091829020805460ff19166001179055606d548251622fcfcb60e31b81529251610a0b9388938893889388936001600160a01b039092169263017e7e589260048082019391829003018186803b1580156109da57600080fd5b505afa1580156109ee573d6000803e3d6000fd5b505050506040513d6020811015610a0457600080fd5b505161101b565b604080516001600160a01b038681168252602082018890528183018590529151918516917fe9e508bad6d4c3227e881ca19068f099da81b5164dd6d62b2eaf1e8bc6c349319181900360600190a250506068805460ff19166001179055505050505050565b606c546001600160a01b031681565b60006000805160206117e88339815191528310610ae3576040805162461bcd60e51b815260206004820181905260248201527f5f6c6566742073686f756c6420626520696e7369646520746865206669656c64604482015290519081900360640190fd5b6000805160206117e88339815191528210610b2f5760405162461bcd60e51b81526004018080602001828103825260218152602001806117986021913960400191505060405180910390fd5b6040805163f47d33b560e01b81526004810185905260006024820181905282518693919273__Hasher________________________________9263f47d33b592604480840193829003018186803b158015610b8957600080fd5b505af4158015610b9d573d6000803e3d6000fd5b505050506040513d6040811015610bb357600080fd5b50805160209091015190925090506000805160206117e8833981519152848308915073__Hasher________________________________63f47d33b583836040518363ffffffff1660e01b81526004018083815260200182815260200192505050604080518083038186803b158015610c2b57600080fd5b505af4158015610c3f573d6000803e3d6000fd5b505050506040513d6040811015610c5557600080fd5b505195945050505050565b6000805160206117e883398151915281565b60005463ffffffff1681565b606e546001600160a01b031681565b600081610c9c57506000610cfb565b60035463ffffffff165b60048163ffffffff1660648110610cb957fe5b0154831415610ccc576001915050610cfb565b63ffffffff8116610cdb575060645b6003546000199091019063ffffffff80831691161415610ca65760009150505b919050565b606b6020526000908152604090205460ff1681565b60695481565b60035463ffffffff1681565b606e546001600160a01b03163314610d705760405162461bcd60e51b81526004018080602001828103825260258152602001806118596025913960400191505060405180910390fd5b606c80546001600160a01b0319166001600160a01b0392909216919091179055565b604080518281526020808402820101909152606090828015610dbe578160200160208202803883390190505b50905060005b82811015610e1357610de7848483818110610ddb57fe5b90506020020135610f95565b15610e0b576001828281518110610dfa57fe5b911515602092830291909101909101525b600101610dc4565b5092915050565b60705481565b60685460ff16610e77576040805162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015290519081900360640190fd5b6068805460ff191690556000818152606b602052604090205460ff1615610ecf5760405162461bcd60e51b81526004018080602001828103825260218152602001806118086021913960400191505060405180910390fd5b6000610eda8261114d565b6000838152606b60205260409020805460ff191660011790559050610efd6112e4565b6040805163ffffffff83168152426020820152815184927fa945e51eec50ab98c161376f0db4cf2aeba3ec92755fe2fcd388bdbbb80ff196928290030190a250506068805460ff19166001179055565b60035460009060049063ffffffff1660648110610f6657fe5b0154905090565b60048160648110610f7a57fe5b0154905081565b606481565b606d546001600160a01b031681565b6000908152606a602052604090205460ff1690565b60028181548110610fb757fe5b600091825260209091200154905081565b7f2fe54c60d3acabf3343a35b6eba15db4821b340f76e741e2249685ed4899af6c81565b60018181548110610fb757fe5b606f546001600160a01b031681565b600354600160201b900463ffffffff1681565b8134146110595760405162461bcd60e51b81526004018080602001828103825260308152602001806117416030913960400191505060405180910390fd5b6001600160a01b0381161580159061108e5761107d86607054866069540303611330565b61108982607054611330565b61109c565b61109c868560695403611330565b83156110ac576110ac8585611330565b8215611145576040516000906001600160a01b0388169085908381818185875af1925050503d80600081146110fd576040519150601f19603f3d011682016040523d82523d6000602084013e611102565b606091505b5050905080611143576040516001600160a01b0387169085156108fc029086906000818181858888f19350505050158015611141573d6000803e3d6000fd5b505b505b505050505050565b60035460008054909163ffffffff600160201b909104811691811660020a168114156111aa5760405162461bcd60e51b815260040180806020018281038252602f8152602001806116e8602f913960400191505060405180910390fd5b6003805463ffffffff600160201b80830482166001019091160267ffffffff000000001990911617905582600080805b60005463ffffffff9081169082161015611282576001851661123e5783925060028163ffffffff168154811061120c57fe5b906000526020600020015491508360018263ffffffff168154811061122d57fe5b600091825260209091200155611262565b60018163ffffffff168154811061125157fe5b906000526020600020015492508391505b61126c8383610a7f565b9350600263ffffffff86160494506001016111da565b5060035460649063ffffffff908116600101166003805463ffffffff19169290910663ffffffff9081169290921790819055849160049116606481106112c457fe5b01555050600354600160201b900463ffffffff1660001901949350505050565b34156113215760405162461bcd60e51b81526004018080602001828103825260308152602001806118296030913960400191505060405180910390fd5b61132e3330606954611501565b565b606f54604080516001600160a01b038581166024830152604480830186905283518084039091018152606490920183526020820180516001600160e01b031663a9059cbb60e01b178152925182516000956060959316939282918083835b602083106113ad5780518252601f19909201916020918201910161138e565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d806000811461140f576040519150601f19603f3d011682016040523d82523d6000602084013e611414565b606091505b50915091508161145f576040805162461bcd60e51b81526020600482015260116024820152706e6f7420656e6f75676820746f6b656e7360781b604482015290519081900360640190fd5b8051156114fb5780516020146114a65760405162461bcd60e51b815260040180806020018281038252602a815260200180611717602a913960400191505060405180910390fd5b8080602001905160208110156114bb57600080fd5b50519150816114fb5760405162461bcd60e51b81526004018080602001828103825260278152602001806117716027913960400191505060405180910390fd5b50505050565b606f54604080516001600160a01b0386811660248301528581166044830152606480830186905283518084039091018152608490920183526020820180516001600160e01b03166323b872dd60e01b178152925182516000956060959316939282918083835b602083106115865780518252601f199092019160209182019101611567565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d80600081146115e8576040519150601f19603f3d011682016040523d82523d6000602084013e6115ed565b606091505b509150915081611644576040805162461bcd60e51b815260206004820152601960248201527f6e6f7420656e6f75676820616c6c6f77656420746f6b656e7300000000000000604482015290519081900360640190fd5b8051156116e057805160201461168b5760405162461bcd60e51b815260040180806020018281038252602a815260200180611717602a913960400191505060405180910390fd5b8080602001905160208110156116a057600080fd5b50519150816116e05760405162461bcd60e51b815260040180806020018281038252602f8152602001806117b9602f913960400191505060405180910390fd5b505050505056fe4d65726b6c6520747265652069732066756c6c2e204e6f206d6f7265206c656166732063616e20626520616464656464617461206c656e6774682073686f756c64206265206569746865722030206f72203332206279746573496e636f727265637420726566756e6420616d6f756e742072656365697665642062792074686520636f6e74726163746e6f7420656e6f75676820746f6b656e732e20546f6b656e2072657475726e732066616c73652e5f72696768742073686f756c6420626520696e7369646520746865206669656c646e6f7420656e6f75676820616c6c6f77656420746f6b656e732e20546f6b656e2072657475726e732066616c73652e30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000154686520636f6d6d69746d656e7420686173206265656e207375626d69747465644554482076616c756520697320737570706f73656420746f206265203020666f7220455243323020696e7374616e63654f6e6c79206f70657261746f722063616e2063616c6c20746869732066756e6374696f6e2ea265627a7a72315820c90af910ddfda5b33dab20c369a888b349922f695f9eee0e2eb3e0273adc895364736f6c63430005110032", + "sourceMap": "805:2570:0:-;;;1430:34:1;;;-1:-1:-1;;;;;;1468:27:1;;;897:334:0;5:2:-1;;;;30:1;27;20:12;5:2;897:334:0;;;;;;;;;;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;-1:-1;897:334:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1646:15:1;;;1638:67;;;;-1:-1:-1;;;1638:67:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1733:2;1719:11;:16;;;1711:63;;;;-1:-1:-1;;;1711:63:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1780:6;:20;;-1:-1:-1;;1780:20:1;;;;;;;1854:5;27:10:-1;;-1:-1;23:18;;;45:23;;;1088:77:1;-1:-1:-1;;;;;;;;;;;1854:23:1;;;;;;27:10:-1;;23:18;;;45:23;;1883:32:1;;;;-1:-1:-1;;;;;;;;;;;1883:32:1;;;;;;1922:175;1945:6;;;;;;1941:10;;;;1922:175;;;1980:39;1994:11;;-1:-1:-1;;;;;1980:13:1;:39;:::i;:::-;2027:5;27:10:-1;;39:1;23:18;;;45:23;;;-1:-1;;;;;;;;;;;2027:23:1;;;;27:10:-1;;23:18;;;45:23;;-1:-1;2058:32:1;;;-1:-1:-1;;;;;;;;;;;2058:32:1;;;;1966:53;;-1:-1:-1;1953:3:1;1922:175;;;-1:-1:-1;2114:39:1;2128:11;;-1:-1:-1;;;;;2114:13:1;:39;:::i;:::-;2103:5;2109:1;2103:8;:50;-1:-1:-1;;1421:11:3;:18;;-1:-1:-1;;1421:18:3;1435:4;1421:18;;;1645:17:2;1637:67;;;;-1:-1:-1;;;1637:67:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1710:8;:20;;-1:-1:-1;;;;;;1710:20:2;;;-1:-1:-1;;;;;1710:20:2;;;;;;;1736:10;:24;;;;;;;;;;;;;;1766:8;:20;;;;;;;;;;;;;-1:-1:-1;1792:12:2;:28;1157:5:0;:14;;;;;;;;;;;;;;1223:3;1207:13;:19;1193:11;:33;-1:-1:-1;805:2570:0;;-1:-1:-1;;;;;805:2570:0;2230:445:1;2305:7;-1:-1:-1;;;;;;;;;;;2328:27:1;;2320:72;;;;;-1:-1:-1;;;2320:72:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2406:28:1;;2398:74;;;;-1:-1:-1;;;2398:74:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2538:23;;;-1:-1:-1;;;2538:23:1;;;;;;;;2478:9;2538:23;;;;;;;;2498:5;;2478:9;;2538:6;;:17;;:23;;;;;;;;;;:6;:23;;;5:2:-1;;;;30:1;27;20:12;5:2;2538:23:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2538:23:1;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2538:23:1;;;;;;;;;-1:-1:-1;2538:23:1;-1:-1:-1;;;;;;;;;;;;2589:6:1;2578:1;2571:38;2567:42;;2624:6;:17;2642:1;2645;2624:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2624:23:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2624:23:1;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2624:23:1;;2230:445;-1:-1:-1;;;;;2230:445:1:o;805:2570:0:-;;;;;;;", + "deployedSourceMap": "805:2570:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4814:102:2;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4814:102:2;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;4814:102:2;-1:-1:-1;;;;;4814:102:2;;:::i;:::-;;412:47;;8:9:-1;5:2;;;30:1;27;20:12;5:2;412:47:2;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;412:47:2;;:::i;:::-;;;;;;;;;;;;;;;;;;2893:801;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;2893:801:2;;;;;;;;-1:-1:-1;;;5:28;;2:2;;;46:1;43;36:12;2:2;2893:801:2;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;2893:801:2;;;;;;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;2893:801:2;;-1:-1:-1;2893:801:2;-1:-1:-1;2893:801:2;;;;;;;;-1:-1:-1;;;;;2893:801:2;;;;;;;;;;;;;;;;;;;;;;;;:::i;601:25::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;601:25:2;;;:::i;:::-;;;;-1:-1:-1;;;;;601:25:2;;;;;;;;;;;;;;2230:445:1;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2230:445:1;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2230:445:1;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;933:114;;8:9:-1;5:2;;;30:1;27;20:12;5:2;933:114:1;;;:::i;1209:20::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1209:20:1;;;:::i;:::-;;;;;;;;;;;;;;;;;;;819:23:2;;8:9:-1;5:2;;;30:1;27;20:12;5:2;819:23:2;;;:::i;3553:342:1:-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3553:342:1;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3553:342:1;;:::i;554:43:2:-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;554:43:2;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;554:43:2;;:::i;381:27::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;381:27:2;;;:::i;1430:34:1:-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1430:34:1;;;:::i;4651:113:2:-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4651:113:2;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;4651:113:2;-1:-1:-1;;;;;4651:113:2;;:::i;4128:293::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4128:293:2;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;4128:293:2;;;;;;;;-1:-1:-1;;;5:28;;2:2;;;46:1;43;36:12;2:2;4128:293:2;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;4128:293:2;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;-1:-1;;;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;-1:-1;4128:293:2;;-1:-1:-1;4128:293:2;-1:-1:-1;4128:293: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;4128:293:2;;;;;;;;;;;;;;;;;866:26:0;;8:9:-1;5:2;;;30:1;27;20:12;5:2;866:26:0;;;:::i;2073:324:2:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2073:324:2;;:::i;3941:93:1:-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3941:93:1;;;:::i;1549:39::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1549:39:1;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1549:39:1;;:::i;1499:46::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1499:46:1;;;:::i;630:29:2:-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;630:29:2;;;:::i;3951:116::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3951:116:2;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3951:116:2;;:::i;1404:22:1:-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1404:22:1;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1404:22:1;;:::i;1051:114::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1051:114:1;;;:::i;1369:31::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1369:31:1;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1369:31:1;;:::i;842:20:0:-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;842:20:0;;;:::i;1468:27:1:-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1468:27:1;;;:::i;4814:102:2:-;896:8;;-1:-1:-1;;;;;896:8:2;882:10;:22;874:72;;;;-1:-1:-1;;;874:72:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4888:8;:23;;-1:-1:-1;;;;;;4888:23:2;-1:-1:-1;;;;;4888:23:2;;;;;;;;;;4814:102::o;412:47::-;;;;;;;;;;;;;;;:::o;2893:801::-;1934:11:3;;;;1926:55;;;;;-1:-1:-1;;;1926:55:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;2056:11;:19;;-1:-1:-1;;2056:19:3;;;3110:12:2;;3102:20;;;3094:59;;;;;-1:-1:-1;;;3094:59:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;3168:31;;;;:15;:31;;;;;;;;3167:32;3159:76;;;;;-1:-1:-1;;;3159:76:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;3249:18;3261:5;3249:11;:18::i;:::-;3241:59;;;;;-1:-1:-1;;;3241:59:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;3347:8;;:126;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3418:19:2;;;3347:126;;;;3439:17;;;3347:126;;;;;;;;;;;;;;;;;;-1:-1:-1;;;3347:126:2;;:8;;;;;:20;;3368:6;;;;3347:126;;;;;;;;;;;;;;;;:8;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;3347:126:2;;;;;;;;;;;;;;;;;;;;;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;;3347:126:2;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3347:126:2;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3347:126:2;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3347:126:2;3339:161;;;;;-1:-1:-1;;;3339:161:2;;;;;;;;;;;;-1:-1:-1;;;3339:161:2;;;;;;;;;;;;;;;3507:31;;;;:15;:31;;;;;;;;;:38;;-1:-1:-1;;3507:38:2;3541:4;3507:38;;;3605:10;;:18;;-1:-1:-1;;;3605:18:2;;;;3551:73;;3568:10;;3580:8;;3590:4;;3596:7;;-1:-1:-1;;;;;3605:10:2;;;;:16;;:18;;;;;;;;;;;:10;:18;;;5:2:-1;;;;30:1;27;20:12;5:2;3605:18:2;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3605:18:2;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3605:18:2;3551:16;:73::i;:::-;3635:54;;;-1:-1:-1;;;;;3635:54:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2230:11:3;:18;;-1:-1:-1;;2230:18:3;2244:4;2230:18;;;-1:-1:-1;;;;;;2893:801:2:o;601:25::-;;;-1:-1:-1;;;;;601:25:2;;:::o;2230:445:1:-;2305:7;-1:-1:-1;;;;;;;;;;;2328:27:1;;2320:72;;;;;-1:-1:-1;;;2320:72:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2406:28:1;;2398:74;;;;-1:-1:-1;;;2398:74:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2538:23;;;-1:-1:-1;;;2538:23:1;;;;;;;;2478:9;2538:23;;;;;;;;2498:5;;2478:9;;2538:6;;:17;;:23;;;;;;;;;;:6;:23;;;5:2:-1;;;;30:1;27;20:12;5:2;2538:23:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2538:23:1;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2538:23:1;;;;;;;;;-1:-1:-1;2538:23:1;-1:-1:-1;;;;;;;;;;;;2589:6:1;2578:1;2571:38;2567:42;;2624:6;:17;2642:1;2645;2624:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2624:23:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2624:23:1;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2624:23:1;;2230:445;-1:-1:-1;;;;;2230:445:1:o;933:114::-;-1:-1:-1;;;;;;;;;;;933:114:1;:::o;1209:20::-;;;;;;:::o;819:23:2:-;;;-1:-1:-1;;;;;819:23:2;;:::o;3553:342:1:-;3609:4;3625:10;3621:43;;-1:-1:-1;3652:5:1;3645:12;;3621:43;3680:16;;;;3702:171;3726:5;3732:1;3726:8;;;;;;;;;;;3717:5;:17;3713:53;;;3753:4;3746:11;;;;;3713:53;3777:6;;;3773:52;;-1:-1:-1;1542:3:1;3773:52;3855:16;;-1:-1:-1;;3832:3:1;;;;3855:16;3850:21;;;3855:16;;3850:21;;3702:171;;3885:5;3878:12;;;3553:342;;;;:::o;554:43:2:-;;;;;;;;;;;;;;;:::o;381:27::-;;;;:::o;1430:34:1:-;;;;;;:::o;4651:113:2:-;896:8;;-1:-1:-1;;;;;896:8:2;882:10;:22;874:72;;;;-1:-1:-1;;;874:72:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4725:8;:34;;-1:-1:-1;;;;;;4725:34:2;-1:-1:-1;;;;;4725:34:2;;;;;;;;;;4651:113::o;4128:293::-;4244:35;;;;;;;;;;;;;;;;4209:19;;4255:16;4244:35;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;136:17;;-1:-1;4244:35:2;-1:-1:-1;4236:43:2;-1:-1:-1;4289:6:2;4285:132;4301:27;;;4285:132;;;4347:28;4355:16;;4372:1;4355:19;;;;;;;;;;;;;4347:7;:28::i;:::-;4343:68;;;4398:4;4387:5;4393:1;4387:8;;;;;;;;:15;;;:8;;;;;;;;;;;:15;4343:68;4330:3;;4285:132;;;;4128:293;;;;:::o;866:26:0:-;;;;:::o;2073:324:2:-;1934:11:3;;;;1926:55;;;;;-1:-1:-1;;;1926:55:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;2056:11;:19;;-1:-1:-1;;2056:19:3;;;2070:5;2156:24:2;;;:11;:24;;;;;;2056:19:3;2156:24:2;2155:25;2147:71;;;;-1:-1:-1;;;2147:71:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2225:20;2248;2256:11;2248:7;:20::i;:::-;2274:24;;;;:11;:24;;;;;:31;;-1:-1:-1;;2274:31:2;2301:4;2274:31;;;2225:43;-1:-1:-1;2311:17:2;:15;:17::i;:::-;2340:52;;;;;;;;2376:15;2340:52;;;;;;2348:11;;2340:52;;;;;;;;-1:-1:-1;;2230:11:3;:18;;-1:-1:-1;;2230:18:3;2244:4;2230:18;;;2073:324:2:o;3941:93:1:-;4012:16;;3984:7;;4006:5;;4012:16;;4006:23;;;;;;;;;3999:30;;3941:93;:::o;1549:39::-;;;;;;;;;;;;;-1:-1:-1;1549:39:1;:::o;1499:46::-;1542:3;1499:46;:::o;630:29:2:-;;;-1:-1:-1;;;;;630:29:2;;:::o;3951:116::-;4012:4;4031:31;;;:15;:31;;;;;;;;;3951:116::o;1404:22:1:-;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1404:22:1;:::o;1051:114::-;1088:77;1051:114;:::o;1369:31::-;;;;;;;;;;842:20:0;;;-1:-1:-1;;;;;842:20:0;;:::o;1468:27:1:-;;;-1:-1:-1;;;1468:27:1;;;;;:::o;1430:801:0:-;1601:7;1588:9;:20;1580:81;;;;-1:-1:-1;;;1580:81:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1681:20:0;;;;;;1707:226;;1726:73;1745:10;1787:11;;1772:12;1757;;:27;:41;1726:18;:73::i;:::-;1807:39;1826:6;1834:11;;1807:18;:39::i;:::-;1707:226;;;1867:59;1886:10;1913:12;1898;;:27;1867:18;:59::i;:::-;1943:16;;1939:79;;1969:42;1988:8;1998:12;1969:18;:42::i;:::-;2028:11;;2024:203;;2068:34;;2050:12;;-1:-1:-1;;;;;2068:15:0;;;2090:7;;2050:12;2068:34;2050:12;2068:34;2090:7;2068:15;:34;;;;;;;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;;2049:53:0;;;2115:7;2110:111;;2186:26;;-1:-1:-1;;;;;2186:17:0;;;:26;;;;;2204:7;;2186:26;;;;2204:7;2186:17;:26;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2186:26:0;2110:111;2024:203;;1430:801;;;;;;:::o;2679:802:1:-;2770:9;;2728:12;2820:6;;2728:12;;2770:9;-1:-1:-1;;;2770:9:1;;;;;;2820:6;;2816:1;2809:17;2793:33;;;;2785:93;;;;-1:-1:-1;;;2785:93:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2884:9;:14;;;-1:-1:-1;;;2884:14:1;;;;;2897:1;2884:14;;;;;-1:-1:-1;;2884:14:1;;;;;;2931:5;-1:-1:-1;;;2980:355:1;3003:6;;;;;;2999:10;;;;2980:355;;;3028:16;;;3024:225;;3068:16;3061:23;;3102:5;3108:1;3102:8;;;;;;;;;;;;;;;;;;3094:16;;3141;3121:14;3136:1;3121:17;;;;;;;;;;;;;;;;;;;:36;3024:225;;;3189:14;3204:1;3189:17;;;;;;;;;;;;;;;;;;3182:24;;3224:16;3216:24;;3024:225;3276:26;3290:4;3296:5;3276:13;:26::i;:::-;3257:45;-1:-1:-1;3327:1:1;3311:17;;;;;-1:-1:-1;3011:3:1;;2980:355;;;-1:-1:-1;3361:16:1;;1542:3;;3360:42;3361:16;;;;:20;3360:42;3341:16;:61;;-1:-1:-1;;3341:61:1;3360:42;;;;3341:61;;;;;;;;;;;;3434:16;;3408:5;;3414:16;3408:23;;;;;;;;:42;-1:-1:-1;;3463:9:1;;-1:-1:-1;;;3463:9:1;;;;-1:-1:-1;;3463:13:1;;2679:802;-1:-1:-1;;;;2679:802:1:o;1235:191:0:-;1285:9;:14;1277:75;;;;-1:-1:-1;;;1277:75:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1358:63;1381:10;1401:4;1408:12;;1358:22;:63::i;:::-;1235:191::o;2829:544::-;2938:5;;2949:63;;;-1:-1:-1;;;;;2949:63:0;;;;;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;2949:63:0;;;;;;;25:18:-1;;61:17;;-1:-1;;;;;182:15;-1:-1;;;179:29;160:49;;2938:75:0;;;;2903:12;;2917:17;;2938:5;;;2949:63;2938:75;;;;25:18:-1;36:153;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;;;2938:75:0;;;;;;;;;;;;;;;;;;;;;;;;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;;2902:111:0;;;;3027:7;3019:37;;;;;-1:-1:-1;;;3019:37:0;;;;;;;;;;;;-1:-1:-1;;;3019:37:0;;;;;;;;;;;;;;;3156:11;;:15;3152:217;;3189:4;:11;3204:2;3189:17;3181:72;;;;-1:-1:-1;;;3181:72:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3282:4;3271:24;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3271:24:0;;-1:-1:-1;3271:24:0;3303:59;;;;-1:-1:-1;;;3303:59:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2829:544;;;;:::o;2235:590::-;2363:5;;2374:74;;;-1:-1:-1;;;;;2374:74:0;;;;;;;;;;;;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;2374:74:0;;;;;;;25:18:-1;;61:17;;-1:-1;;;;;182:15;-1:-1;;;179:29;160:49;;2363:86:0;;;;2328:12;;2342:17;;2363:5;;;2374:74;2363:86;;;;25:18:-1;36:153;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;;;2363:86:0;;;;;;;;;;;;;;;;;;;;;;;;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;;2327:122:0;;;;2463:7;2455:45;;;;;-1:-1:-1;;;2455:45:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;2600:11;;:15;2596:225;;2633:4;:11;2648:2;2633:17;2625:72;;;;-1:-1:-1;;;2625:72:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2726:4;2715:24;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2715:24:0;;-1:-1:-1;2715:24:0;2747:67;;;;-1:-1:-1;;;2747:67:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2235:590;;;;;:::o", + "source": "// https://tornado.cash\n/*\n* d888888P dP a88888b. dP\n* 88 88 d8' `88 88\n* 88 .d8888b. 88d888b. 88d888b. .d8888b. .d888b88 .d8888b. 88 .d8888b. .d8888b. 88d888b.\n* 88 88' `88 88' `88 88' `88 88' `88 88' `88 88' `88 88 88' `88 Y8ooooo. 88' `88\n* 88 88. .88 88 88 88 88. .88 88. .88 88. .88 dP Y8. .88 88. .88 88 88 88\n* dP `88888P' dP dP dP `88888P8 `88888P8 `88888P' 88 Y88888P' `88888P8 `88888P' dP dP\n* ooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo\n*/\n\npragma solidity 0.5.17;\n\nimport \"./Tornado.sol\";\n\ncontract ERC20Tornado is Tornado {\n address public token;\n uint256 public protocolFee;\n\n constructor(\n IVerifier _verifier,\n IFeeManager _feeManager,\n uint256 _denomination,\n uint32 _merkleTreeHeight,\n address _operator,\n address _token\n ) Tornado(_verifier, _feeManager, _denomination, _merkleTreeHeight, _operator) public {\n token = _token;\n // 0.5% fee\n protocolFee = _denomination / 200;\n }\n\n function _processDeposit() internal {\n require(msg.value == 0, \"ETH value is supposed to be 0 for ERC20 instance\");\n _safeErc20TransferFrom(msg.sender, address(this), denomination);\n }\n\n function _processWithdraw(address payable _recipient, address payable _relayer, uint256 _relayer_fee, uint256 _refund, address _feeTo) internal {\n require(msg.value == _refund, \"Incorrect refund amount received by the contract\");\n\n bool feeOn = _feeTo != address(0);\n if (feeOn) {\n _safeErc20Transfer(_recipient, denomination - _relayer_fee - protocolFee);\n _safeErc20Transfer(_feeTo, protocolFee);\n } else {\n _safeErc20Transfer(_recipient, denomination - _relayer_fee);\n }\n\n if (_relayer_fee > 0) {\n _safeErc20Transfer(_relayer, _relayer_fee);\n }\n\n if (_refund > 0) {\n (bool success, ) = _recipient.call.value(_refund)(\"\");\n if (!success) {\n // let's return _refund back to the relayer\n _relayer.transfer(_refund);\n }\n }\n }\n\n function _safeErc20TransferFrom(address _from, address _to, uint256 _amount) internal {\n (bool success, bytes memory data) = token.call(abi.encodeWithSelector(0x23b872dd /* transferFrom */, _from, _to, _amount));\n require(success, \"not enough allowed tokens\");\n\n // if contract returns some data lets make sure that is `true` according to standard\n if (data.length > 0) {\n require(data.length == 32, \"data length should be either 0 or 32 bytes\");\n success = abi.decode(data, (bool));\n require(success, \"not enough allowed tokens. Token returns false.\");\n }\n }\n\n function _safeErc20Transfer(address _to, uint256 _amount) internal {\n (bool success, bytes memory data) = token.call(abi.encodeWithSelector(0xa9059cbb /* transfer */, _to, _amount));\n require(success, \"not enough tokens\");\n\n // if contract returns some data lets make sure that is `true` according to standard\n if (data.length > 0) {\n require(data.length == 32, \"data length should be either 0 or 32 bytes\");\n success = abi.decode(data, (bool));\n require(success, \"not enough tokens. Token returns false.\");\n }\n }\n}\n", "sourcePath": "/Users/brianli/dotfiles/tornado-core/contracts/ERC20Tornado.sol", "ast": { "absolutePath": "/Users/brianli/dotfiles/tornado-core/contracts/ERC20Tornado.sol", "exportedSymbols": { "ERC20Tornado": [ - 227 + 266 ] }, - "id": 228, + "id": 267, "nodeType": "SourceUnit", "nodes": [ { @@ -571,8 +606,8 @@ "file": "./Tornado.sol", "id": 2, "nodeType": "ImportDirective", - "scope": 228, - "sourceUnit": 1195, + "scope": 267, + "sourceUnit": 971, "src": "780:23:0", "symbolAliases": [], "unitAlias": "" @@ -586,10 +621,10 @@ "id": 3, "name": "Tornado", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1194, + "referencedDeclaration": 970, "src": "830:7:0", "typeDescriptions": { - "typeIdentifier": "t_contract$_Tornado_$1194", + "typeIdentifier": "t_contract$_Tornado_$970", "typeString": "contract Tornado" } }, @@ -599,19 +634,19 @@ } ], "contractDependencies": [ - 694, - 1194, - 3245 + 632, + 970, + 1000 ], "contractKind": "contract", "documentation": null, "fullyImplemented": true, - "id": 227, + "id": 266, "linearizedBaseContracts": [ - 227, - 1194, - 3245, - 694 + 266, + 970, + 1000, + 632 ], "name": "ERC20Tornado", "nodeType": "ContractDefinition", @@ -621,7 +656,7 @@ "id": 6, "name": "token", "nodeType": "VariableDeclaration", - "scope": 227, + "scope": 266, "src": "842:20:0", "stateVariable": true, "storageLocation": "default", @@ -643,28 +678,54 @@ "value": null, "visibility": "public" }, + { + "constant": false, + "id": 8, + "name": "protocolFee", + "nodeType": "VariableDeclaration", + "scope": 266, + "src": "866:26:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "866:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, { "body": { - "id": 29, + "id": 40, "nodeType": "Block", - "src": "1079:25:0", + "src": "1151:80:0", "statements": [ { "expression": { "argumentTypes": null, - "id": 27, + "id": 32, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 25, + "id": 30, "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6, - "src": "1085:5:0", + "src": "1157:5:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -674,31 +735,114 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 26, + "id": 31, "name": "_token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 16, - "src": "1093:6:0", + "referencedDeclaration": 20, + "src": "1165:6:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "1085:14:0", + "src": "1157:14:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 28, + "id": 33, "nodeType": "ExpressionStatement", - "src": "1085:14:0" + "src": "1157:14:0" + }, + { + "expression": { + "argumentTypes": null, + "id": 38, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 34, + "name": "protocolFee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8, + "src": "1193:11:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 37, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 35, + "name": "_denomination", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14, + "src": "1207:13:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "hexValue": "323030", + "id": 36, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1223:3:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_200_by_1", + "typeString": "int_const 200" + }, + "value": "200" + }, + "src": "1207:19:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1193:33:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 39, + "nodeType": "ExpressionStatement", + "src": "1193:33:0" } ] }, "documentation": null, - "id": 30, + "id": 41, "implemented": true, "kind": "constructor", "modifiers": [ @@ -706,25 +850,38 @@ "arguments": [ { "argumentTypes": null, - "id": 19, + "id": 23, "name": "_verifier", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 8, - "src": "1016:9:0", + "referencedDeclaration": 10, + "src": "1075:9:0", "typeDescriptions": { - "typeIdentifier": "t_contract$_IVerifier_$891", + "typeIdentifier": "t_contract$_IVerifier_$648", "typeString": "contract IVerifier" } }, { "argumentTypes": null, - "id": 20, + "id": 24, + "name": "_feeManager", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12, + "src": "1086:11:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IFeeManager_$654", + "typeString": "contract IFeeManager" + } + }, + { + "argumentTypes": null, + "id": 25, "name": "_denomination", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 10, - "src": "1027:13:0", + "referencedDeclaration": 14, + "src": "1099:13:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -732,12 +889,12 @@ }, { "argumentTypes": null, - "id": 21, + "id": 26, "name": "_merkleTreeHeight", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 12, - "src": "1042:17:0", + "referencedDeclaration": 16, + "src": "1114:17:0", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -745,103 +902,131 @@ }, { "argumentTypes": null, - "id": 22, + "id": 27, "name": "_operator", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 14, - "src": "1061:9:0", + "referencedDeclaration": 18, + "src": "1133:9:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], - "id": 23, + "id": 28, "modifierName": { "argumentTypes": null, - "id": 18, + "id": 22, "name": "Tornado", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1194, - "src": "1008:7:0", + "referencedDeclaration": 970, + "src": "1067:7:0", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Tornado_$1194_$", + "typeIdentifier": "t_type$_t_contract$_Tornado_$970_$", "typeString": "type(contract Tornado)" } }, "nodeType": "ModifierInvocation", - "src": "1008:63:0" + "src": "1067:76:0" } ], "name": "", "nodeType": "FunctionDefinition", "parameters": { - "id": 17, + "id": 21, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 8, + "id": 10, "name": "_verifier", "nodeType": "VariableDeclaration", - "scope": 30, - "src": "884:19:0", + "scope": 41, + "src": "914:19:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_IVerifier_$891", + "typeIdentifier": "t_contract$_IVerifier_$648", "typeString": "contract IVerifier" }, "typeName": { "contractScope": null, - "id": 7, + "id": 9, "name": "IVerifier", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 891, - "src": "884:9:0", + "referencedDeclaration": 648, + "src": "914:9:0", "typeDescriptions": { - "typeIdentifier": "t_contract$_IVerifier_$891", + "typeIdentifier": "t_contract$_IVerifier_$648", "typeString": "contract IVerifier" } }, "value": null, "visibility": "internal" }, - { - "constant": false, - "id": 10, - "name": "_denomination", - "nodeType": "VariableDeclaration", - "scope": 30, - "src": "909:21:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 9, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "909:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, { "constant": false, "id": 12, + "name": "_feeManager", + "nodeType": "VariableDeclaration", + "scope": 41, + "src": "939:23:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IFeeManager_$654", + "typeString": "contract IFeeManager" + }, + "typeName": { + "contractScope": null, + "id": 11, + "name": "IFeeManager", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 654, + "src": "939:11:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IFeeManager_$654", + "typeString": "contract IFeeManager" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 14, + "name": "_denomination", + "nodeType": "VariableDeclaration", + "scope": 41, + "src": "968:21:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 13, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "968:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 16, "name": "_merkleTreeHeight", "nodeType": "VariableDeclaration", - "scope": 30, - "src": "936:24:0", + "scope": 41, + "src": "995:24:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -849,10 +1034,10 @@ "typeString": "uint32" }, "typeName": { - "id": 11, + "id": 15, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "936:6:0", + "src": "995:6:0", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -863,11 +1048,11 @@ }, { "constant": false, - "id": 14, + "id": 18, "name": "_operator", "nodeType": "VariableDeclaration", - "scope": 30, - "src": "966:17:0", + "scope": 41, + "src": "1025:17:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -875,10 +1060,10 @@ "typeString": "address" }, "typeName": { - "id": 13, + "id": 17, "name": "address", "nodeType": "ElementaryTypeName", - "src": "966:7:0", + "src": "1025:7:0", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -890,11 +1075,11 @@ }, { "constant": false, - "id": 16, + "id": 20, "name": "_token", "nodeType": "VariableDeclaration", - "scope": 30, - "src": "989:14:0", + "scope": 41, + "src": "1048:14:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -902,10 +1087,10 @@ "typeString": "address" }, "typeName": { - "id": 15, + "id": 19, "name": "address", "nodeType": "ElementaryTypeName", - "src": "989:7:0", + "src": "1048:7:0", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -916,25 +1101,25 @@ "visibility": "internal" } ], - "src": "878:129:0" + "src": "908:158:0" }, "returnParameters": { - "id": 24, + "id": 29, "nodeType": "ParameterList", "parameters": [], - "src": "1079:0:0" + "src": "1151:0:0" }, - "scope": 227, - "src": "867:237:0", + "scope": 266, + "src": "897:334:0", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 50, + "id": 61, "nodeType": "Block", - "src": "1144:155:0", + "src": "1271:155:0", "statements": [ { "expression": { @@ -946,7 +1131,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 37, + "id": 48, "isConstant": false, "isLValue": false, "isPure": false, @@ -955,18 +1140,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 34, + "id": 45, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3260, - "src": "1158:3:0", + "referencedDeclaration": 1015, + "src": "1285:3:0", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 35, + "id": 46, "isConstant": false, "isLValue": false, "isPure": false, @@ -974,7 +1159,7 @@ "memberName": "value", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "1158:9:0", + "src": "1285:9:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -985,14 +1170,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 36, + "id": 47, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1171:1:0", + "src": "1298:1:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -1000,7 +1185,7 @@ }, "value": "0" }, - "src": "1158:14:0", + "src": "1285:14:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1009,14 +1194,14 @@ { "argumentTypes": null, "hexValue": "4554482076616c756520697320737570706f73656420746f206265203020666f7220455243323020696e7374616e6365", - "id": 38, + "id": 49, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "1174:50:0", + "src": "1301:50:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_b14b0818f1fdc710b92ba7e1ce725992b43e47a5b220b1b890f352eeac2e1d5e", @@ -1036,21 +1221,21 @@ "typeString": "literal_string \"ETH value is supposed to be 0 for ERC20 instance\"" } ], - "id": 33, + "id": 44, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 3263, - 3264 + 1018, + 1019 ], - "referencedDeclaration": 3264, - "src": "1150:7:0", + "referencedDeclaration": 1019, + "src": "1277:7:0", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 39, + "id": 50, "isConstant": false, "isLValue": false, "isPure": false, @@ -1058,15 +1243,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1150:75:0", + "src": "1277:75:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 40, + "id": 51, "nodeType": "ExpressionStatement", - "src": "1150:75:0" + "src": "1277:75:0" }, { "expression": { @@ -1076,18 +1261,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 42, + "id": 53, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3260, - "src": "1254:3:0", + "referencedDeclaration": 1015, + "src": "1381:3:0", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 43, + "id": 54, "isConstant": false, "isLValue": false, "isPure": false, @@ -1095,7 +1280,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "1254:10:0", + "src": "1381:10:0", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -1106,14 +1291,14 @@ "arguments": [ { "argumentTypes": null, - "id": 45, + "id": 56, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3284, - "src": "1274:4:0", + "referencedDeclaration": 1041, + "src": "1401:4:0", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Tornado_$227", + "typeIdentifier": "t_contract$_ERC20Tornado_$266", "typeString": "contract ERC20Tornado" } } @@ -1121,24 +1306,24 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_ERC20Tornado_$227", + "typeIdentifier": "t_contract$_ERC20Tornado_$266", "typeString": "contract ERC20Tornado" } ], - "id": 44, + "id": 55, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "1266:7:0", + "src": "1393:7:0", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 46, + "id": 57, "isConstant": false, "isLValue": false, "isPure": false, @@ -1146,7 +1331,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1266:13:0", + "src": "1393:13:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1154,12 +1339,12 @@ }, { "argumentTypes": null, - "id": 47, + "id": 58, "name": "denomination", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 897, - "src": "1281:12:0", + "referencedDeclaration": 660, + "src": "1408:12:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1181,18 +1366,18 @@ "typeString": "uint256" } ], - "id": 41, + "id": 52, "name": "_safeErc20TransferFrom", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 171, - "src": "1231:22:0", + "referencedDeclaration": 210, + "src": "1358:22:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 48, + "id": 59, "isConstant": false, "isLValue": false, "isPure": false, @@ -1200,48 +1385,48 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1231:63:0", + "src": "1358:63:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 49, + "id": 60, "nodeType": "ExpressionStatement", - "src": "1231:63:0" + "src": "1358:63:0" } ] }, "documentation": null, - "id": 51, + "id": 62, "implemented": true, "kind": "function", "modifiers": [], "name": "_processDeposit", "nodeType": "FunctionDefinition", "parameters": { - "id": 31, + "id": 42, "nodeType": "ParameterList", "parameters": [], - "src": "1132:2:0" + "src": "1259:2:0" }, "returnParameters": { - "id": 32, + "id": 43, "nodeType": "ParameterList", "parameters": [], - "src": "1144:0:0" + "src": "1271:0:0" }, - "scope": 227, - "src": "1108:191:0", + "scope": 266, + "src": "1235:191:0", "stateMutability": "nonpayable", - "superFunction": 1014, + "superFunction": 785, "visibility": "internal" }, { "body": { - "id": 112, + "id": 151, "nodeType": "Block", - "src": "1423:427:0", + "src": "1574:657:0", "statements": [ { "expression": { @@ -1253,7 +1438,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 66, + "id": 79, "isConstant": false, "isLValue": false, "isPure": false, @@ -1262,18 +1447,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 63, + "id": 76, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3260, - "src": "1437:3:0", + "referencedDeclaration": 1015, + "src": "1588:3:0", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 64, + "id": 77, "isConstant": false, "isLValue": false, "isPure": false, @@ -1281,7 +1466,7 @@ "memberName": "value", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "1437:9:0", + "src": "1588:9:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1291,18 +1476,18 @@ "operator": "==", "rightExpression": { "argumentTypes": null, - "id": 65, + "id": 78, "name": "_refund", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 59, - "src": "1450:7:0", + "referencedDeclaration": 70, + "src": "1601:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1437:20:0", + "src": "1588:20:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1311,14 +1496,14 @@ { "argumentTypes": null, "hexValue": "496e636f727265637420726566756e6420616d6f756e742072656365697665642062792074686520636f6e7472616374", - "id": 67, + "id": 80, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "1459:50:0", + "src": "1610:50:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_3189ced290ffd29dc422911cd3b29574f21c524c91f4b41e6abb0646c581cbff", @@ -1338,21 +1523,21 @@ "typeString": "literal_string \"Incorrect refund amount received by the contract\"" } ], - "id": 62, + "id": 75, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 3263, - 3264 + 1018, + 1019 ], - "referencedDeclaration": 3264, - "src": "1429:7:0", + "referencedDeclaration": 1019, + "src": "1580:7:0", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 68, + "id": 81, "isConstant": false, "isLValue": false, "isPure": false, @@ -1360,178 +1545,158 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1429:81:0", + "src": "1580:81:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 69, + "id": 82, "nodeType": "ExpressionStatement", - "src": "1429:81:0" + "src": "1580:81:0" }, { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 71, - "name": "_recipient", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 53, - "src": "1536:10:0", + "assignments": [ + 84 + ], + "declarations": [ + { + "constant": false, + "id": 84, + "name": "feeOn", + "nodeType": "VariableDeclaration", + "scope": 151, + "src": "1668:10:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 83, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1668:4:0", "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" + "typeIdentifier": "t_bool", + "typeString": "bool" } }, - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 74, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 72, - "name": "denomination", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 897, - "src": "1548:12:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "id": 73, - "name": "_fee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 57, - "src": "1563:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1548:19:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 70, - "name": "_safeErc20Transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 226, - "src": "1517:18:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 75, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1517:51:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" + "value": null, + "visibility": "internal" } - }, - "id": 76, - "nodeType": "ExpressionStatement", - "src": "1517:51:0" - }, - { - "condition": { + ], + "id": 90, + "initialValue": { "argumentTypes": null, "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_address", + "typeString": "address" }, - "id": 79, + "id": 89, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 77, - "name": "_fee", + "id": 85, + "name": "_feeTo", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 57, - "src": "1578:4:0", + "referencedDeclaration": 72, + "src": "1681:6:0", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_address", + "typeString": "address" } }, "nodeType": "BinaryOperation", - "operator": ">", + "operator": "!=", "rightExpression": { "argumentTypes": null, - "hexValue": "30", - "id": 78, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 87, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1699:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 86, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1691:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 88, "isConstant": false, "isLValue": false, "isPure": true, - "kind": "number", + "kind": "typeConversion", "lValueRequested": false, - "nodeType": "Literal", - "src": "1585:1:0", - "subdenomination": null, + "names": [], + "nodeType": "FunctionCall", + "src": "1691:10:0", "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } }, - "src": "1578:8:0", + "src": "1681:20:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "falseBody": null, - "id": 86, - "nodeType": "IfStatement", - "src": "1574:63:0", - "trueBody": { - "id": 85, + "nodeType": "VariableDeclarationStatement", + "src": "1668:33:0" + }, + { + "condition": { + "argumentTypes": null, + "id": 91, + "name": "feeOn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 84, + "src": "1711:5:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 114, "nodeType": "Block", - "src": "1588:49:0", + "src": "1859:74:0", "statements": [ { "expression": { @@ -1539,12 +1704,12 @@ "arguments": [ { "argumentTypes": null, - "id": 81, - "name": "_relayer", + "id": 108, + "name": "_recipient", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 55, - "src": "1615:8:0", + "referencedDeclaration": 64, + "src": "1886:10:0", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -1552,12 +1717,44 @@ }, { "argumentTypes": null, - "id": 82, - "name": "_fee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 57, - "src": "1625:4:0", + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 111, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 109, + "name": "denomination", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 660, + "src": "1898:12:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "id": 110, + "name": "_relayer_fee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 68, + "src": "1913:12:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1898:27:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1575,18 +1772,18 @@ "typeString": "uint256" } ], - "id": 80, + "id": 107, "name": "_safeErc20Transfer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 226, - "src": "1596:18:0", + "referencedDeclaration": 265, + "src": "1867:18:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,uint256)" } }, - "id": 83, + "id": 112, "isConstant": false, "isLValue": false, "isPure": false, @@ -1594,15 +1791,231 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1596:34:0", + "src": "1867:59:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 84, + "id": 113, "nodeType": "ExpressionStatement", - "src": "1596:34:0" + "src": "1867:59:0" + } + ] + }, + "id": 115, + "nodeType": "IfStatement", + "src": "1707:226:0", + "trueBody": { + "id": 106, + "nodeType": "Block", + "src": "1718:135:0", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 93, + "name": "_recipient", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 64, + "src": "1745:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 98, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 96, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 94, + "name": "denomination", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 660, + "src": "1757:12:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "id": 95, + "name": "_relayer_fee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 68, + "src": "1772:12:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1757:27:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "id": 97, + "name": "protocolFee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8, + "src": "1787:11:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1757:41:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 92, + "name": "_safeErc20Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 265, + "src": "1726:18:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 99, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1726:73:0", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 100, + "nodeType": "ExpressionStatement", + "src": "1726:73:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 102, + "name": "_feeTo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 72, + "src": "1826:6:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 103, + "name": "protocolFee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8, + "src": "1834:11:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 101, + "name": "_safeErc20Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 265, + "src": "1807:18:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 104, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1807:39:0", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 105, + "nodeType": "ExpressionStatement", + "src": "1807:39:0" } ] } @@ -1614,19 +2027,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 89, + "id": 118, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 87, - "name": "_refund", + "id": 116, + "name": "_relayer_fee", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 59, - "src": "1647:7:0", + "referencedDeclaration": 68, + "src": "1943:12:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1637,14 +2050,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 88, + "id": 117, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1657:1:0", + "src": "1958:1:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -1652,34 +2065,168 @@ }, "value": "0" }, - "src": "1647:11:0", + "src": "1943:16:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 111, + "id": 125, "nodeType": "IfStatement", - "src": "1643:203:0", + "src": "1939:79:0", "trueBody": { - "id": 110, + "id": 124, "nodeType": "Block", - "src": "1660:186:0", + "src": "1961:57:0", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 120, + "name": "_relayer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 66, + "src": "1988:8:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 121, + "name": "_relayer_fee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 68, + "src": "1998:12:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 119, + "name": "_safeErc20Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 265, + "src": "1969:18:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 122, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1969:42:0", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 123, + "nodeType": "ExpressionStatement", + "src": "1969:42:0" + } + ] + } + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 128, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 126, + "name": "_refund", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 70, + "src": "2028:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 127, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2038:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "2028:11:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 150, + "nodeType": "IfStatement", + "src": "2024:203:0", + "trueBody": { + "id": 149, + "nodeType": "Block", + "src": "2041:186:0", "statements": [ { "assignments": [ - 91, + 130, null ], "declarations": [ { "constant": false, - "id": 91, + "id": 130, "name": "success", "nodeType": "VariableDeclaration", - "scope": 110, - "src": "1669:12:0", + "scope": 149, + "src": "2050:12:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1687,10 +2234,10 @@ "typeString": "bool" }, "typeName": { - "id": 90, + "id": 129, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "1669:4:0", + "src": "2050:4:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1701,21 +2248,21 @@ }, null ], - "id": 99, + "id": 138, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "", - "id": 97, + "id": 136, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "1718:2:0", + "src": "2099:2:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", @@ -1734,12 +2281,12 @@ "arguments": [ { "argumentTypes": null, - "id": 95, + "id": 134, "name": "_refund", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 59, - "src": "1709:7:0", + "referencedDeclaration": 70, + "src": "2090:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1757,18 +2304,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 92, + "id": 131, "name": "_recipient", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 53, - "src": "1687:10:0", + "referencedDeclaration": 64, + "src": "2068:10:0", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, - "id": 93, + "id": 132, "isConstant": false, "isLValue": false, "isPure": false, @@ -1776,13 +2323,13 @@ "memberName": "call", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "1687:15:0", + "src": "2068:15:0", "typeDescriptions": { "typeIdentifier": "t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$", "typeString": "function (bytes memory) payable returns (bool,bytes memory)" } }, - "id": 94, + "id": 133, "isConstant": false, "isLValue": false, "isPure": false, @@ -1790,13 +2337,13 @@ "memberName": "value", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "1687:21:0", + "src": "2068:21:0", "typeDescriptions": { "typeIdentifier": "t_function_setvalue_pure$_t_uint256_$returns$_t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$value_$", "typeString": "function (uint256) pure returns (function (bytes memory) payable returns (bool,bytes memory))" } }, - "id": 96, + "id": 135, "isConstant": false, "isLValue": false, "isPure": false, @@ -1804,13 +2351,13 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1687:30:0", + "src": "2068:30:0", "typeDescriptions": { "typeIdentifier": "t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$value", "typeString": "function (bytes memory) payable returns (bool,bytes memory)" } }, - "id": 98, + "id": 137, "isConstant": false, "isLValue": false, "isPure": false, @@ -1818,19 +2365,19 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1687:34:0", + "src": "2068:34:0", "typeDescriptions": { "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$", "typeString": "tuple(bool,bytes memory)" } }, "nodeType": "VariableDeclarationStatement", - "src": "1668:53:0" + "src": "2049:53:0" }, { "condition": { "argumentTypes": null, - "id": 101, + "id": 140, "isConstant": false, "isLValue": false, "isPure": false, @@ -1838,15 +2385,15 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "1733:8:0", + "src": "2114:8:0", "subExpression": { "argumentTypes": null, - "id": 100, + "id": 139, "name": "success", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 91, - "src": "1734:7:0", + "referencedDeclaration": 130, + "src": "2115:7:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1858,13 +2405,13 @@ } }, "falseBody": null, - "id": 109, + "id": 148, "nodeType": "IfStatement", - "src": "1729:111:0", + "src": "2110:111:0", "trueBody": { - "id": 108, + "id": 147, "nodeType": "Block", - "src": "1743:97:0", + "src": "2124:97:0", "statements": [ { "expression": { @@ -1872,12 +2419,12 @@ "arguments": [ { "argumentTypes": null, - "id": 105, + "id": 144, "name": "_refund", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 59, - "src": "1823:7:0", + "referencedDeclaration": 70, + "src": "2204:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1893,18 +2440,18 @@ ], "expression": { "argumentTypes": null, - "id": 102, + "id": 141, "name": "_relayer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 55, - "src": "1805:8:0", + "referencedDeclaration": 66, + "src": "2186:8:0", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, - "id": 104, + "id": 143, "isConstant": false, "isLValue": false, "isPure": false, @@ -1912,13 +2459,13 @@ "memberName": "transfer", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "1805:17:0", + "src": "2186:17:0", "typeDescriptions": { "typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$", "typeString": "function (uint256)" } }, - "id": 106, + "id": 145, "isConstant": false, "isLValue": false, "isPure": false, @@ -1926,15 +2473,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1805:26:0", + "src": "2186:26:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 107, + "id": 146, "nodeType": "ExpressionStatement", - "src": "1805:26:0" + "src": "2186:26:0" } ] } @@ -1945,23 +2492,23 @@ ] }, "documentation": null, - "id": 113, + "id": 152, "implemented": true, "kind": "function", "modifiers": [], "name": "_processWithdraw", "nodeType": "FunctionDefinition", "parameters": { - "id": 60, + "id": 73, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 53, + "id": 64, "name": "_recipient", "nodeType": "VariableDeclaration", - "scope": 113, - "src": "1329:26:0", + "scope": 152, + "src": "1456:26:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1969,10 +2516,10 @@ "typeString": "address payable" }, "typeName": { - "id": 52, + "id": 63, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1329:15:0", + "src": "1456:15:0", "stateMutability": "payable", "typeDescriptions": { "typeIdentifier": "t_address_payable", @@ -1984,11 +2531,11 @@ }, { "constant": false, - "id": 55, + "id": 66, "name": "_relayer", "nodeType": "VariableDeclaration", - "scope": 113, - "src": "1357:24:0", + "scope": 152, + "src": "1484:24:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1996,10 +2543,10 @@ "typeString": "address payable" }, "typeName": { - "id": 54, + "id": 65, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1357:15:0", + "src": "1484:15:0", "stateMutability": "payable", "typeDescriptions": { "typeIdentifier": "t_address_payable", @@ -2011,11 +2558,11 @@ }, { "constant": false, - "id": 57, - "name": "_fee", + "id": 68, + "name": "_relayer_fee", "nodeType": "VariableDeclaration", - "scope": 113, - "src": "1383:12:0", + "scope": 152, + "src": "1510:20:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2023,10 +2570,10 @@ "typeString": "uint256" }, "typeName": { - "id": 56, + "id": 67, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1383:7:0", + "src": "1510:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2037,11 +2584,11 @@ }, { "constant": false, - "id": 59, + "id": 70, "name": "_refund", "nodeType": "VariableDeclaration", - "scope": 113, - "src": "1397:15:0", + "scope": 152, + "src": "1532:15:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2049,10 +2596,10 @@ "typeString": "uint256" }, "typeName": { - "id": 58, + "id": 69, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1397:7:0", + "src": "1532:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2060,41 +2607,68 @@ }, "value": null, "visibility": "internal" + }, + { + "constant": false, + "id": 72, + "name": "_feeTo", + "nodeType": "VariableDeclaration", + "scope": 152, + "src": "1549:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 71, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1549:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" } ], - "src": "1328:85:0" + "src": "1455:109:0" }, "returnParameters": { - "id": 61, + "id": 74, "nodeType": "ParameterList", "parameters": [], - "src": "1423:0:0" + "src": "1574:0:0" }, - "scope": 227, - "src": "1303:547:0", + "scope": 266, + "src": "1430:801:0", "stateMutability": "nonpayable", - "superFunction": 1110, + "superFunction": 886, "visibility": "internal" }, { "body": { - "id": 170, + "id": 209, "nodeType": "Block", - "src": "1940:504:0", + "src": "2321:504:0", "statements": [ { "assignments": [ - 123, - 125 + 162, + 164 ], "declarations": [ { "constant": false, - "id": 123, + "id": 162, "name": "success", "nodeType": "VariableDeclaration", - "scope": 170, - "src": "1947:12:0", + "scope": 209, + "src": "2328:12:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2102,10 +2676,10 @@ "typeString": "bool" }, "typeName": { - "id": 122, + "id": 161, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "1947:4:0", + "src": "2328:4:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2116,11 +2690,11 @@ }, { "constant": false, - "id": 125, + "id": 164, "name": "data", "nodeType": "VariableDeclaration", - "scope": 170, - "src": "1961:17:0", + "scope": 209, + "src": "2342:17:0", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -2128,10 +2702,10 @@ "typeString": "bytes" }, "typeName": { - "id": 124, + "id": 163, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "1961:5:0", + "src": "2342:5:0", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -2141,7 +2715,7 @@ "visibility": "internal" } ], - "id": 136, + "id": 175, "initialValue": { "argumentTypes": null, "arguments": [ @@ -2151,14 +2725,14 @@ { "argumentTypes": null, "hexValue": "30783233623837326464", - "id": 130, + "id": 169, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2016:10:0", + "src": "2397:10:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_599290589_by_1", @@ -2168,12 +2742,12 @@ }, { "argumentTypes": null, - "id": 131, + "id": 170, "name": "_from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 115, - "src": "2047:5:0", + "referencedDeclaration": 154, + "src": "2428:5:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2181,12 +2755,12 @@ }, { "argumentTypes": null, - "id": 132, + "id": 171, "name": "_to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 117, - "src": "2054:3:0", + "referencedDeclaration": 156, + "src": "2435:3:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2194,12 +2768,12 @@ }, { "argumentTypes": null, - "id": 133, + "id": 172, "name": "_amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 119, - "src": "2059:7:0", + "referencedDeclaration": 158, + "src": "2440:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2227,18 +2801,18 @@ ], "expression": { "argumentTypes": null, - "id": 128, + "id": 167, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3247, - "src": "1993:3:0", + "referencedDeclaration": 1002, + "src": "2374:3:0", "typeDescriptions": { "typeIdentifier": "t_magic_abi", "typeString": "abi" } }, - "id": 129, + "id": 168, "isConstant": false, "isLValue": false, "isPure": true, @@ -2246,13 +2820,13 @@ "memberName": "encodeWithSelector", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "1993:22:0", + "src": "2374:22:0", "typeDescriptions": { "typeIdentifier": "t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$", "typeString": "function (bytes4) pure returns (bytes memory)" } }, - "id": 134, + "id": 173, "isConstant": false, "isLValue": false, "isPure": false, @@ -2260,7 +2834,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1993:74:0", + "src": "2374:74:0", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -2276,18 +2850,18 @@ ], "expression": { "argumentTypes": null, - "id": 126, + "id": 165, "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6, - "src": "1982:5:0", + "src": "2363:5:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 127, + "id": 166, "isConstant": false, "isLValue": false, "isPure": false, @@ -2295,13 +2869,13 @@ "memberName": "call", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "1982:10:0", + "src": "2363:10:0", "typeDescriptions": { "typeIdentifier": "t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$", "typeString": "function (bytes memory) payable returns (bool,bytes memory)" } }, - "id": 135, + "id": 174, "isConstant": false, "isLValue": false, "isPure": false, @@ -2309,14 +2883,14 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1982:86:0", + "src": "2363:86:0", "typeDescriptions": { "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$", "typeString": "tuple(bool,bytes memory)" } }, "nodeType": "VariableDeclarationStatement", - "src": "1946:122:0" + "src": "2327:122:0" }, { "expression": { @@ -2324,12 +2898,12 @@ "arguments": [ { "argumentTypes": null, - "id": 138, + "id": 177, "name": "success", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 123, - "src": "2082:7:0", + "referencedDeclaration": 162, + "src": "2463:7:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2338,14 +2912,14 @@ { "argumentTypes": null, "hexValue": "6e6f7420656e6f75676820616c6c6f77656420746f6b656e73", - "id": 139, + "id": 178, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "2091:27:0", + "src": "2472:27:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_b31c8a8545ea674c554dd2f6bad7d7bd1dfe923a25150b76350dc6970bf3ff5c", @@ -2365,21 +2939,21 @@ "typeString": "literal_string \"not enough allowed tokens\"" } ], - "id": 137, + "id": 176, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 3263, - 3264 + 1018, + 1019 ], - "referencedDeclaration": 3264, - "src": "2074:7:0", + "referencedDeclaration": 1019, + "src": "2455:7:0", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 140, + "id": 179, "isConstant": false, "isLValue": false, "isPure": false, @@ -2387,15 +2961,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2074:45:0", + "src": "2455:45:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 141, + "id": 180, "nodeType": "ExpressionStatement", - "src": "2074:45:0" + "src": "2455:45:0" }, { "condition": { @@ -2404,7 +2978,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 145, + "id": 184, "isConstant": false, "isLValue": false, "isPure": false, @@ -2413,18 +2987,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 142, + "id": 181, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 125, - "src": "2219:4:0", + "referencedDeclaration": 164, + "src": "2600:4:0", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, - "id": 143, + "id": 182, "isConstant": false, "isLValue": false, "isPure": false, @@ -2432,7 +3006,7 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "2219:11:0", + "src": "2600:11:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2443,14 +3017,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 144, + "id": 183, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2233:1:0", + "src": "2614:1:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -2458,20 +3032,20 @@ }, "value": "0" }, - "src": "2219:15:0", + "src": "2600:15:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 169, + "id": 208, "nodeType": "IfStatement", - "src": "2215:225:0", + "src": "2596:225:0", "trueBody": { - "id": 168, + "id": 207, "nodeType": "Block", - "src": "2236:204:0", + "src": "2617:204:0", "statements": [ { "expression": { @@ -2483,7 +3057,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 150, + "id": 189, "isConstant": false, "isLValue": false, "isPure": false, @@ -2492,18 +3066,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 147, + "id": 186, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 125, - "src": "2252:4:0", + "referencedDeclaration": 164, + "src": "2633:4:0", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, - "id": 148, + "id": 187, "isConstant": false, "isLValue": false, "isPure": false, @@ -2511,7 +3085,7 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "2252:11:0", + "src": "2633:11:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2522,14 +3096,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "3332", - "id": 149, + "id": 188, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2267:2:0", + "src": "2648:2:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_32_by_1", @@ -2537,7 +3111,7 @@ }, "value": "32" }, - "src": "2252:17:0", + "src": "2633:17:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2546,14 +3120,14 @@ { "argumentTypes": null, "hexValue": "64617461206c656e6774682073686f756c64206265206569746865722030206f72203332206279746573", - "id": 151, + "id": 190, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "2271:44:0", + "src": "2652:44:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_22b4652a1c8fbdfc6305c7ee289e87caf6a45e5ae327ee8f67eb64ba36d62560", @@ -2573,21 +3147,21 @@ "typeString": "literal_string \"data length should be either 0 or 32 bytes\"" } ], - "id": 146, + "id": 185, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 3263, - 3264 + 1018, + 1019 ], - "referencedDeclaration": 3264, - "src": "2244:7:0", + "referencedDeclaration": 1019, + "src": "2625:7:0", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 152, + "id": 191, "isConstant": false, "isLValue": false, "isPure": false, @@ -2595,32 +3169,32 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2244:72:0", + "src": "2625:72:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 153, + "id": 192, "nodeType": "ExpressionStatement", - "src": "2244:72:0" + "src": "2625:72:0" }, { "expression": { "argumentTypes": null, - "id": 161, + "id": 200, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 154, + "id": 193, "name": "success", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 123, - "src": "2324:7:0", + "referencedDeclaration": 162, + "src": "2705:7:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2633,12 +3207,12 @@ "arguments": [ { "argumentTypes": null, - "id": 157, + "id": 196, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 125, - "src": "2345:4:0", + "referencedDeclaration": 164, + "src": "2726:4:0", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -2649,13 +3223,13 @@ "components": [ { "argumentTypes": null, - "id": 158, + "id": 197, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "2352:4:0", + "src": "2733:4:0", "typeDescriptions": { "typeIdentifier": "t_type$_t_bool_$", "typeString": "type(bool)" @@ -2663,14 +3237,14 @@ "typeName": "bool" } ], - "id": 159, + "id": 198, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "2351:6:0", + "src": "2732:6:0", "typeDescriptions": { "typeIdentifier": "t_type$_t_bool_$", "typeString": "type(bool)" @@ -2690,18 +3264,18 @@ ], "expression": { "argumentTypes": null, - "id": 155, + "id": 194, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3247, - "src": "2334:3:0", + "referencedDeclaration": 1002, + "src": "2715:3:0", "typeDescriptions": { "typeIdentifier": "t_magic_abi", "typeString": "abi" } }, - "id": 156, + "id": 195, "isConstant": false, "isLValue": false, "isPure": true, @@ -2709,13 +3283,13 @@ "memberName": "decode", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "2334:10:0", + "src": "2715:10:0", "typeDescriptions": { "typeIdentifier": "t_function_abidecode_pure$__$returns$__$", "typeString": "function () pure" } }, - "id": 160, + "id": 199, "isConstant": false, "isLValue": false, "isPure": false, @@ -2723,21 +3297,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2334:24:0", + "src": "2715:24:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "2324:34:0", + "src": "2705:34:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 162, + "id": 201, "nodeType": "ExpressionStatement", - "src": "2324:34:0" + "src": "2705:34:0" }, { "expression": { @@ -2745,12 +3319,12 @@ "arguments": [ { "argumentTypes": null, - "id": 164, + "id": 203, "name": "success", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 123, - "src": "2374:7:0", + "referencedDeclaration": 162, + "src": "2755:7:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2759,14 +3333,14 @@ { "argumentTypes": null, "hexValue": "6e6f7420656e6f75676820616c6c6f77656420746f6b656e732e20546f6b656e2072657475726e732066616c73652e", - "id": 165, + "id": 204, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "2383:49:0", + "src": "2764:49:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_6cfae212a217874b58247660ff4d75d72aa825e8f2120480a7da09cf7efa221d", @@ -2786,21 +3360,21 @@ "typeString": "literal_string \"not enough allowed tokens. Token returns false.\"" } ], - "id": 163, + "id": 202, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 3263, - 3264 + 1018, + 1019 ], - "referencedDeclaration": 3264, - "src": "2366:7:0", + "referencedDeclaration": 1019, + "src": "2747:7:0", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 166, + "id": 205, "isConstant": false, "isLValue": false, "isPure": false, @@ -2808,15 +3382,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2366:67:0", + "src": "2747:67:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 167, + "id": 206, "nodeType": "ExpressionStatement", - "src": "2366:67:0" + "src": "2747:67:0" } ] } @@ -2824,23 +3398,23 @@ ] }, "documentation": null, - "id": 171, + "id": 210, "implemented": true, "kind": "function", "modifiers": [], "name": "_safeErc20TransferFrom", "nodeType": "FunctionDefinition", "parameters": { - "id": 120, + "id": 159, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 115, + "id": 154, "name": "_from", "nodeType": "VariableDeclaration", - "scope": 171, - "src": "1886:13:0", + "scope": 210, + "src": "2267:13:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2848,10 +3422,10 @@ "typeString": "address" }, "typeName": { - "id": 114, + "id": 153, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1886:7:0", + "src": "2267:7:0", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -2863,11 +3437,11 @@ }, { "constant": false, - "id": 117, + "id": 156, "name": "_to", "nodeType": "VariableDeclaration", - "scope": 171, - "src": "1901:11:0", + "scope": 210, + "src": "2282:11:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2875,10 +3449,10 @@ "typeString": "address" }, "typeName": { - "id": 116, + "id": 155, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1901:7:0", + "src": "2282:7:0", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -2890,11 +3464,11 @@ }, { "constant": false, - "id": 119, + "id": 158, "name": "_amount", "nodeType": "VariableDeclaration", - "scope": 171, - "src": "1914:15:0", + "scope": 210, + "src": "2295:15:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2902,10 +3476,10 @@ "typeString": "uint256" }, "typeName": { - "id": 118, + "id": 157, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1914:7:0", + "src": "2295:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2915,39 +3489,39 @@ "visibility": "internal" } ], - "src": "1885:45:0" + "src": "2266:45:0" }, "returnParameters": { - "id": 121, + "id": 160, "nodeType": "ParameterList", "parameters": [], - "src": "1940:0:0" + "src": "2321:0:0" }, - "scope": 227, - "src": "1854:590:0", + "scope": 266, + "src": "2235:590:0", "stateMutability": "nonpayable", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 225, + "id": 264, "nodeType": "Block", - "src": "2515:477:0", + "src": "2896:477:0", "statements": [ { "assignments": [ - 179, - 181 + 218, + 220 ], "declarations": [ { "constant": false, - "id": 179, + "id": 218, "name": "success", "nodeType": "VariableDeclaration", - "scope": 225, - "src": "2522:12:0", + "scope": 264, + "src": "2903:12:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2955,10 +3529,10 @@ "typeString": "bool" }, "typeName": { - "id": 178, + "id": 217, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "2522:4:0", + "src": "2903:4:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2969,11 +3543,11 @@ }, { "constant": false, - "id": 181, + "id": 220, "name": "data", "nodeType": "VariableDeclaration", - "scope": 225, - "src": "2536:17:0", + "scope": 264, + "src": "2917:17:0", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -2981,10 +3555,10 @@ "typeString": "bytes" }, "typeName": { - "id": 180, + "id": 219, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "2536:5:0", + "src": "2917:5:0", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -2994,7 +3568,7 @@ "visibility": "internal" } ], - "id": 191, + "id": 230, "initialValue": { "argumentTypes": null, "arguments": [ @@ -3004,14 +3578,14 @@ { "argumentTypes": null, "hexValue": "30786139303539636262", - "id": 186, + "id": 225, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2591:10:0", + "src": "2972:10:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_2835717307_by_1", @@ -3021,12 +3595,12 @@ }, { "argumentTypes": null, - "id": 187, + "id": 226, "name": "_to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 173, - "src": "2618:3:0", + "referencedDeclaration": 212, + "src": "2999:3:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3034,12 +3608,12 @@ }, { "argumentTypes": null, - "id": 188, + "id": 227, "name": "_amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 175, - "src": "2623:7:0", + "referencedDeclaration": 214, + "src": "3004:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3063,18 +3637,18 @@ ], "expression": { "argumentTypes": null, - "id": 184, + "id": 223, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3247, - "src": "2568:3:0", + "referencedDeclaration": 1002, + "src": "2949:3:0", "typeDescriptions": { "typeIdentifier": "t_magic_abi", "typeString": "abi" } }, - "id": 185, + "id": 224, "isConstant": false, "isLValue": false, "isPure": true, @@ -3082,13 +3656,13 @@ "memberName": "encodeWithSelector", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "2568:22:0", + "src": "2949:22:0", "typeDescriptions": { "typeIdentifier": "t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$", "typeString": "function (bytes4) pure returns (bytes memory)" } }, - "id": 189, + "id": 228, "isConstant": false, "isLValue": false, "isPure": false, @@ -3096,7 +3670,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2568:63:0", + "src": "2949:63:0", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -3112,18 +3686,18 @@ ], "expression": { "argumentTypes": null, - "id": 182, + "id": 221, "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6, - "src": "2557:5:0", + "src": "2938:5:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 183, + "id": 222, "isConstant": false, "isLValue": false, "isPure": false, @@ -3131,13 +3705,13 @@ "memberName": "call", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "2557:10:0", + "src": "2938:10:0", "typeDescriptions": { "typeIdentifier": "t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$", "typeString": "function (bytes memory) payable returns (bool,bytes memory)" } }, - "id": 190, + "id": 229, "isConstant": false, "isLValue": false, "isPure": false, @@ -3145,14 +3719,14 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2557:75:0", + "src": "2938:75:0", "typeDescriptions": { "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$", "typeString": "tuple(bool,bytes memory)" } }, "nodeType": "VariableDeclarationStatement", - "src": "2521:111:0" + "src": "2902:111:0" }, { "expression": { @@ -3160,12 +3734,12 @@ "arguments": [ { "argumentTypes": null, - "id": 193, + "id": 232, "name": "success", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 179, - "src": "2646:7:0", + "referencedDeclaration": 218, + "src": "3027:7:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -3174,14 +3748,14 @@ { "argumentTypes": null, "hexValue": "6e6f7420656e6f75676820746f6b656e73", - "id": 194, + "id": 233, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "2655:19:0", + "src": "3036:19:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_73949bcdc07934e9395e82489bb22c4742e057960a2c090d38e53d68d3caf52a", @@ -3201,21 +3775,21 @@ "typeString": "literal_string \"not enough tokens\"" } ], - "id": 192, + "id": 231, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 3263, - 3264 + 1018, + 1019 ], - "referencedDeclaration": 3264, - "src": "2638:7:0", + "referencedDeclaration": 1019, + "src": "3019:7:0", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 195, + "id": 234, "isConstant": false, "isLValue": false, "isPure": false, @@ -3223,15 +3797,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2638:37:0", + "src": "3019:37:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 196, + "id": 235, "nodeType": "ExpressionStatement", - "src": "2638:37:0" + "src": "3019:37:0" }, { "condition": { @@ -3240,7 +3814,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 200, + "id": 239, "isConstant": false, "isLValue": false, "isPure": false, @@ -3249,18 +3823,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 197, + "id": 236, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 181, - "src": "2775:4:0", + "referencedDeclaration": 220, + "src": "3156:4:0", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, - "id": 198, + "id": 237, "isConstant": false, "isLValue": false, "isPure": false, @@ -3268,7 +3842,7 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "2775:11:0", + "src": "3156:11:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3279,14 +3853,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 199, + "id": 238, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2789:1:0", + "src": "3170:1:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -3294,20 +3868,20 @@ }, "value": "0" }, - "src": "2775:15:0", + "src": "3156:15:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 224, + "id": 263, "nodeType": "IfStatement", - "src": "2771:217:0", + "src": "3152:217:0", "trueBody": { - "id": 223, + "id": 262, "nodeType": "Block", - "src": "2792:196:0", + "src": "3173:196:0", "statements": [ { "expression": { @@ -3319,7 +3893,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 205, + "id": 244, "isConstant": false, "isLValue": false, "isPure": false, @@ -3328,18 +3902,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 202, + "id": 241, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 181, - "src": "2808:4:0", + "referencedDeclaration": 220, + "src": "3189:4:0", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, - "id": 203, + "id": 242, "isConstant": false, "isLValue": false, "isPure": false, @@ -3347,7 +3921,7 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "2808:11:0", + "src": "3189:11:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3358,14 +3932,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "3332", - "id": 204, + "id": 243, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2823:2:0", + "src": "3204:2:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_32_by_1", @@ -3373,7 +3947,7 @@ }, "value": "32" }, - "src": "2808:17:0", + "src": "3189:17:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -3382,14 +3956,14 @@ { "argumentTypes": null, "hexValue": "64617461206c656e6774682073686f756c64206265206569746865722030206f72203332206279746573", - "id": 206, + "id": 245, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "2827:44:0", + "src": "3208:44:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_22b4652a1c8fbdfc6305c7ee289e87caf6a45e5ae327ee8f67eb64ba36d62560", @@ -3409,21 +3983,21 @@ "typeString": "literal_string \"data length should be either 0 or 32 bytes\"" } ], - "id": 201, + "id": 240, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 3263, - 3264 + 1018, + 1019 ], - "referencedDeclaration": 3264, - "src": "2800:7:0", + "referencedDeclaration": 1019, + "src": "3181:7:0", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 207, + "id": 246, "isConstant": false, "isLValue": false, "isPure": false, @@ -3431,32 +4005,32 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2800:72:0", + "src": "3181:72:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 208, + "id": 247, "nodeType": "ExpressionStatement", - "src": "2800:72:0" + "src": "3181:72:0" }, { "expression": { "argumentTypes": null, - "id": 216, + "id": 255, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 209, + "id": 248, "name": "success", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 179, - "src": "2880:7:0", + "referencedDeclaration": 218, + "src": "3261:7:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -3469,12 +4043,12 @@ "arguments": [ { "argumentTypes": null, - "id": 212, + "id": 251, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 181, - "src": "2901:4:0", + "referencedDeclaration": 220, + "src": "3282:4:0", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -3485,13 +4059,13 @@ "components": [ { "argumentTypes": null, - "id": 213, + "id": 252, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "2908:4:0", + "src": "3289:4:0", "typeDescriptions": { "typeIdentifier": "t_type$_t_bool_$", "typeString": "type(bool)" @@ -3499,14 +4073,14 @@ "typeName": "bool" } ], - "id": 214, + "id": 253, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "2907:6:0", + "src": "3288:6:0", "typeDescriptions": { "typeIdentifier": "t_type$_t_bool_$", "typeString": "type(bool)" @@ -3526,18 +4100,18 @@ ], "expression": { "argumentTypes": null, - "id": 210, + "id": 249, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3247, - "src": "2890:3:0", + "referencedDeclaration": 1002, + "src": "3271:3:0", "typeDescriptions": { "typeIdentifier": "t_magic_abi", "typeString": "abi" } }, - "id": 211, + "id": 250, "isConstant": false, "isLValue": false, "isPure": true, @@ -3545,13 +4119,13 @@ "memberName": "decode", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "2890:10:0", + "src": "3271:10:0", "typeDescriptions": { "typeIdentifier": "t_function_abidecode_pure$__$returns$__$", "typeString": "function () pure" } }, - "id": 215, + "id": 254, "isConstant": false, "isLValue": false, "isPure": false, @@ -3559,21 +4133,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2890:24:0", + "src": "3271:24:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "2880:34:0", + "src": "3261:34:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 217, + "id": 256, "nodeType": "ExpressionStatement", - "src": "2880:34:0" + "src": "3261:34:0" }, { "expression": { @@ -3581,12 +4155,12 @@ "arguments": [ { "argumentTypes": null, - "id": 219, + "id": 258, "name": "success", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 179, - "src": "2930:7:0", + "referencedDeclaration": 218, + "src": "3311:7:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -3595,14 +4169,14 @@ { "argumentTypes": null, "hexValue": "6e6f7420656e6f75676820746f6b656e732e20546f6b656e2072657475726e732066616c73652e", - "id": 220, + "id": 259, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "2939:41:0", + "src": "3320:41:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_38fa5aabf87e9f42de902eb4d9022484dde7943d80702b79ba468e9fc08f5e5e", @@ -3622,21 +4196,21 @@ "typeString": "literal_string \"not enough tokens. Token returns false.\"" } ], - "id": 218, + "id": 257, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 3263, - 3264 + 1018, + 1019 ], - "referencedDeclaration": 3264, - "src": "2922:7:0", + "referencedDeclaration": 1019, + "src": "3303:7:0", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 221, + "id": 260, "isConstant": false, "isLValue": false, "isPure": false, @@ -3644,15 +4218,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2922:59:0", + "src": "3303:59:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 222, + "id": 261, "nodeType": "ExpressionStatement", - "src": "2922:59:0" + "src": "3303:59:0" } ] } @@ -3660,23 +4234,23 @@ ] }, "documentation": null, - "id": 226, + "id": 265, "implemented": true, "kind": "function", "modifiers": [], "name": "_safeErc20Transfer", "nodeType": "FunctionDefinition", "parameters": { - "id": 176, + "id": 215, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 173, + "id": 212, "name": "_to", "nodeType": "VariableDeclaration", - "scope": 226, - "src": "2476:11:0", + "scope": 265, + "src": "2857:11:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3684,10 +4258,10 @@ "typeString": "address" }, "typeName": { - "id": 172, + "id": 211, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2476:7:0", + "src": "2857:7:0", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -3699,11 +4273,11 @@ }, { "constant": false, - "id": 175, + "id": 214, "name": "_amount", "nodeType": "VariableDeclaration", - "scope": 226, - "src": "2489:15:0", + "scope": 265, + "src": "2870:15:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3711,10 +4285,10 @@ "typeString": "uint256" }, "typeName": { - "id": 174, + "id": 213, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2489:7:0", + "src": "2870:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3724,33 +4298,33 @@ "visibility": "internal" } ], - "src": "2475:30:0" + "src": "2856:30:0" }, "returnParameters": { - "id": 177, + "id": 216, "nodeType": "ParameterList", "parameters": [], - "src": "2515:0:0" + "src": "2896:0:0" }, - "scope": 227, - "src": "2448:544:0", + "scope": 266, + "src": "2829:544:0", "stateMutability": "nonpayable", "superFunction": null, "visibility": "internal" } ], - "scope": 228, - "src": "805:2189:0" + "scope": 267, + "src": "805:2570:0" } ], - "src": "755:2240:0" + "src": "755:2621:0" }, "legacyAST": { "attributes": { "absolutePath": "/Users/brianli/dotfiles/tornado-core/contracts/ERC20Tornado.sol", "exportedSymbols": { "ERC20Tornado": [ - 227 + 266 ] } }, @@ -3769,10 +4343,10 @@ }, { "attributes": { - "SourceUnit": 1195, + "SourceUnit": 971, "absolutePath": "/Users/brianli/dotfiles/tornado-core/contracts/Tornado.sol", "file": "./Tornado.sol", - "scope": 228, + "scope": 267, "symbolAliases": [ null ], @@ -3785,21 +4359,21 @@ { "attributes": { "contractDependencies": [ - 694, - 1194, - 3245 + 632, + 970, + 1000 ], "contractKind": "contract", "documentation": null, "fullyImplemented": true, "linearizedBaseContracts": [ - 227, - 1194, - 3245, - 694 + 266, + 970, + 1000, + 632 ], "name": "ERC20Tornado", - "scope": 228 + "scope": 267 }, "children": [ { @@ -3811,7 +4385,7 @@ "attributes": { "contractScope": null, "name": "Tornado", - "referencedDeclaration": 1194, + "referencedDeclaration": 970, "type": "contract Tornado" }, "id": 3, @@ -3827,7 +4401,7 @@ "attributes": { "constant": false, "name": "token", - "scope": 227, + "scope": 266, "stateVariable": true, "storageLocation": "default", "type": "address", @@ -3850,6 +4424,32 @@ "name": "VariableDeclaration", "src": "842:20:0" }, + { + "attributes": { + "constant": false, + "name": "protocolFee", + "scope": 266, + "stateVariable": true, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 7, + "name": "ElementaryTypeName", + "src": "866:7:0" + } + ], + "id": 8, + "name": "VariableDeclaration", + "src": "866:26:0" + }, { "attributes": { "documentation": null, @@ -3857,7 +4457,7 @@ "isConstructor": true, "kind": "constructor", "name": "", - "scope": 227, + "scope": 266, "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" @@ -3869,7 +4469,7 @@ "attributes": { "constant": false, "name": "_verifier", - "scope": 30, + "scope": 41, "stateVariable": false, "storageLocation": "default", "type": "contract IVerifier", @@ -3881,23 +4481,51 @@ "attributes": { "contractScope": null, "name": "IVerifier", - "referencedDeclaration": 891, + "referencedDeclaration": 648, "type": "contract IVerifier" }, - "id": 7, + "id": 9, "name": "UserDefinedTypeName", - "src": "884:9:0" + "src": "914:9:0" } ], - "id": 8, + "id": 10, "name": "VariableDeclaration", - "src": "884:19:0" + "src": "914:19:0" + }, + { + "attributes": { + "constant": false, + "name": "_feeManager", + "scope": 41, + "stateVariable": false, + "storageLocation": "default", + "type": "contract IFeeManager", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "contractScope": null, + "name": "IFeeManager", + "referencedDeclaration": 654, + "type": "contract IFeeManager" + }, + "id": 11, + "name": "UserDefinedTypeName", + "src": "939:11:0" + } + ], + "id": 12, + "name": "VariableDeclaration", + "src": "939:23:0" }, { "attributes": { "constant": false, "name": "_denomination", - "scope": 30, + "scope": 41, "stateVariable": false, "storageLocation": "default", "type": "uint256", @@ -3910,20 +4538,20 @@ "name": "uint256", "type": "uint256" }, - "id": 9, + "id": 13, "name": "ElementaryTypeName", - "src": "909:7:0" + "src": "968:7:0" } ], - "id": 10, + "id": 14, "name": "VariableDeclaration", - "src": "909:21:0" + "src": "968:21:0" }, { "attributes": { "constant": false, "name": "_merkleTreeHeight", - "scope": 30, + "scope": 41, "stateVariable": false, "storageLocation": "default", "type": "uint32", @@ -3936,20 +4564,20 @@ "name": "uint32", "type": "uint32" }, - "id": 11, + "id": 15, "name": "ElementaryTypeName", - "src": "936:6:0" + "src": "995:6:0" } ], - "id": 12, + "id": 16, "name": "VariableDeclaration", - "src": "936:24:0" + "src": "995:24:0" }, { "attributes": { "constant": false, "name": "_operator", - "scope": 30, + "scope": 41, "stateVariable": false, "storageLocation": "default", "type": "address", @@ -3963,20 +4591,20 @@ "stateMutability": "nonpayable", "type": "address" }, - "id": 13, + "id": 17, "name": "ElementaryTypeName", - "src": "966:7:0" + "src": "1025:7:0" } ], - "id": 14, + "id": 18, "name": "VariableDeclaration", - "src": "966:17:0" + "src": "1025:17:0" }, { "attributes": { "constant": false, "name": "_token", - "scope": 30, + "scope": 41, "stateVariable": false, "storageLocation": "default", "type": "address", @@ -3990,19 +4618,19 @@ "stateMutability": "nonpayable", "type": "address" }, - "id": 15, + "id": 19, "name": "ElementaryTypeName", - "src": "989:7:0" + "src": "1048:7:0" } ], - "id": 16, + "id": 20, "name": "VariableDeclaration", - "src": "989:14:0" + "src": "1048:14:0" } ], - "id": 17, + "id": 21, "name": "ParameterList", - "src": "878:129:0" + "src": "908:158:0" }, { "attributes": { @@ -4011,9 +4639,9 @@ ] }, "children": [], - "id": 24, + "id": 29, "name": "ParameterList", - "src": "1079:0:0" + "src": "1151:0:0" }, { "children": [ @@ -4023,27 +4651,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1194, + "referencedDeclaration": 970, "type": "type(contract Tornado)", "value": "Tornado" }, - "id": 18, + "id": 22, "name": "Identifier", - "src": "1008:7:0" - }, - { - "attributes": { - "argumentTypes": null, - "overloadedDeclarations": [ - null - ], - "referencedDeclaration": 8, - "type": "contract IVerifier", - "value": "_verifier" - }, - "id": 19, - "name": "Identifier", - "src": "1016:9:0" + "src": "1067:7:0" }, { "attributes": { @@ -4052,12 +4666,12 @@ null ], "referencedDeclaration": 10, - "type": "uint256", - "value": "_denomination" + "type": "contract IVerifier", + "value": "_verifier" }, - "id": 20, + "id": 23, "name": "Identifier", - "src": "1027:13:0" + "src": "1075:9:0" }, { "attributes": { @@ -4066,12 +4680,12 @@ null ], "referencedDeclaration": 12, - "type": "uint32", - "value": "_merkleTreeHeight" + "type": "contract IFeeManager", + "value": "_feeManager" }, - "id": 21, + "id": 24, "name": "Identifier", - "src": "1042:17:0" + "src": "1086:11:0" }, { "attributes": { @@ -4080,17 +4694,45 @@ null ], "referencedDeclaration": 14, + "type": "uint256", + "value": "_denomination" + }, + "id": 25, + "name": "Identifier", + "src": "1099:13:0" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 16, + "type": "uint32", + "value": "_merkleTreeHeight" + }, + "id": 26, + "name": "Identifier", + "src": "1114:17:0" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 18, "type": "address", "value": "_operator" }, - "id": 22, + "id": 27, "name": "Identifier", - "src": "1061:9:0" + "src": "1133:9:0" } ], - "id": 23, + "id": 28, "name": "ModifierInvocation", - "src": "1008:63:0" + "src": "1067:76:0" }, { "children": [ @@ -4117,9 +4759,9 @@ "type": "address", "value": "token" }, - "id": 25, + "id": 30, "name": "Identifier", - "src": "1085:5:0" + "src": "1157:5:0" }, { "attributes": { @@ -4127,33 +4769,121 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 16, + "referencedDeclaration": 20, "type": "address", "value": "_token" }, - "id": 26, + "id": 31, "name": "Identifier", - "src": "1093:6:0" + "src": "1165:6:0" } ], - "id": 27, + "id": 32, "name": "Assignment", - "src": "1085:14:0" + "src": "1157:14:0" } ], - "id": 28, + "id": 33, "name": "ExpressionStatement", - "src": "1085:14:0" + "src": "1157:14:0" + }, + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 8, + "type": "uint256", + "value": "protocolFee" + }, + "id": 34, + "name": "Identifier", + "src": "1193:11:0" + }, + { + "attributes": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "/", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 14, + "type": "uint256", + "value": "_denomination" + }, + "id": 35, + "name": "Identifier", + "src": "1207:13:0" + }, + { + "attributes": { + "argumentTypes": null, + "hexvalue": "323030", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "number", + "type": "int_const 200", + "value": "200" + }, + "id": 36, + "name": "Literal", + "src": "1223:3:0" + } + ], + "id": 37, + "name": "BinaryOperation", + "src": "1207:19:0" + } + ], + "id": 38, + "name": "Assignment", + "src": "1193:33:0" + } + ], + "id": 39, + "name": "ExpressionStatement", + "src": "1193:33:0" } ], - "id": 29, + "id": 40, "name": "Block", - "src": "1079:25:0" + "src": "1151:80:0" } ], - "id": 30, + "id": 41, "name": "FunctionDefinition", - "src": "867:237:0" + "src": "897:334:0" }, { "attributes": { @@ -4165,9 +4895,9 @@ null ], "name": "_processDeposit", - "scope": 227, + "scope": 266, "stateMutability": "nonpayable", - "superFunction": 1014, + "superFunction": 785, "visibility": "internal" }, "children": [ @@ -4178,9 +4908,9 @@ ] }, "children": [], - "id": 31, + "id": 42, "name": "ParameterList", - "src": "1132:2:0" + "src": "1259:2:0" }, { "attributes": { @@ -4189,9 +4919,9 @@ ] }, "children": [], - "id": 32, + "id": 43, "name": "ParameterList", - "src": "1144:0:0" + "src": "1271:0:0" }, { "children": [ @@ -4225,16 +4955,16 @@ } ], "overloadedDeclarations": [ - 3263, - 3264 + 1018, + 1019 ], - "referencedDeclaration": 3264, + "referencedDeclaration": 1019, "type": "function (bool,string memory) pure", "value": "require" }, - "id": 33, + "id": 44, "name": "Identifier", - "src": "1150:7:0" + "src": "1277:7:0" }, { "attributes": { @@ -4269,18 +4999,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 3260, + "referencedDeclaration": 1015, "type": "msg", "value": "msg" }, - "id": 34, + "id": 45, "name": "Identifier", - "src": "1158:3:0" + "src": "1285:3:0" } ], - "id": 35, + "id": 46, "name": "MemberAccess", - "src": "1158:9:0" + "src": "1285:9:0" }, { "attributes": { @@ -4295,14 +5025,14 @@ "type": "int_const 0", "value": "0" }, - "id": 36, + "id": 47, "name": "Literal", - "src": "1171:1:0" + "src": "1298:1:0" } ], - "id": 37, + "id": 48, "name": "BinaryOperation", - "src": "1158:14:0" + "src": "1285:14:0" }, { "attributes": { @@ -4317,19 +5047,19 @@ "type": "literal_string \"ETH value is supposed to be 0 for ERC20 instance\"", "value": "ETH value is supposed to be 0 for ERC20 instance" }, - "id": 38, + "id": 49, "name": "Literal", - "src": "1174:50:0" + "src": "1301:50:0" } ], - "id": 39, + "id": 50, "name": "FunctionCall", - "src": "1150:75:0" + "src": "1277:75:0" } ], - "id": 40, + "id": 51, "name": "ExpressionStatement", - "src": "1150:75:0" + "src": "1277:75:0" }, { "children": [ @@ -4367,13 +5097,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 171, + "referencedDeclaration": 210, "type": "function (address,address,uint256)", "value": "_safeErc20TransferFrom" }, - "id": 41, + "id": 52, "name": "Identifier", - "src": "1231:22:0" + "src": "1358:22:0" }, { "attributes": { @@ -4393,18 +5123,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 3260, + "referencedDeclaration": 1015, "type": "msg", "value": "msg" }, - "id": 42, + "id": 53, "name": "Identifier", - "src": "1254:3:0" + "src": "1381:3:0" } ], - "id": 43, + "id": 54, "name": "MemberAccess", - "src": "1254:10:0" + "src": "1381:10:0" }, { "attributes": { @@ -4425,7 +5155,7 @@ "attributes": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_ERC20Tornado_$227", + "typeIdentifier": "t_contract$_ERC20Tornado_$266", "typeString": "contract ERC20Tornado" } ], @@ -4436,9 +5166,9 @@ "type": "type(address)", "value": "address" }, - "id": 44, + "id": 55, "name": "ElementaryTypeNameExpression", - "src": "1266:7:0" + "src": "1393:7:0" }, { "attributes": { @@ -4446,18 +5176,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 3284, + "referencedDeclaration": 1041, "type": "contract ERC20Tornado", "value": "this" }, - "id": 45, + "id": 56, "name": "Identifier", - "src": "1274:4:0" + "src": "1401:4:0" } ], - "id": 46, + "id": 57, "name": "FunctionCall", - "src": "1266:13:0" + "src": "1393:13:0" }, { "attributes": { @@ -4465,33 +5195,33 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 897, + "referencedDeclaration": 660, "type": "uint256", "value": "denomination" }, - "id": 47, + "id": 58, "name": "Identifier", - "src": "1281:12:0" + "src": "1408:12:0" } ], - "id": 48, + "id": 59, "name": "FunctionCall", - "src": "1231:63:0" + "src": "1358:63:0" } ], - "id": 49, + "id": 60, "name": "ExpressionStatement", - "src": "1231:63:0" + "src": "1358:63:0" } ], - "id": 50, + "id": 61, "name": "Block", - "src": "1144:155:0" + "src": "1271:155:0" } ], - "id": 51, + "id": 62, "name": "FunctionDefinition", - "src": "1108:191:0" + "src": "1235:191:0" }, { "attributes": { @@ -4503,9 +5233,9 @@ null ], "name": "_processWithdraw", - "scope": 227, + "scope": 266, "stateMutability": "nonpayable", - "superFunction": 1110, + "superFunction": 886, "visibility": "internal" }, "children": [ @@ -4515,7 +5245,7 @@ "attributes": { "constant": false, "name": "_recipient", - "scope": 113, + "scope": 152, "stateVariable": false, "storageLocation": "default", "type": "address payable", @@ -4529,20 +5259,20 @@ "stateMutability": "payable", "type": "address payable" }, - "id": 52, + "id": 63, "name": "ElementaryTypeName", - "src": "1329:15:0" + "src": "1456:15:0" } ], - "id": 53, + "id": 64, "name": "VariableDeclaration", - "src": "1329:26:0" + "src": "1456:26:0" }, { "attributes": { "constant": false, "name": "_relayer", - "scope": 113, + "scope": 152, "stateVariable": false, "storageLocation": "default", "type": "address payable", @@ -4556,20 +5286,20 @@ "stateMutability": "payable", "type": "address payable" }, - "id": 54, + "id": 65, "name": "ElementaryTypeName", - "src": "1357:15:0" + "src": "1484:15:0" } ], - "id": 55, + "id": 66, "name": "VariableDeclaration", - "src": "1357:24:0" + "src": "1484:24:0" }, { "attributes": { "constant": false, - "name": "_fee", - "scope": 113, + "name": "_relayer_fee", + "scope": 152, "stateVariable": false, "storageLocation": "default", "type": "uint256", @@ -4582,20 +5312,20 @@ "name": "uint256", "type": "uint256" }, - "id": 56, + "id": 67, "name": "ElementaryTypeName", - "src": "1383:7:0" + "src": "1510:7:0" } ], - "id": 57, + "id": 68, "name": "VariableDeclaration", - "src": "1383:12:0" + "src": "1510:20:0" }, { "attributes": { "constant": false, "name": "_refund", - "scope": 113, + "scope": 152, "stateVariable": false, "storageLocation": "default", "type": "uint256", @@ -4608,19 +5338,46 @@ "name": "uint256", "type": "uint256" }, - "id": 58, + "id": 69, "name": "ElementaryTypeName", - "src": "1397:7:0" + "src": "1532:7:0" } ], - "id": 59, + "id": 70, "name": "VariableDeclaration", - "src": "1397:15:0" + "src": "1532:15:0" + }, + { + "attributes": { + "constant": false, + "name": "_feeTo", + "scope": 152, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 71, + "name": "ElementaryTypeName", + "src": "1549:7:0" + } + ], + "id": 72, + "name": "VariableDeclaration", + "src": "1549:14:0" } ], - "id": 60, + "id": 73, "name": "ParameterList", - "src": "1328:85:0" + "src": "1455:109:0" }, { "attributes": { @@ -4629,9 +5386,9 @@ ] }, "children": [], - "id": 61, + "id": 74, "name": "ParameterList", - "src": "1423:0:0" + "src": "1574:0:0" }, { "children": [ @@ -4665,16 +5422,16 @@ } ], "overloadedDeclarations": [ - 3263, - 3264 + 1018, + 1019 ], - "referencedDeclaration": 3264, + "referencedDeclaration": 1019, "type": "function (bool,string memory) pure", "value": "require" }, - "id": 62, + "id": 75, "name": "Identifier", - "src": "1429:7:0" + "src": "1580:7:0" }, { "attributes": { @@ -4709,18 +5466,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 3260, + "referencedDeclaration": 1015, "type": "msg", "value": "msg" }, - "id": 63, + "id": 76, "name": "Identifier", - "src": "1437:3:0" + "src": "1588:3:0" } ], - "id": 64, + "id": 77, "name": "MemberAccess", - "src": "1437:9:0" + "src": "1588:9:0" }, { "attributes": { @@ -4728,18 +5485,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 59, + "referencedDeclaration": 70, "type": "uint256", "value": "_refund" }, - "id": 65, + "id": 78, "name": "Identifier", - "src": "1450:7:0" + "src": "1601:7:0" } ], - "id": 66, + "id": 79, "name": "BinaryOperation", - "src": "1437:20:0" + "src": "1588:20:0" }, { "attributes": { @@ -4754,149 +5511,65 @@ "type": "literal_string \"Incorrect refund amount received by the contract\"", "value": "Incorrect refund amount received by the contract" }, - "id": 67, + "id": 80, "name": "Literal", - "src": "1459:50:0" + "src": "1610:50:0" } ], - "id": 68, + "id": 81, "name": "FunctionCall", - "src": "1429:81:0" + "src": "1580:81:0" } ], - "id": 69, + "id": 82, "name": "ExpressionStatement", - "src": "1429:81:0" - }, - { - "children": [ - { - "attributes": { - "argumentTypes": null, - "isConstant": false, - "isLValue": false, - "isPure": false, - "isStructConstructorCall": false, - "lValueRequested": false, - "names": [ - null - ], - "type": "tuple()", - "type_conversion": false - }, - "children": [ - { - "attributes": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "overloadedDeclarations": [ - null - ], - "referencedDeclaration": 226, - "type": "function (address,uint256)", - "value": "_safeErc20Transfer" - }, - "id": 70, - "name": "Identifier", - "src": "1517:18:0" - }, - { - "attributes": { - "argumentTypes": null, - "overloadedDeclarations": [ - null - ], - "referencedDeclaration": 53, - "type": "address payable", - "value": "_recipient" - }, - "id": 71, - "name": "Identifier", - "src": "1536:10:0" - }, - { - "attributes": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "operator": "-", - "type": "uint256" - }, - "children": [ - { - "attributes": { - "argumentTypes": null, - "overloadedDeclarations": [ - null - ], - "referencedDeclaration": 897, - "type": "uint256", - "value": "denomination" - }, - "id": 72, - "name": "Identifier", - "src": "1548:12:0" - }, - { - "attributes": { - "argumentTypes": null, - "overloadedDeclarations": [ - null - ], - "referencedDeclaration": 57, - "type": "uint256", - "value": "_fee" - }, - "id": 73, - "name": "Identifier", - "src": "1563:4:0" - } - ], - "id": 74, - "name": "BinaryOperation", - "src": "1548:19:0" - } - ], - "id": 75, - "name": "FunctionCall", - "src": "1517:51:0" - } - ], - "id": 76, - "name": "ExpressionStatement", - "src": "1517:51:0" + "src": "1580:81:0" }, { "attributes": { - "falseBody": null + "assignments": [ + 84 + ] }, "children": [ + { + "attributes": { + "constant": false, + "name": "feeOn", + "scope": 151, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 83, + "name": "ElementaryTypeName", + "src": "1668:4:0" + } + ], + "id": 84, + "name": "VariableDeclaration", + "src": "1668:10:0" + }, { "attributes": { "argumentTypes": null, "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_address", + "typeString": "address" }, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "operator": ">", + "operator": "!=", "type": "bool" }, "children": [ @@ -4906,35 +5579,95 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 57, - "type": "uint256", - "value": "_fee" + "referencedDeclaration": 72, + "type": "address", + "value": "_feeTo" }, - "id": 77, + "id": 85, "name": "Identifier", - "src": "1578:4:0" + "src": "1681:6:0" }, { "attributes": { "argumentTypes": null, - "hexvalue": "30", "isConstant": false, "isLValue": false, "isPure": true, + "isStructConstructorCall": false, "lValueRequested": false, - "subdenomination": null, - "token": "number", - "type": "int_const 0", - "value": "0" + "names": [ + null + ], + "type": "address payable", + "type_conversion": true }, - "id": 78, - "name": "Literal", - "src": "1585:1:0" + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(address)", + "value": "address" + }, + "id": 86, + "name": "ElementaryTypeNameExpression", + "src": "1691:7:0" + }, + { + "attributes": { + "argumentTypes": null, + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 87, + "name": "Literal", + "src": "1699:1:0" + } + ], + "id": 88, + "name": "FunctionCall", + "src": "1691:10:0" } ], - "id": 79, + "id": 89, "name": "BinaryOperation", - "src": "1578:8:0" + "src": "1681:20:0" + } + ], + "id": 90, + "name": "VariableDeclarationStatement", + "src": "1668:33:0" + }, + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 84, + "type": "bool", + "value": "feeOn" + }, + "id": 91, + "name": "Identifier", + "src": "1711:5:0" }, { "children": [ @@ -4970,13 +5703,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 226, + "referencedDeclaration": 265, "type": "function (address,uint256)", "value": "_safeErc20Transfer" }, - "id": 80, + "id": 92, "name": "Identifier", - "src": "1596:18:0" + "src": "1726:18:0" }, { "attributes": { @@ -4984,47 +5717,312 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 55, + "referencedDeclaration": 64, "type": "address payable", - "value": "_relayer" + "value": "_recipient" }, - "id": 81, + "id": 93, "name": "Identifier", - "src": "1615:8:0" + "src": "1745:10:0" }, { "attributes": { "argumentTypes": null, - "overloadedDeclarations": [ - null - ], - "referencedDeclaration": 57, - "type": "uint256", - "value": "_fee" + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "-", + "type": "uint256" }, - "id": 82, - "name": "Identifier", - "src": "1625:4:0" + "children": [ + { + "attributes": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "-", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 660, + "type": "uint256", + "value": "denomination" + }, + "id": 94, + "name": "Identifier", + "src": "1757:12:0" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 68, + "type": "uint256", + "value": "_relayer_fee" + }, + "id": 95, + "name": "Identifier", + "src": "1772:12:0" + } + ], + "id": 96, + "name": "BinaryOperation", + "src": "1757:27:0" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 8, + "type": "uint256", + "value": "protocolFee" + }, + "id": 97, + "name": "Identifier", + "src": "1787:11:0" + } + ], + "id": 98, + "name": "BinaryOperation", + "src": "1757:41:0" } ], - "id": 83, + "id": 99, "name": "FunctionCall", - "src": "1596:34:0" + "src": "1726:73:0" } ], - "id": 84, + "id": 100, "name": "ExpressionStatement", - "src": "1596:34:0" + "src": "1726:73:0" + }, + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 265, + "type": "function (address,uint256)", + "value": "_safeErc20Transfer" + }, + "id": 101, + "name": "Identifier", + "src": "1807:18:0" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 72, + "type": "address", + "value": "_feeTo" + }, + "id": 102, + "name": "Identifier", + "src": "1826:6:0" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 8, + "type": "uint256", + "value": "protocolFee" + }, + "id": 103, + "name": "Identifier", + "src": "1834:11:0" + } + ], + "id": 104, + "name": "FunctionCall", + "src": "1807:39:0" + } + ], + "id": 105, + "name": "ExpressionStatement", + "src": "1807:39:0" } ], - "id": 85, + "id": 106, "name": "Block", - "src": "1588:49:0" + "src": "1718:135:0" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 265, + "type": "function (address,uint256)", + "value": "_safeErc20Transfer" + }, + "id": 107, + "name": "Identifier", + "src": "1867:18:0" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 64, + "type": "address payable", + "value": "_recipient" + }, + "id": 108, + "name": "Identifier", + "src": "1886:10:0" + }, + { + "attributes": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "-", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 660, + "type": "uint256", + "value": "denomination" + }, + "id": 109, + "name": "Identifier", + "src": "1898:12:0" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 68, + "type": "uint256", + "value": "_relayer_fee" + }, + "id": 110, + "name": "Identifier", + "src": "1913:12:0" + } + ], + "id": 111, + "name": "BinaryOperation", + "src": "1898:27:0" + } + ], + "id": 112, + "name": "FunctionCall", + "src": "1867:59:0" + } + ], + "id": 113, + "name": "ExpressionStatement", + "src": "1867:59:0" + } + ], + "id": 114, + "name": "Block", + "src": "1859:74:0" } ], - "id": 86, + "id": 115, "name": "IfStatement", - "src": "1574:63:0" + "src": "1707:226:0" }, { "attributes": { @@ -5052,13 +6050,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 59, + "referencedDeclaration": 68, "type": "uint256", - "value": "_refund" + "value": "_relayer_fee" }, - "id": 87, + "id": 116, "name": "Identifier", - "src": "1647:7:0" + "src": "1943:12:0" }, { "attributes": { @@ -5073,21 +6071,167 @@ "type": "int_const 0", "value": "0" }, - "id": 88, + "id": 117, "name": "Literal", - "src": "1657:1:0" + "src": "1958:1:0" } ], - "id": 89, + "id": 118, "name": "BinaryOperation", - "src": "1647:11:0" + "src": "1943:16:0" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 265, + "type": "function (address,uint256)", + "value": "_safeErc20Transfer" + }, + "id": 119, + "name": "Identifier", + "src": "1969:18:0" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 66, + "type": "address payable", + "value": "_relayer" + }, + "id": 120, + "name": "Identifier", + "src": "1988:8:0" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 68, + "type": "uint256", + "value": "_relayer_fee" + }, + "id": 121, + "name": "Identifier", + "src": "1998:12:0" + } + ], + "id": 122, + "name": "FunctionCall", + "src": "1969:42:0" + } + ], + "id": 123, + "name": "ExpressionStatement", + "src": "1969:42:0" + } + ], + "id": 124, + "name": "Block", + "src": "1961:57:0" + } + ], + "id": 125, + "name": "IfStatement", + "src": "1939:79:0" + }, + { + "attributes": { + "falseBody": null + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": ">", + "type": "bool" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 70, + "type": "uint256", + "value": "_refund" + }, + "id": 126, + "name": "Identifier", + "src": "2028:7:0" + }, + { + "attributes": { + "argumentTypes": null, + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 127, + "name": "Literal", + "src": "2038:1:0" + } + ], + "id": 128, + "name": "BinaryOperation", + "src": "2028:11:0" }, { "children": [ { "attributes": { "assignments": [ - 91, + 130, null ] }, @@ -5096,7 +6240,7 @@ "attributes": { "constant": false, "name": "success", - "scope": 110, + "scope": 149, "stateVariable": false, "storageLocation": "default", "type": "bool", @@ -5109,14 +6253,14 @@ "name": "bool", "type": "bool" }, - "id": 90, + "id": 129, "name": "ElementaryTypeName", - "src": "1669:4:0" + "src": "2050:4:0" } ], - "id": 91, + "id": 130, "name": "VariableDeclaration", - "src": "1669:12:0" + "src": "2050:12:0" }, { "attributes": { @@ -5188,23 +6332,23 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 53, + "referencedDeclaration": 64, "type": "address payable", "value": "_recipient" }, - "id": 92, + "id": 131, "name": "Identifier", - "src": "1687:10:0" + "src": "2068:10:0" } ], - "id": 93, + "id": 132, "name": "MemberAccess", - "src": "1687:15:0" + "src": "2068:15:0" } ], - "id": 94, + "id": 133, "name": "MemberAccess", - "src": "1687:21:0" + "src": "2068:21:0" }, { "attributes": { @@ -5212,18 +6356,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 59, + "referencedDeclaration": 70, "type": "uint256", "value": "_refund" }, - "id": 95, + "id": 134, "name": "Identifier", - "src": "1709:7:0" + "src": "2090:7:0" } ], - "id": 96, + "id": 135, "name": "FunctionCall", - "src": "1687:30:0" + "src": "2068:30:0" }, { "attributes": { @@ -5238,19 +6382,19 @@ "type": "literal_string \"\"", "value": "" }, - "id": 97, + "id": 136, "name": "Literal", - "src": "1718:2:0" + "src": "2099:2:0" } ], - "id": 98, + "id": 137, "name": "FunctionCall", - "src": "1687:34:0" + "src": "2068:34:0" } ], - "id": 99, + "id": 138, "name": "VariableDeclarationStatement", - "src": "1668:53:0" + "src": "2049:53:0" }, { "attributes": { @@ -5275,18 +6419,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 91, + "referencedDeclaration": 130, "type": "bool", "value": "success" }, - "id": 100, + "id": 139, "name": "Identifier", - "src": "1734:7:0" + "src": "2115:7:0" } ], - "id": 101, + "id": 140, "name": "UnaryOperation", - "src": "1733:8:0" + "src": "2114:8:0" }, { "children": [ @@ -5330,18 +6474,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 55, + "referencedDeclaration": 66, "type": "address payable", "value": "_relayer" }, - "id": 102, + "id": 141, "name": "Identifier", - "src": "1805:8:0" + "src": "2186:8:0" } ], - "id": 104, + "id": 143, "name": "MemberAccess", - "src": "1805:17:0" + "src": "2186:17:0" }, { "attributes": { @@ -5349,53 +6493,53 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 59, + "referencedDeclaration": 70, "type": "uint256", "value": "_refund" }, - "id": 105, + "id": 144, "name": "Identifier", - "src": "1823:7:0" + "src": "2204:7:0" } ], - "id": 106, + "id": 145, "name": "FunctionCall", - "src": "1805:26:0" + "src": "2186:26:0" } ], - "id": 107, + "id": 146, "name": "ExpressionStatement", - "src": "1805:26:0" + "src": "2186:26:0" } ], - "id": 108, + "id": 147, "name": "Block", - "src": "1743:97:0" + "src": "2124:97:0" } ], - "id": 109, + "id": 148, "name": "IfStatement", - "src": "1729:111:0" + "src": "2110:111:0" } ], - "id": 110, + "id": 149, "name": "Block", - "src": "1660:186:0" + "src": "2041:186:0" } ], - "id": 111, + "id": 150, "name": "IfStatement", - "src": "1643:203:0" + "src": "2024:203:0" } ], - "id": 112, + "id": 151, "name": "Block", - "src": "1423:427:0" + "src": "1574:657:0" } ], - "id": 113, + "id": 152, "name": "FunctionDefinition", - "src": "1303:547:0" + "src": "1430:801:0" }, { "attributes": { @@ -5407,7 +6551,7 @@ null ], "name": "_safeErc20TransferFrom", - "scope": 227, + "scope": 266, "stateMutability": "nonpayable", "superFunction": null, "visibility": "internal" @@ -5419,7 +6563,7 @@ "attributes": { "constant": false, "name": "_from", - "scope": 171, + "scope": 210, "stateVariable": false, "storageLocation": "default", "type": "address", @@ -5433,20 +6577,20 @@ "stateMutability": "nonpayable", "type": "address" }, - "id": 114, + "id": 153, "name": "ElementaryTypeName", - "src": "1886:7:0" + "src": "2267:7:0" } ], - "id": 115, + "id": 154, "name": "VariableDeclaration", - "src": "1886:13:0" + "src": "2267:13:0" }, { "attributes": { "constant": false, "name": "_to", - "scope": 171, + "scope": 210, "stateVariable": false, "storageLocation": "default", "type": "address", @@ -5460,20 +6604,20 @@ "stateMutability": "nonpayable", "type": "address" }, - "id": 116, + "id": 155, "name": "ElementaryTypeName", - "src": "1901:7:0" + "src": "2282:7:0" } ], - "id": 117, + "id": 156, "name": "VariableDeclaration", - "src": "1901:11:0" + "src": "2282:11:0" }, { "attributes": { "constant": false, "name": "_amount", - "scope": 171, + "scope": 210, "stateVariable": false, "storageLocation": "default", "type": "uint256", @@ -5486,19 +6630,19 @@ "name": "uint256", "type": "uint256" }, - "id": 118, + "id": 157, "name": "ElementaryTypeName", - "src": "1914:7:0" + "src": "2295:7:0" } ], - "id": 119, + "id": 158, "name": "VariableDeclaration", - "src": "1914:15:0" + "src": "2295:15:0" } ], - "id": 120, + "id": 159, "name": "ParameterList", - "src": "1885:45:0" + "src": "2266:45:0" }, { "attributes": { @@ -5507,17 +6651,17 @@ ] }, "children": [], - "id": 121, + "id": 160, "name": "ParameterList", - "src": "1940:0:0" + "src": "2321:0:0" }, { "children": [ { "attributes": { "assignments": [ - 123, - 125 + 162, + 164 ] }, "children": [ @@ -5525,7 +6669,7 @@ "attributes": { "constant": false, "name": "success", - "scope": 170, + "scope": 209, "stateVariable": false, "storageLocation": "default", "type": "bool", @@ -5538,20 +6682,20 @@ "name": "bool", "type": "bool" }, - "id": 122, + "id": 161, "name": "ElementaryTypeName", - "src": "1947:4:0" + "src": "2328:4:0" } ], - "id": 123, + "id": 162, "name": "VariableDeclaration", - "src": "1947:12:0" + "src": "2328:12:0" }, { "attributes": { "constant": false, "name": "data", - "scope": 170, + "scope": 209, "stateVariable": false, "storageLocation": "memory", "type": "bytes", @@ -5564,14 +6708,14 @@ "name": "bytes", "type": "bytes" }, - "id": 124, + "id": 163, "name": "ElementaryTypeName", - "src": "1961:5:0" + "src": "2342:5:0" } ], - "id": 125, + "id": 164, "name": "VariableDeclaration", - "src": "1961:17:0" + "src": "2342:17:0" }, { "attributes": { @@ -5615,14 +6759,14 @@ "type": "address", "value": "token" }, - "id": 126, + "id": 165, "name": "Identifier", - "src": "1982:5:0" + "src": "2363:5:0" } ], - "id": 127, + "id": 166, "name": "MemberAccess", - "src": "1982:10:0" + "src": "2363:10:0" }, { "attributes": { @@ -5674,18 +6818,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 3247, + "referencedDeclaration": 1002, "type": "abi", "value": "abi" }, - "id": 128, + "id": 167, "name": "Identifier", - "src": "1993:3:0" + "src": "2374:3:0" } ], - "id": 129, + "id": 168, "name": "MemberAccess", - "src": "1993:22:0" + "src": "2374:22:0" }, { "attributes": { @@ -5700,9 +6844,9 @@ "type": "int_const 599290589", "value": "0x23b872dd" }, - "id": 130, + "id": 169, "name": "Literal", - "src": "2016:10:0" + "src": "2397:10:0" }, { "attributes": { @@ -5710,13 +6854,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 115, + "referencedDeclaration": 154, "type": "address", "value": "_from" }, - "id": 131, + "id": 170, "name": "Identifier", - "src": "2047:5:0" + "src": "2428:5:0" }, { "attributes": { @@ -5724,13 +6868,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 117, + "referencedDeclaration": 156, "type": "address", "value": "_to" }, - "id": 132, + "id": 171, "name": "Identifier", - "src": "2054:3:0" + "src": "2435:3:0" }, { "attributes": { @@ -5738,28 +6882,28 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 119, + "referencedDeclaration": 158, "type": "uint256", "value": "_amount" }, - "id": 133, + "id": 172, "name": "Identifier", - "src": "2059:7:0" + "src": "2440:7:0" } ], - "id": 134, + "id": 173, "name": "FunctionCall", - "src": "1993:74:0" + "src": "2374:74:0" } ], - "id": 135, + "id": 174, "name": "FunctionCall", - "src": "1982:86:0" + "src": "2363:86:0" } ], - "id": 136, + "id": 175, "name": "VariableDeclarationStatement", - "src": "1946:122:0" + "src": "2327:122:0" }, { "children": [ @@ -5791,16 +6935,16 @@ } ], "overloadedDeclarations": [ - 3263, - 3264 + 1018, + 1019 ], - "referencedDeclaration": 3264, + "referencedDeclaration": 1019, "type": "function (bool,string memory) pure", "value": "require" }, - "id": 137, + "id": 176, "name": "Identifier", - "src": "2074:7:0" + "src": "2455:7:0" }, { "attributes": { @@ -5808,13 +6952,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 123, + "referencedDeclaration": 162, "type": "bool", "value": "success" }, - "id": 138, + "id": 177, "name": "Identifier", - "src": "2082:7:0" + "src": "2463:7:0" }, { "attributes": { @@ -5829,19 +6973,19 @@ "type": "literal_string \"not enough allowed tokens\"", "value": "not enough allowed tokens" }, - "id": 139, + "id": 178, "name": "Literal", - "src": "2091:27:0" + "src": "2472:27:0" } ], - "id": 140, + "id": 179, "name": "FunctionCall", - "src": "2074:45:0" + "src": "2455:45:0" } ], - "id": 141, + "id": 180, "name": "ExpressionStatement", - "src": "2074:45:0" + "src": "2455:45:0" }, { "attributes": { @@ -5881,18 +7025,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 125, + "referencedDeclaration": 164, "type": "bytes memory", "value": "data" }, - "id": 142, + "id": 181, "name": "Identifier", - "src": "2219:4:0" + "src": "2600:4:0" } ], - "id": 143, + "id": 182, "name": "MemberAccess", - "src": "2219:11:0" + "src": "2600:11:0" }, { "attributes": { @@ -5907,14 +7051,14 @@ "type": "int_const 0", "value": "0" }, - "id": 144, + "id": 183, "name": "Literal", - "src": "2233:1:0" + "src": "2614:1:0" } ], - "id": 145, + "id": 184, "name": "BinaryOperation", - "src": "2219:15:0" + "src": "2600:15:0" }, { "children": [ @@ -5948,16 +7092,16 @@ } ], "overloadedDeclarations": [ - 3263, - 3264 + 1018, + 1019 ], - "referencedDeclaration": 3264, + "referencedDeclaration": 1019, "type": "function (bool,string memory) pure", "value": "require" }, - "id": 146, + "id": 185, "name": "Identifier", - "src": "2244:7:0" + "src": "2625:7:0" }, { "attributes": { @@ -5992,18 +7136,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 125, + "referencedDeclaration": 164, "type": "bytes memory", "value": "data" }, - "id": 147, + "id": 186, "name": "Identifier", - "src": "2252:4:0" + "src": "2633:4:0" } ], - "id": 148, + "id": 187, "name": "MemberAccess", - "src": "2252:11:0" + "src": "2633:11:0" }, { "attributes": { @@ -6018,14 +7162,14 @@ "type": "int_const 32", "value": "32" }, - "id": 149, + "id": 188, "name": "Literal", - "src": "2267:2:0" + "src": "2648:2:0" } ], - "id": 150, + "id": 189, "name": "BinaryOperation", - "src": "2252:17:0" + "src": "2633:17:0" }, { "attributes": { @@ -6040,19 +7184,19 @@ "type": "literal_string \"data length should be either 0 or 32 bytes\"", "value": "data length should be either 0 or 32 bytes" }, - "id": 151, + "id": 190, "name": "Literal", - "src": "2271:44:0" + "src": "2652:44:0" } ], - "id": 152, + "id": 191, "name": "FunctionCall", - "src": "2244:72:0" + "src": "2625:72:0" } ], - "id": 153, + "id": 192, "name": "ExpressionStatement", - "src": "2244:72:0" + "src": "2625:72:0" }, { "children": [ @@ -6073,13 +7217,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 123, + "referencedDeclaration": 162, "type": "bool", "value": "success" }, - "id": 154, + "id": 193, "name": "Identifier", - "src": "2324:7:0" + "src": "2705:7:0" }, { "attributes": { @@ -6123,18 +7267,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 3247, + "referencedDeclaration": 1002, "type": "abi", "value": "abi" }, - "id": 155, + "id": 194, "name": "Identifier", - "src": "2334:3:0" + "src": "2715:3:0" } ], - "id": 156, + "id": 195, "name": "MemberAccess", - "src": "2334:10:0" + "src": "2715:10:0" }, { "attributes": { @@ -6142,13 +7286,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 125, + "referencedDeclaration": 164, "type": "bytes memory", "value": "data" }, - "id": 157, + "id": 196, "name": "Identifier", - "src": "2345:4:0" + "src": "2726:4:0" }, { "attributes": { @@ -6171,29 +7315,29 @@ "type": "type(bool)", "value": "bool" }, - "id": 158, + "id": 197, "name": "ElementaryTypeNameExpression", - "src": "2352:4:0" + "src": "2733:4:0" } ], - "id": 159, + "id": 198, "name": "TupleExpression", - "src": "2351:6:0" + "src": "2732:6:0" } ], - "id": 160, + "id": 199, "name": "FunctionCall", - "src": "2334:24:0" + "src": "2715:24:0" } ], - "id": 161, + "id": 200, "name": "Assignment", - "src": "2324:34:0" + "src": "2705:34:0" } ], - "id": 162, + "id": 201, "name": "ExpressionStatement", - "src": "2324:34:0" + "src": "2705:34:0" }, { "children": [ @@ -6225,16 +7369,16 @@ } ], "overloadedDeclarations": [ - 3263, - 3264 + 1018, + 1019 ], - "referencedDeclaration": 3264, + "referencedDeclaration": 1019, "type": "function (bool,string memory) pure", "value": "require" }, - "id": 163, + "id": 202, "name": "Identifier", - "src": "2366:7:0" + "src": "2747:7:0" }, { "attributes": { @@ -6242,13 +7386,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 123, + "referencedDeclaration": 162, "type": "bool", "value": "success" }, - "id": 164, + "id": 203, "name": "Identifier", - "src": "2374:7:0" + "src": "2755:7:0" }, { "attributes": { @@ -6263,39 +7407,39 @@ "type": "literal_string \"not enough allowed tokens. Token returns false.\"", "value": "not enough allowed tokens. Token returns false." }, - "id": 165, + "id": 204, "name": "Literal", - "src": "2383:49:0" + "src": "2764:49:0" } ], - "id": 166, + "id": 205, "name": "FunctionCall", - "src": "2366:67:0" + "src": "2747:67:0" } ], - "id": 167, + "id": 206, "name": "ExpressionStatement", - "src": "2366:67:0" + "src": "2747:67:0" } ], - "id": 168, + "id": 207, "name": "Block", - "src": "2236:204:0" + "src": "2617:204:0" } ], - "id": 169, + "id": 208, "name": "IfStatement", - "src": "2215:225:0" + "src": "2596:225:0" } ], - "id": 170, + "id": 209, "name": "Block", - "src": "1940:504:0" + "src": "2321:504:0" } ], - "id": 171, + "id": 210, "name": "FunctionDefinition", - "src": "1854:590:0" + "src": "2235:590:0" }, { "attributes": { @@ -6307,7 +7451,7 @@ null ], "name": "_safeErc20Transfer", - "scope": 227, + "scope": 266, "stateMutability": "nonpayable", "superFunction": null, "visibility": "internal" @@ -6319,7 +7463,7 @@ "attributes": { "constant": false, "name": "_to", - "scope": 226, + "scope": 265, "stateVariable": false, "storageLocation": "default", "type": "address", @@ -6333,20 +7477,20 @@ "stateMutability": "nonpayable", "type": "address" }, - "id": 172, + "id": 211, "name": "ElementaryTypeName", - "src": "2476:7:0" + "src": "2857:7:0" } ], - "id": 173, + "id": 212, "name": "VariableDeclaration", - "src": "2476:11:0" + "src": "2857:11:0" }, { "attributes": { "constant": false, "name": "_amount", - "scope": 226, + "scope": 265, "stateVariable": false, "storageLocation": "default", "type": "uint256", @@ -6359,19 +7503,19 @@ "name": "uint256", "type": "uint256" }, - "id": 174, + "id": 213, "name": "ElementaryTypeName", - "src": "2489:7:0" + "src": "2870:7:0" } ], - "id": 175, + "id": 214, "name": "VariableDeclaration", - "src": "2489:15:0" + "src": "2870:15:0" } ], - "id": 176, + "id": 215, "name": "ParameterList", - "src": "2475:30:0" + "src": "2856:30:0" }, { "attributes": { @@ -6380,17 +7524,17 @@ ] }, "children": [], - "id": 177, + "id": 216, "name": "ParameterList", - "src": "2515:0:0" + "src": "2896:0:0" }, { "children": [ { "attributes": { "assignments": [ - 179, - 181 + 218, + 220 ] }, "children": [ @@ -6398,7 +7542,7 @@ "attributes": { "constant": false, "name": "success", - "scope": 225, + "scope": 264, "stateVariable": false, "storageLocation": "default", "type": "bool", @@ -6411,20 +7555,20 @@ "name": "bool", "type": "bool" }, - "id": 178, + "id": 217, "name": "ElementaryTypeName", - "src": "2522:4:0" + "src": "2903:4:0" } ], - "id": 179, + "id": 218, "name": "VariableDeclaration", - "src": "2522:12:0" + "src": "2903:12:0" }, { "attributes": { "constant": false, "name": "data", - "scope": 225, + "scope": 264, "stateVariable": false, "storageLocation": "memory", "type": "bytes", @@ -6437,14 +7581,14 @@ "name": "bytes", "type": "bytes" }, - "id": 180, + "id": 219, "name": "ElementaryTypeName", - "src": "2536:5:0" + "src": "2917:5:0" } ], - "id": 181, + "id": 220, "name": "VariableDeclaration", - "src": "2536:17:0" + "src": "2917:17:0" }, { "attributes": { @@ -6488,14 +7632,14 @@ "type": "address", "value": "token" }, - "id": 182, + "id": 221, "name": "Identifier", - "src": "2557:5:0" + "src": "2938:5:0" } ], - "id": 183, + "id": 222, "name": "MemberAccess", - "src": "2557:10:0" + "src": "2938:10:0" }, { "attributes": { @@ -6543,18 +7687,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 3247, + "referencedDeclaration": 1002, "type": "abi", "value": "abi" }, - "id": 184, + "id": 223, "name": "Identifier", - "src": "2568:3:0" + "src": "2949:3:0" } ], - "id": 185, + "id": 224, "name": "MemberAccess", - "src": "2568:22:0" + "src": "2949:22:0" }, { "attributes": { @@ -6569,9 +7713,9 @@ "type": "int_const 2835717307", "value": "0xa9059cbb" }, - "id": 186, + "id": 225, "name": "Literal", - "src": "2591:10:0" + "src": "2972:10:0" }, { "attributes": { @@ -6579,13 +7723,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 173, + "referencedDeclaration": 212, "type": "address", "value": "_to" }, - "id": 187, + "id": 226, "name": "Identifier", - "src": "2618:3:0" + "src": "2999:3:0" }, { "attributes": { @@ -6593,28 +7737,28 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 175, + "referencedDeclaration": 214, "type": "uint256", "value": "_amount" }, - "id": 188, + "id": 227, "name": "Identifier", - "src": "2623:7:0" + "src": "3004:7:0" } ], - "id": 189, + "id": 228, "name": "FunctionCall", - "src": "2568:63:0" + "src": "2949:63:0" } ], - "id": 190, + "id": 229, "name": "FunctionCall", - "src": "2557:75:0" + "src": "2938:75:0" } ], - "id": 191, + "id": 230, "name": "VariableDeclarationStatement", - "src": "2521:111:0" + "src": "2902:111:0" }, { "children": [ @@ -6646,16 +7790,16 @@ } ], "overloadedDeclarations": [ - 3263, - 3264 + 1018, + 1019 ], - "referencedDeclaration": 3264, + "referencedDeclaration": 1019, "type": "function (bool,string memory) pure", "value": "require" }, - "id": 192, + "id": 231, "name": "Identifier", - "src": "2638:7:0" + "src": "3019:7:0" }, { "attributes": { @@ -6663,13 +7807,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 179, + "referencedDeclaration": 218, "type": "bool", "value": "success" }, - "id": 193, + "id": 232, "name": "Identifier", - "src": "2646:7:0" + "src": "3027:7:0" }, { "attributes": { @@ -6684,19 +7828,19 @@ "type": "literal_string \"not enough tokens\"", "value": "not enough tokens" }, - "id": 194, + "id": 233, "name": "Literal", - "src": "2655:19:0" + "src": "3036:19:0" } ], - "id": 195, + "id": 234, "name": "FunctionCall", - "src": "2638:37:0" + "src": "3019:37:0" } ], - "id": 196, + "id": 235, "name": "ExpressionStatement", - "src": "2638:37:0" + "src": "3019:37:0" }, { "attributes": { @@ -6736,18 +7880,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 181, + "referencedDeclaration": 220, "type": "bytes memory", "value": "data" }, - "id": 197, + "id": 236, "name": "Identifier", - "src": "2775:4:0" + "src": "3156:4:0" } ], - "id": 198, + "id": 237, "name": "MemberAccess", - "src": "2775:11:0" + "src": "3156:11:0" }, { "attributes": { @@ -6762,14 +7906,14 @@ "type": "int_const 0", "value": "0" }, - "id": 199, + "id": 238, "name": "Literal", - "src": "2789:1:0" + "src": "3170:1:0" } ], - "id": 200, + "id": 239, "name": "BinaryOperation", - "src": "2775:15:0" + "src": "3156:15:0" }, { "children": [ @@ -6803,16 +7947,16 @@ } ], "overloadedDeclarations": [ - 3263, - 3264 + 1018, + 1019 ], - "referencedDeclaration": 3264, + "referencedDeclaration": 1019, "type": "function (bool,string memory) pure", "value": "require" }, - "id": 201, + "id": 240, "name": "Identifier", - "src": "2800:7:0" + "src": "3181:7:0" }, { "attributes": { @@ -6847,18 +7991,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 181, + "referencedDeclaration": 220, "type": "bytes memory", "value": "data" }, - "id": 202, + "id": 241, "name": "Identifier", - "src": "2808:4:0" + "src": "3189:4:0" } ], - "id": 203, + "id": 242, "name": "MemberAccess", - "src": "2808:11:0" + "src": "3189:11:0" }, { "attributes": { @@ -6873,14 +8017,14 @@ "type": "int_const 32", "value": "32" }, - "id": 204, + "id": 243, "name": "Literal", - "src": "2823:2:0" + "src": "3204:2:0" } ], - "id": 205, + "id": 244, "name": "BinaryOperation", - "src": "2808:17:0" + "src": "3189:17:0" }, { "attributes": { @@ -6895,19 +8039,19 @@ "type": "literal_string \"data length should be either 0 or 32 bytes\"", "value": "data length should be either 0 or 32 bytes" }, - "id": 206, + "id": 245, "name": "Literal", - "src": "2827:44:0" + "src": "3208:44:0" } ], - "id": 207, + "id": 246, "name": "FunctionCall", - "src": "2800:72:0" + "src": "3181:72:0" } ], - "id": 208, + "id": 247, "name": "ExpressionStatement", - "src": "2800:72:0" + "src": "3181:72:0" }, { "children": [ @@ -6928,13 +8072,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 179, + "referencedDeclaration": 218, "type": "bool", "value": "success" }, - "id": 209, + "id": 248, "name": "Identifier", - "src": "2880:7:0" + "src": "3261:7:0" }, { "attributes": { @@ -6978,18 +8122,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 3247, + "referencedDeclaration": 1002, "type": "abi", "value": "abi" }, - "id": 210, + "id": 249, "name": "Identifier", - "src": "2890:3:0" + "src": "3271:3:0" } ], - "id": 211, + "id": 250, "name": "MemberAccess", - "src": "2890:10:0" + "src": "3271:10:0" }, { "attributes": { @@ -6997,13 +8141,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 181, + "referencedDeclaration": 220, "type": "bytes memory", "value": "data" }, - "id": 212, + "id": 251, "name": "Identifier", - "src": "2901:4:0" + "src": "3282:4:0" }, { "attributes": { @@ -7026,29 +8170,29 @@ "type": "type(bool)", "value": "bool" }, - "id": 213, + "id": 252, "name": "ElementaryTypeNameExpression", - "src": "2908:4:0" + "src": "3289:4:0" } ], - "id": 214, + "id": 253, "name": "TupleExpression", - "src": "2907:6:0" + "src": "3288:6:0" } ], - "id": 215, + "id": 254, "name": "FunctionCall", - "src": "2890:24:0" + "src": "3271:24:0" } ], - "id": 216, + "id": 255, "name": "Assignment", - "src": "2880:34:0" + "src": "3261:34:0" } ], - "id": 217, + "id": 256, "name": "ExpressionStatement", - "src": "2880:34:0" + "src": "3261:34:0" }, { "children": [ @@ -7080,16 +8224,16 @@ } ], "overloadedDeclarations": [ - 3263, - 3264 + 1018, + 1019 ], - "referencedDeclaration": 3264, + "referencedDeclaration": 1019, "type": "function (bool,string memory) pure", "value": "require" }, - "id": 218, + "id": 257, "name": "Identifier", - "src": "2922:7:0" + "src": "3303:7:0" }, { "attributes": { @@ -7097,13 +8241,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 179, + "referencedDeclaration": 218, "type": "bool", "value": "success" }, - "id": 219, + "id": 258, "name": "Identifier", - "src": "2930:7:0" + "src": "3311:7:0" }, { "attributes": { @@ -7118,49 +8262,49 @@ "type": "literal_string \"not enough tokens. Token returns false.\"", "value": "not enough tokens. Token returns false." }, - "id": 220, + "id": 259, "name": "Literal", - "src": "2939:41:0" + "src": "3320:41:0" } ], - "id": 221, + "id": 260, "name": "FunctionCall", - "src": "2922:59:0" + "src": "3303:59:0" } ], - "id": 222, + "id": 261, "name": "ExpressionStatement", - "src": "2922:59:0" + "src": "3303:59:0" } ], - "id": 223, + "id": 262, "name": "Block", - "src": "2792:196:0" + "src": "3173:196:0" } ], - "id": 224, + "id": 263, "name": "IfStatement", - "src": "2771:217:0" + "src": "3152:217:0" } ], - "id": 225, + "id": 264, "name": "Block", - "src": "2515:477:0" + "src": "2896:477:0" } ], - "id": 226, + "id": 265, "name": "FunctionDefinition", - "src": "2448:544:0" + "src": "2829:544:0" } ], - "id": 227, + "id": 266, "name": "ContractDefinition", - "src": "805:2189:0" + "src": "805:2570:0" } ], - "id": 228, + "id": 267, "name": "SourceUnit", - "src": "755:2240:0" + "src": "755:2621:0" }, "compiler": { "name": "solc", @@ -7177,8 +8321,7 @@ } }, "schemaVersion": "3.3.4", - "updatedAt": "2021-03-22T02:54:26.391Z", - "networkType": "ethereum", + "updatedAt": "2021-04-02T22:30:43.183Z", "devdoc": { "methods": { "changeOperator(address)": { diff --git a/client/contracts/ETHTornado.json b/client/contracts/ETHTornado.json deleted file mode 100644 index 486edce..0000000 --- a/client/contracts/ETHTornado.json +++ /dev/null @@ -1,3540 +0,0 @@ -{ - "contractName": "ETHTornado", - "abi": [ - { - "inputs": [ - { - "internalType": "contract IVerifier", - "name": "_verifier", - "type": "address" - }, - { - "internalType": "uint256", - "name": "_denomination", - "type": "uint256" - }, - { - "internalType": "uint32", - "name": "_merkleTreeHeight", - "type": "uint32" - }, - { - "internalType": "address", - "name": "_operator", - "type": "address" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "bytes32", - "name": "commitment", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "uint32", - "name": "leafIndex", - "type": "uint32" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "timestamp", - "type": "uint256" - } - ], - "name": "Deposit", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "indexed": false, - "internalType": "bytes32", - "name": "nullifierHash", - "type": "bytes32" - }, - { - "indexed": true, - "internalType": "address", - "name": "relayer", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "fee", - "type": "uint256" - } - ], - "name": "Withdrawal", - "type": "event" - }, - { - "constant": true, - "inputs": [], - "name": "FIELD_SIZE", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "ROOT_HISTORY_SIZE", - "outputs": [ - { - "internalType": "uint32", - "name": "", - "type": "uint32" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "ZERO_VALUE", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "internalType": "address", - "name": "_newOperator", - "type": "address" - } - ], - "name": "changeOperator", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "name": "commitments", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "currentRootIndex", - "outputs": [ - { - "internalType": "uint32", - "name": "", - "type": "uint32" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "denomination", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "internalType": "bytes32", - "name": "_commitment", - "type": "bytes32" - } - ], - "name": "deposit", - "outputs": [], - "payable": true, - "stateMutability": "payable", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "name": "filledSubtrees", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "getLastRoot", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "internalType": "bytes32", - "name": "_left", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "_right", - "type": "bytes32" - } - ], - "name": "hashLeftRight", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "payable": false, - "stateMutability": "pure", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "internalType": "bytes32", - "name": "_root", - "type": "bytes32" - } - ], - "name": "isKnownRoot", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "internalType": "bytes32", - "name": "_nullifierHash", - "type": "bytes32" - } - ], - "name": "isSpent", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "internalType": "bytes32[]", - "name": "_nullifierHashes", - "type": "bytes32[]" - } - ], - "name": "isSpentArray", - "outputs": [ - { - "internalType": "bool[]", - "name": "spent", - "type": "bool[]" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "levels", - "outputs": [ - { - "internalType": "uint32", - "name": "", - "type": "uint32" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "nextIndex", - "outputs": [ - { - "internalType": "uint32", - "name": "", - "type": "uint32" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "name": "nullifierHashes", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "operator", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "name": "roots", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "internalType": "address", - "name": "_newVerifier", - "type": "address" - } - ], - "name": "updateVerifier", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "verifier", - "outputs": [ - { - "internalType": "contract IVerifier", - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "internalType": "bytes", - "name": "_proof", - "type": "bytes" - }, - { - "internalType": "bytes32", - "name": "_root", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "_nullifierHash", - "type": "bytes32" - }, - { - "internalType": "address payable", - "name": "_recipient", - "type": "address" - }, - { - "internalType": "address payable", - "name": "_relayer", - "type": "address" - }, - { - "internalType": "uint256", - "name": "_fee", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "_refund", - "type": "uint256" - } - ], - "name": "withdraw", - "outputs": [], - "payable": true, - "stateMutability": "payable", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "name": "zeros", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - } - ], - "metadata": "{\"compiler\":{\"version\":\"0.5.17+commit.d19bba13\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"contract IVerifier\",\"name\":\"_verifier\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_denomination\",\"type\":\"uint256\"},{\"internalType\":\"uint32\",\"name\":\"_merkleTreeHeight\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"_operator\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"commitment\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"leafIndex\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"}],\"name\":\"Deposit\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"nullifierHash\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"relayer\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\"}],\"name\":\"Withdrawal\",\"type\":\"event\"},{\"constant\":true,\"inputs\":[],\"name\":\"FIELD_SIZE\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"ROOT_HISTORY_SIZE\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"ZERO_VALUE\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"_newOperator\",\"type\":\"address\"}],\"name\":\"changeOperator\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"commitments\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"currentRootIndex\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"denomination\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_commitment\",\"type\":\"bytes32\"}],\"name\":\"deposit\",\"outputs\":[],\"payable\":true,\"stateMutability\":\"payable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"filledSubtrees\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"getLastRoot\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_left\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"_right\",\"type\":\"bytes32\"}],\"name\":\"hashLeftRight\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_root\",\"type\":\"bytes32\"}],\"name\":\"isKnownRoot\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_nullifierHash\",\"type\":\"bytes32\"}],\"name\":\"isSpent\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"_nullifierHashes\",\"type\":\"bytes32[]\"}],\"name\":\"isSpentArray\",\"outputs\":[{\"internalType\":\"bool[]\",\"name\":\"spent\",\"type\":\"bool[]\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"levels\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"nextIndex\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"nullifierHashes\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"operator\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"roots\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"_newVerifier\",\"type\":\"address\"}],\"name\":\"updateVerifier\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"verifier\",\"outputs\":[{\"internalType\":\"contract IVerifier\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"_proof\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"_root\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"_nullifierHash\",\"type\":\"bytes32\"},{\"internalType\":\"address payable\",\"name\":\"_recipient\",\"type\":\"address\"},{\"internalType\":\"address payable\",\"name\":\"_relayer\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_fee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_refund\",\"type\":\"uint256\"}],\"name\":\"withdraw\",\"outputs\":[],\"payable\":true,\"stateMutability\":\"payable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"zeros\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"methods\":{\"changeOperator(address)\":{\"details\":\"operator can change his address \"},\"deposit(bytes32)\":{\"details\":\"Deposit funds into the contract. The caller must send (for ETH) or approve (for ERC20) value equal to or `denomination` of this instance.\",\"params\":{\"_commitment\":\"the note commitment, which is PedersenHash(nullifier + secret)\"}},\"getLastRoot()\":{\"details\":\"Returns the last root\"},\"hashLeftRight(bytes32,bytes32)\":{\"details\":\"Hash 2 tree leaves, returns MiMC(_left, _right)\"},\"isKnownRoot(bytes32)\":{\"details\":\"Whether the root is present in the root history\"},\"isSpent(bytes32)\":{\"details\":\"whether a note is already spent \"},\"isSpentArray(bytes32[])\":{\"details\":\"whether an array of notes is already spent \"},\"updateVerifier(address)\":{\"details\":\"allow operator to update SNARK verification keys. This is needed to update keys after the final trusted setup ceremony is held. After that operator rights are supposed to be transferred to zero address\"},\"withdraw(bytes,bytes32,bytes32,address,address,uint256,uint256)\":{\"details\":\"Withdraw a deposit from the contract. `proof` is a zkSNARK proof data, and input is an array of circuit public inputs `input` array consists of: - merkle root of all deposits in the contract - hash of unique deposit nullifier to prevent double spends - the recipient of funds - optional fee that goes to the transaction sender (usually a relay)\"}}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/Users/brianli/dotfiles/tornado-core/contracts/ETHTornado.sol\":\"ETHTornado\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/Users/brianli/dotfiles/tornado-core/contracts/ETHTornado.sol\":{\"keccak256\":\"0x66f0ccc0a912ccea0451339ec0566d5c2a3d63161464ac2c460711f93c0b56eb\",\"urls\":[\"bzz-raw://10f4e2380d433a7b6189031c1b53c5f9ae98b9803784127bf6d02dd242437d8d\",\"dweb:/ipfs/QmYiim1JzBkW3qpT7C2vuWb9eFepTxUBXHeiHxWYB6DMKj\"]},\"/Users/brianli/dotfiles/tornado-core/contracts/MerkleTreeWithHistory.sol\":{\"keccak256\":\"0x671cc9268dd70c47d18795f7e37fc4df11763fcbcca026edcf163f4239036254\",\"urls\":[\"bzz-raw://9c36a207ed164b60a514eae89bfb15e5b4de4b346c4a89a7a1cb50a940bc699d\",\"dweb:/ipfs/QmbPEqFJAGMpYduLEFsbPazyBsYWcjRtpth8X26wCHALwk\"]},\"/Users/brianli/dotfiles/tornado-core/contracts/Tornado.sol\":{\"keccak256\":\"0x09c70432243629ef44697fd3d0ca89d3578e2b1c9f46d90757371edb163c14da\",\"urls\":[\"bzz-raw://d2a2c9fa85c32cb15793282792cd25c71804a10aa5a911e41f3bcd07f5df117e\",\"dweb:/ipfs/QmeQ1s6ypNnP7fossR4x9svuuLjcSBtQ5spUTmWGZY5Ljr\"]},\"@openzeppelin/contracts/utils/ReentrancyGuard.sol\":{\"keccak256\":\"0xb63221b23818d622bfd83d18e0968307e4fcb7a35536bdceded76e1cf8349acd\",\"urls\":[\"bzz-raw://44e1e8c22362c4708a8c3362735f1465f5b05e2f7315e16c7010d694ce019d73\",\"dweb:/ipfs/QmWj9g8X1hxkXRre2kwkEjLBetjuzmSbWHD81bsSojnBkS\"]}},\"version\":1}", - "bytecode": "0x6080604052600380546001600160401b03191690553480156200002157600080fd5b50604051620019cc380380620019cc833981810160405260808110156200004757600080fd5b5080516020820151604083015160609093015191929091838383838163ffffffff8116620000a75760405162461bcd60e51b8152600401808060200182810382526027815260200180620019436027913960400191505060405180910390fd5b60208163ffffffff1610620000ee5760405162461bcd60e51b81526004018080602001828103825260228152602001806200198a6022913960400191505060405180910390fd5b6000805463ffffffff191663ffffffff83161781556002805460018181019092557f2fe54c60d3acabf3343a35b6eba15db4821b340f76e741e2249685ed4899af6c600080516020620019028339815191529091018190558154808301835592829052600080516020620019ac8339815191529092018290555b60005463ffffffff9081169082161015620001dc576200019282806001600160e01b036200028116565b6002805460018181019092556000805160206200190283398151915201829055805480820182556000829052600080516020620019ac833981519152018290559092500162000168565b50620001f281806001600160e01b036200028116565b60046000015550506068805460ff1916600117905582620002455760405162461bcd60e51b8152600401808060200182810382526025815260200180620018dd6025913960400191505060405180910390fd5b606c80546001600160a01b039586166001600160a01b031991821617909155606d805492909516911617909255606955506200046e9350505050565b60006000805160206200196a8339815191528310620002e7576040805162461bcd60e51b815260206004820181905260248201527f5f6c6566742073686f756c6420626520696e7369646520746865206669656c64604482015290519081900360640190fd5b6000805160206200196a8339815191528210620003365760405162461bcd60e51b8152600401808060200182810382526021815260200180620019226021913960400191505060405180910390fd5b6040805163f47d33b560e01b81526004810185905260006024820181905282518693919273__Hasher________________________________9263f47d33b592604480840193829003018186803b1580156200039157600080fd5b505af4158015620003a6573d6000803e3d6000fd5b505050506040513d6040811015620003bd57600080fd5b50805160209091015190925090506000805160206200196a833981519152848308915073__Hasher________________________________63f47d33b583836040518363ffffffff1660e01b81526004018083815260200182815260200192505050604080518083038186803b1580156200043757600080fd5b505af41580156200044c573d6000803e3d6000fd5b505050506040513d60408110156200046357600080fd5b505195945050505050565b61145f806200047e6000396000f3fe6080604052600436106101405760003560e01c806390eeb02b116100b6578063cd87a3b41161006f578063cd87a3b4146104f4578063e5285dcc14610509578063e829558814610533578063ec7329591461055d578063f178e47c14610572578063fc7e9c6f1461059c57610140565b806390eeb02b1461038557806397fc007c1461039a5780639fa12d0b146103cd578063b214faa514610498578063ba70f757146104b5578063c2b40ae4146104ca57610140565b8063414a37ba11610108578063414a37ba146102c45780634ecf518b146102d9578063570ca735146103075780636d9833e31461031c578063839df945146103465780638bca6d161461037057610140565b806306394c9b1461014557806317cc915c1461017a57806321a0adb6146101b85780632b7ac3f31461025157806338bf282e14610282575b600080fd5b34801561015157600080fd5b506101786004803603602081101561016857600080fd5b50356001600160a01b03166105b1565b005b34801561018657600080fd5b506101a46004803603602081101561019d57600080fd5b503561061c565b604080519115158252519081900360200190f35b610178600480360360e08110156101ce57600080fd5b810190602081018135600160201b8111156101e857600080fd5b8201836020820111156101fa57600080fd5b803590602001918460018302840111600160201b8311171561021b57600080fd5b91935091508035906020810135906001600160a01b03604082013581169160608101359091169060808101359060a00135610631565b34801561025d57600080fd5b5061026661097e565b604080516001600160a01b039092168252519081900360200190f35b34801561028e57600080fd5b506102b2600480360360408110156102a557600080fd5b508035906020013561098d565b60408051918252519081900360200190f35b3480156102d057600080fd5b506102b2610b6e565b3480156102e557600080fd5b506102ee610b80565b6040805163ffffffff9092168252519081900360200190f35b34801561031357600080fd5b50610266610b8c565b34801561032857600080fd5b506101a46004803603602081101561033f57600080fd5b5035610b9b565b34801561035257600080fd5b506101a46004803603602081101561036957600080fd5b5035610c0e565b34801561037c57600080fd5b506102b2610c23565b34801561039157600080fd5b506102ee610c29565b3480156103a657600080fd5b50610178600480360360208110156103bd57600080fd5b50356001600160a01b0316610c35565b3480156103d957600080fd5b50610448600480360360208110156103f057600080fd5b810190602081018135600160201b81111561040a57600080fd5b82018360208201111561041c57600080fd5b803590602001918460208302840111600160201b8311171561043d57600080fd5b509092509050610ca0565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561048457818101518382015260200161046c565b505050509050019250505060405180910390f35b610178600480360360208110156104ae57600080fd5b5035610d28565b3480156104c157600080fd5b506102b2610e55565b3480156104d657600080fd5b506102b2600480360360208110156104ed57600080fd5b5035610e75565b34801561050057600080fd5b506102ee610e89565b34801561051557600080fd5b506101a46004803603602081101561052c57600080fd5b5035610e8e565b34801561053f57600080fd5b506102b26004803603602081101561055657600080fd5b5035610ea3565b34801561056957600080fd5b506102b2610ec1565b34801561057e57600080fd5b506102b26004803603602081101561059557600080fd5b5035610ee5565b3480156105a857600080fd5b506102ee610ef2565b606d546001600160a01b031633146105fa5760405162461bcd60e51b81526004018080602001828103825260258152602001806113d16025913960400191505060405180910390fd5b606d80546001600160a01b0319166001600160a01b0392909216919091179055565b606a6020526000908152604090205460ff1681565b60685460ff16610688576040805162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015290519081900360640190fd5b6068805460ff191690556069548211156106e9576040805162461bcd60e51b815260206004820152601a60248201527f4665652065786365656473207472616e736665722076616c7565000000000000604482015290519081900360640190fd5b6000858152606a602052604090205460ff161561074d576040805162461bcd60e51b815260206004820152601f60248201527f546865206e6f746520686173206265656e20616c7265616479207370656e7400604482015290519081900360640190fd5b61075686610b9b565b6107a7576040805162461bcd60e51b815260206004820152601c60248201527f43616e6e6f742066696e6420796f7572206d65726b6c6520726f6f7400000000604482015290519081900360640190fd5b606c546040805160c08082018352898252602082018990526001600160a01b038881168385015287811660608401526080830187905260a08301869052925163695ef6f960e01b8152929093169263695ef6f9928c928c9290916004810191829160240190849080838360005b8381101561082c578181015183820152602001610814565b505050509050018281038252858582818152602001925080828437600081840152601f19601f820116905080830192505050945050505050602060405180830381600087803b15801561087e57600080fd5b505af1158015610892573d6000803e3d6000fd5b505050506040513d60208110156108a857600080fd5b50516108f4576040805162461bcd60e51b815260206004820152601660248201527524b73b30b634b2103bb4ba34323930bb90383937b7b360511b604482015290519081900360640190fd5b6000858152606a60205260409020805460ff1916600117905561091984848484610f05565b604080516001600160a01b038681168252602082018890528183018590529151918516917fe9e508bad6d4c3227e881ca19068f099da81b5164dd6d62b2eaf1e8bc6c349319181900360600190a250506068805460ff19166001179055505050505050565b606c546001600160a01b031681565b600060008051602061134883398151915283106109f1576040805162461bcd60e51b815260206004820181905260248201527f5f6c6566742073686f756c6420626520696e7369646520746865206669656c64604482015290519081900360640190fd5b6000805160206113488339815191528210610a3d5760405162461bcd60e51b81526004018080602001828103825260218152602001806112f36021913960400191505060405180910390fd5b6040805163f47d33b560e01b81526004810185905260006024820181905282518693919273__Hasher________________________________9263f47d33b592604480840193829003018186803b158015610a9757600080fd5b505af4158015610aab573d6000803e3d6000fd5b505050506040513d6040811015610ac157600080fd5b5080516020909101519092509050600080516020611348833981519152848308915073__Hasher________________________________63f47d33b583836040518363ffffffff1660e01b81526004018083815260200182815260200192505050604080518083038186803b158015610b3957600080fd5b505af4158015610b4d573d6000803e3d6000fd5b505050506040513d6040811015610b6357600080fd5b505195945050505050565b60008051602061134883398151915281565b60005463ffffffff1681565b606d546001600160a01b031681565b600081610baa57506000610c09565b60035463ffffffff165b60048163ffffffff1660648110610bc757fe5b0154831415610bda576001915050610c09565b63ffffffff8116610be9575060645b6003546000199091019063ffffffff80831691161415610bb45760009150505b919050565b606b6020526000908152604090205460ff1681565b60695481565b60035463ffffffff1681565b606d546001600160a01b03163314610c7e5760405162461bcd60e51b81526004018080602001828103825260258152602001806113d16025913960400191505060405180910390fd5b606c80546001600160a01b0319166001600160a01b0392909216919091179055565b604080518281526020808402820101909152606090828015610ccc578160200160208202803883390190505b50905060005b82811015610d2157610cf5848483818110610ce957fe5b90506020020135610e8e565b15610d19576001828281518110610d0857fe5b911515602092830291909101909101525b600101610cd2565b5092915050565b60685460ff16610d7f576040805162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015290519081900360640190fd5b6068805460ff191690556000818152606b602052604090205460ff1615610dd75760405162461bcd60e51b81526004018080602001828103825260218152602001806113686021913960400191505060405180910390fd5b6000610de2826110b2565b6000838152606b60205260409020805460ff191660011790559050610e05611249565b6040805163ffffffff83168152426020820152815184927fa945e51eec50ab98c161376f0db4cf2aeba3ec92755fe2fcd388bdbbb80ff196928290030190a250506068805460ff19166001179055565b60035460009060049063ffffffff1660648110610e6e57fe5b0154905090565b60048160648110610e8257fe5b0154905081565b606481565b6000908152606a602052604090205460ff1690565b60028181548110610eb057fe5b600091825260209091200154905081565b7f2fe54c60d3acabf3343a35b6eba15db4821b340f76e741e2249685ed4899af6c81565b60018181548110610eb057fe5b600354600160201b900463ffffffff1681565b3415610f425760405162461bcd60e51b81526004018080602001828103825260358152602001806113f66035913960400191505060405180910390fd5b8015610f7f5760405162461bcd60e51b81526004018080602001828103825260348152602001806113146034913960400191505060405180910390fd5b6069546040516000916001600160a01b0387169190859003908381818185875af1925050503d8060008114610fd0576040519150601f19603f3d011682016040523d82523d6000602084013e610fd5565b606091505b50509050806110155760405162461bcd60e51b81526004018080602001828103825260258152602001806113896025913960400191505060405180910390fd5b82156110ab576040516001600160a01b038516908490600081818185875af1925050503d8060008114611064576040519150601f19603f3d011682016040523d82523d6000602084013e611069565b606091505b505080915050806110ab5760405162461bcd60e51b81526004018080602001828103825260238152602001806113ae6023913960400191505060405180910390fd5b5050505050565b60035460008054909163ffffffff600160201b909104811691811660020a1681141561110f5760405162461bcd60e51b815260040180806020018281038252602f81526020018061128c602f913960400191505060405180910390fd5b6003805463ffffffff600160201b80830482166001019091160267ffffffff000000001990911617905582600080805b60005463ffffffff90811690821610156111e757600185166111a35783925060028163ffffffff168154811061117157fe5b906000526020600020015491508360018263ffffffff168154811061119257fe5b6000918252602090912001556111c7565b60018163ffffffff16815481106111b657fe5b906000526020600020015492508391505b6111d1838361098d565b9350600263ffffffff861604945060010161113f565b5060035460649063ffffffff908116600101166003805463ffffffff19169290910663ffffffff90811692909217908190558491600491166064811061122957fe5b01555050600354600160201b900463ffffffff1660001901949350505050565b60695434146112895760405162461bcd60e51b81526004018080602001828103825260388152602001806112bb6038913960400191505060405180910390fd5b56fe4d65726b6c6520747265652069732066756c6c2e204e6f206d6f7265206c656166732063616e206265206164646564506c656173652073656e6420606d697844656e6f6d696e6174696f6e602045544820616c6f6e672077697468207472616e73616374696f6e5f72696768742073686f756c6420626520696e7369646520746865206669656c64526566756e642076616c756520697320737570706f73656420746f206265207a65726f20666f722045544820696e7374616e636530644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000154686520636f6d6d69746d656e7420686173206265656e207375626d69747465647061796d656e7420746f205f726563697069656e7420646964206e6f7420676f20746872757061796d656e7420746f205f72656c6179657220646964206e6f7420676f20746872754f6e6c79206f70657261746f722063616e2063616c6c20746869732066756e6374696f6e2e4d6573736167652076616c756520697320737570706f73656420746f206265207a65726f20666f722045544820696e7374616e6365a265627a7a723158209ed57ac5655245dd19d2a18032f8f6b7318847567507e456744af327c8e00c1864736f6c6343000511003264656e6f6d696e6174696f6e2073686f756c642062652067726561746572207468616e2030405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace5f72696768742073686f756c6420626520696e7369646520746865206669656c645f747265654c6576656c732073686f756c642062652067726561746572207468616e207a65726f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000015f747265654c6576656c732073686f756c64206265206c657373207468616e203332b10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6", - "deployedBytecode": "0x6080604052600436106101405760003560e01c806390eeb02b116100b6578063cd87a3b41161006f578063cd87a3b4146104f4578063e5285dcc14610509578063e829558814610533578063ec7329591461055d578063f178e47c14610572578063fc7e9c6f1461059c57610140565b806390eeb02b1461038557806397fc007c1461039a5780639fa12d0b146103cd578063b214faa514610498578063ba70f757146104b5578063c2b40ae4146104ca57610140565b8063414a37ba11610108578063414a37ba146102c45780634ecf518b146102d9578063570ca735146103075780636d9833e31461031c578063839df945146103465780638bca6d161461037057610140565b806306394c9b1461014557806317cc915c1461017a57806321a0adb6146101b85780632b7ac3f31461025157806338bf282e14610282575b600080fd5b34801561015157600080fd5b506101786004803603602081101561016857600080fd5b50356001600160a01b03166105b1565b005b34801561018657600080fd5b506101a46004803603602081101561019d57600080fd5b503561061c565b604080519115158252519081900360200190f35b610178600480360360e08110156101ce57600080fd5b810190602081018135600160201b8111156101e857600080fd5b8201836020820111156101fa57600080fd5b803590602001918460018302840111600160201b8311171561021b57600080fd5b91935091508035906020810135906001600160a01b03604082013581169160608101359091169060808101359060a00135610631565b34801561025d57600080fd5b5061026661097e565b604080516001600160a01b039092168252519081900360200190f35b34801561028e57600080fd5b506102b2600480360360408110156102a557600080fd5b508035906020013561098d565b60408051918252519081900360200190f35b3480156102d057600080fd5b506102b2610b6e565b3480156102e557600080fd5b506102ee610b80565b6040805163ffffffff9092168252519081900360200190f35b34801561031357600080fd5b50610266610b8c565b34801561032857600080fd5b506101a46004803603602081101561033f57600080fd5b5035610b9b565b34801561035257600080fd5b506101a46004803603602081101561036957600080fd5b5035610c0e565b34801561037c57600080fd5b506102b2610c23565b34801561039157600080fd5b506102ee610c29565b3480156103a657600080fd5b50610178600480360360208110156103bd57600080fd5b50356001600160a01b0316610c35565b3480156103d957600080fd5b50610448600480360360208110156103f057600080fd5b810190602081018135600160201b81111561040a57600080fd5b82018360208201111561041c57600080fd5b803590602001918460208302840111600160201b8311171561043d57600080fd5b509092509050610ca0565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561048457818101518382015260200161046c565b505050509050019250505060405180910390f35b610178600480360360208110156104ae57600080fd5b5035610d28565b3480156104c157600080fd5b506102b2610e55565b3480156104d657600080fd5b506102b2600480360360208110156104ed57600080fd5b5035610e75565b34801561050057600080fd5b506102ee610e89565b34801561051557600080fd5b506101a46004803603602081101561052c57600080fd5b5035610e8e565b34801561053f57600080fd5b506102b26004803603602081101561055657600080fd5b5035610ea3565b34801561056957600080fd5b506102b2610ec1565b34801561057e57600080fd5b506102b26004803603602081101561059557600080fd5b5035610ee5565b3480156105a857600080fd5b506102ee610ef2565b606d546001600160a01b031633146105fa5760405162461bcd60e51b81526004018080602001828103825260258152602001806113d16025913960400191505060405180910390fd5b606d80546001600160a01b0319166001600160a01b0392909216919091179055565b606a6020526000908152604090205460ff1681565b60685460ff16610688576040805162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015290519081900360640190fd5b6068805460ff191690556069548211156106e9576040805162461bcd60e51b815260206004820152601a60248201527f4665652065786365656473207472616e736665722076616c7565000000000000604482015290519081900360640190fd5b6000858152606a602052604090205460ff161561074d576040805162461bcd60e51b815260206004820152601f60248201527f546865206e6f746520686173206265656e20616c7265616479207370656e7400604482015290519081900360640190fd5b61075686610b9b565b6107a7576040805162461bcd60e51b815260206004820152601c60248201527f43616e6e6f742066696e6420796f7572206d65726b6c6520726f6f7400000000604482015290519081900360640190fd5b606c546040805160c08082018352898252602082018990526001600160a01b038881168385015287811660608401526080830187905260a08301869052925163695ef6f960e01b8152929093169263695ef6f9928c928c9290916004810191829160240190849080838360005b8381101561082c578181015183820152602001610814565b505050509050018281038252858582818152602001925080828437600081840152601f19601f820116905080830192505050945050505050602060405180830381600087803b15801561087e57600080fd5b505af1158015610892573d6000803e3d6000fd5b505050506040513d60208110156108a857600080fd5b50516108f4576040805162461bcd60e51b815260206004820152601660248201527524b73b30b634b2103bb4ba34323930bb90383937b7b360511b604482015290519081900360640190fd5b6000858152606a60205260409020805460ff1916600117905561091984848484610f05565b604080516001600160a01b038681168252602082018890528183018590529151918516917fe9e508bad6d4c3227e881ca19068f099da81b5164dd6d62b2eaf1e8bc6c349319181900360600190a250506068805460ff19166001179055505050505050565b606c546001600160a01b031681565b600060008051602061134883398151915283106109f1576040805162461bcd60e51b815260206004820181905260248201527f5f6c6566742073686f756c6420626520696e7369646520746865206669656c64604482015290519081900360640190fd5b6000805160206113488339815191528210610a3d5760405162461bcd60e51b81526004018080602001828103825260218152602001806112f36021913960400191505060405180910390fd5b6040805163f47d33b560e01b81526004810185905260006024820181905282518693919273__Hasher________________________________9263f47d33b592604480840193829003018186803b158015610a9757600080fd5b505af4158015610aab573d6000803e3d6000fd5b505050506040513d6040811015610ac157600080fd5b5080516020909101519092509050600080516020611348833981519152848308915073__Hasher________________________________63f47d33b583836040518363ffffffff1660e01b81526004018083815260200182815260200192505050604080518083038186803b158015610b3957600080fd5b505af4158015610b4d573d6000803e3d6000fd5b505050506040513d6040811015610b6357600080fd5b505195945050505050565b60008051602061134883398151915281565b60005463ffffffff1681565b606d546001600160a01b031681565b600081610baa57506000610c09565b60035463ffffffff165b60048163ffffffff1660648110610bc757fe5b0154831415610bda576001915050610c09565b63ffffffff8116610be9575060645b6003546000199091019063ffffffff80831691161415610bb45760009150505b919050565b606b6020526000908152604090205460ff1681565b60695481565b60035463ffffffff1681565b606d546001600160a01b03163314610c7e5760405162461bcd60e51b81526004018080602001828103825260258152602001806113d16025913960400191505060405180910390fd5b606c80546001600160a01b0319166001600160a01b0392909216919091179055565b604080518281526020808402820101909152606090828015610ccc578160200160208202803883390190505b50905060005b82811015610d2157610cf5848483818110610ce957fe5b90506020020135610e8e565b15610d19576001828281518110610d0857fe5b911515602092830291909101909101525b600101610cd2565b5092915050565b60685460ff16610d7f576040805162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015290519081900360640190fd5b6068805460ff191690556000818152606b602052604090205460ff1615610dd75760405162461bcd60e51b81526004018080602001828103825260218152602001806113686021913960400191505060405180910390fd5b6000610de2826110b2565b6000838152606b60205260409020805460ff191660011790559050610e05611249565b6040805163ffffffff83168152426020820152815184927fa945e51eec50ab98c161376f0db4cf2aeba3ec92755fe2fcd388bdbbb80ff196928290030190a250506068805460ff19166001179055565b60035460009060049063ffffffff1660648110610e6e57fe5b0154905090565b60048160648110610e8257fe5b0154905081565b606481565b6000908152606a602052604090205460ff1690565b60028181548110610eb057fe5b600091825260209091200154905081565b7f2fe54c60d3acabf3343a35b6eba15db4821b340f76e741e2249685ed4899af6c81565b60018181548110610eb057fe5b600354600160201b900463ffffffff1681565b3415610f425760405162461bcd60e51b81526004018080602001828103825260358152602001806113f66035913960400191505060405180910390fd5b8015610f7f5760405162461bcd60e51b81526004018080602001828103825260348152602001806113146034913960400191505060405180910390fd5b6069546040516000916001600160a01b0387169190859003908381818185875af1925050503d8060008114610fd0576040519150601f19603f3d011682016040523d82523d6000602084013e610fd5565b606091505b50509050806110155760405162461bcd60e51b81526004018080602001828103825260258152602001806113896025913960400191505060405180910390fd5b82156110ab576040516001600160a01b038516908490600081818185875af1925050503d8060008114611064576040519150601f19603f3d011682016040523d82523d6000602084013e611069565b606091505b505080915050806110ab5760405162461bcd60e51b81526004018080602001828103825260238152602001806113ae6023913960400191505060405180910390fd5b5050505050565b60035460008054909163ffffffff600160201b909104811691811660020a1681141561110f5760405162461bcd60e51b815260040180806020018281038252602f81526020018061128c602f913960400191505060405180910390fd5b6003805463ffffffff600160201b80830482166001019091160267ffffffff000000001990911617905582600080805b60005463ffffffff90811690821610156111e757600185166111a35783925060028163ffffffff168154811061117157fe5b906000526020600020015491508360018263ffffffff168154811061119257fe5b6000918252602090912001556111c7565b60018163ffffffff16815481106111b657fe5b906000526020600020015492508391505b6111d1838361098d565b9350600263ffffffff861604945060010161113f565b5060035460649063ffffffff908116600101166003805463ffffffff19169290910663ffffffff90811692909217908190558491600491166064811061122957fe5b01555050600354600160201b900463ffffffff1660001901949350505050565b60695434146112895760405162461bcd60e51b81526004018080602001828103825260388152602001806112bb6038913960400191505060405180910390fd5b56fe4d65726b6c6520747265652069732066756c6c2e204e6f206d6f7265206c656166732063616e206265206164646564506c656173652073656e6420606d697844656e6f6d696e6174696f6e602045544820616c6f6e672077697468207472616e73616374696f6e5f72696768742073686f756c6420626520696e7369646520746865206669656c64526566756e642076616c756520697320737570706f73656420746f206265207a65726f20666f722045544820696e7374616e636530644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000154686520636f6d6d69746d656e7420686173206265656e207375626d69747465647061796d656e7420746f205f726563697069656e7420646964206e6f7420676f20746872757061796d656e7420746f205f72656c6179657220646964206e6f7420676f20746872754f6e6c79206f70657261746f722063616e2063616c6c20746869732066756e6374696f6e2e4d6573736167652076616c756520697320737570706f73656420746f206265207a65726f20666f722045544820696e7374616e6365a265627a7a723158209ed57ac5655245dd19d2a18032f8f6b7318847567507e456744af327c8e00c1864736f6c63430005110032", - "sourceMap": "805:973:0:-;;;1430:34:1;;;-1:-1:-1;;;;;;1468:27:1;;;840:197:0;5:2:-1;;;;30:1;27;20:12;5:2;840:197:0;;;;;;;;;;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;-1:-1;840:197:0;;;;;;;;;;;;;;;;;;;;;;;;1646:15:1;;;1638:67;;;;-1:-1:-1;;;1638:67:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1733:2;1719:11;:16;;;1711:63;;;;-1:-1:-1;;;1711:63:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1780:6;:20;;-1:-1:-1;;1780:20:1;;;;;;;1854:5;27:10:-1;;-1:-1;23:18;;;45:23;;;1088:77:1;-1:-1:-1;;;;;;;;;;;1854:23:1;;;;;;27:10:-1;;23:18;;;45:23;;1883:32:1;;;;-1:-1:-1;;;;;;;;;;;1883:32:1;;;;;;1922:175;1945:6;;;;;;1941:10;;;;1922:175;;;1980:39;1994:11;;-1:-1:-1;;;;;1980:13:1;:39;:::i;:::-;2027:5;27:10:-1;;39:1;23:18;;;45:23;;;-1:-1;;;;;;;;;;;2027:23:1;;;;27:10:-1;;23:18;;;45:23;;-1:-1;2058:32:1;;;-1:-1:-1;;;;;;;;;;;2058:32:1;;;;1966:53;;-1:-1:-1;1953:3:1;1922:175;;;-1:-1:-1;2114:39:1;2128:11;;-1:-1:-1;;;;;2114:13:1;:39;:::i;:::-;2103:5;2109:1;2103:8;:50;-1:-1:-1;;1421:11:3;:18;;-1:-1:-1;;1421:18:3;1435:4;1421:18;;;2260:17:2;2252:67;;;;-1:-1:-1;;;2252:67:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2325:8;:20;;-1:-1:-1;;;;;2325:20:2;;;-1:-1:-1;;;;;;2325:20:2;;;;;;;2351:8;:20;;;;;;;;;;;;2377:12;:28;-1:-1:-1;805:973:0;;-1:-1:-1;;;;805:973:0;2230:445:1;2305:7;-1:-1:-1;;;;;;;;;;;2328:27:1;;2320:72;;;;;-1:-1:-1;;;2320:72:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2406:28:1;;2398:74;;;;-1:-1:-1;;;2398:74:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2538:23;;;-1:-1:-1;;;2538:23:1;;;;;;;;2478:9;2538:23;;;;;;;;2498:5;;2478:9;;2538:6;;:17;;:23;;;;;;;;;;:6;:23;;;5:2:-1;;;;30:1;27;20:12;5:2;2538:23:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2538:23:1;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2538:23:1;;;;;;;;;-1:-1:-1;2538:23:1;-1:-1:-1;;;;;;;;;;;;2589:6:1;2578:1;2571:38;2567:42;;2624:6;:17;2642:1;2645;2624:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2624:23:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2624:23:1;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2624:23:1;;2230:445;-1:-1:-1;;;;;2230:445:1:o;805:973:0:-;;;;;;;", - "deployedSourceMap": "805:973:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5355:102:2;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5355:102:2;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5355:102:2;-1:-1:-1;;;;;5355:102:2;;:::i;:::-;;1089:47;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1089:47:2;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1089:47:2;;:::i;:::-;;;;;;;;;;;;;;;;;;3478:781;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;3478:781:2;;;;;;;;-1:-1:-1;;;5:28;;2:2;;;46:1;43;36:12;2:2;3478:781:2;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;3478:781:2;;;;;;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;3478:781:2;;-1:-1:-1;3478:781:2;-1:-1:-1;3478:781:2;;;;;;;;-1:-1:-1;;;;;3478:781:2;;;;;;;;;;;;;;;;;;;;;;;;:::i;1278:25::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1278:25:2;;;:::i;:::-;;;;-1:-1:-1;;;;;1278:25:2;;;;;;;;;;;;;;2230:445:1;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2230:445:1;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2230:445:1;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;933:114;;8:9:-1;5:2;;;30:1;27;20:12;5:2;933:114:1;;;:::i;1209:20::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1209:20:1;;;:::i;:::-;;;;;;;;;;;;;;;;;;;1463:23:2;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1463:23:2;;;:::i;3553:342:1:-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3553:342:1;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3553:342:1;;:::i;1231:43:2:-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1231:43:2;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1231:43:2;;:::i;1058:27::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1058:27:2;;;:::i;1430:34:1:-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1430:34:1;;;:::i;5192:113:2:-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5192:113:2;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5192:113:2;-1:-1:-1;;;;;5192:113:2;;:::i;4669:293::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4669:293:2;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;4669:293:2;;;;;;;;-1:-1:-1;;;5:28;;2:2;;;46:1;43;36:12;2:2;4669:293:2;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;4669:293:2;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;-1:-1;;;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;-1:-1;4669:293:2;;-1:-1:-1;4669:293:2;-1:-1:-1;4669:293: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;4669:293:2;;;;;;;;;;;;;;;;;2658:324;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2658:324:2;;:::i;3941:93:1:-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3941:93:1;;;:::i;1549:39::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1549:39:1;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1549:39:1;;:::i;1499:46::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1499:46:1;;;:::i;4492:116:2:-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4492:116:2;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;4492:116:2;;:::i;1404:22:1:-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1404:22:1;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1404:22:1;;:::i;1051:114::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1051:114:1;;;:::i;1369:31::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1369:31:1;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1369:31:1;;:::i;1468:27::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1468:27:1;;;:::i;5355:102:2:-;1540:8;;-1:-1:-1;;;;;1540:8:2;1526:10;:22;1518:72;;;;-1:-1:-1;;;1518:72:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5429:8;:23;;-1:-1:-1;;;;;;5429:23:2;-1:-1:-1;;;;;5429:23:2;;;;;;;;;;5355:102::o;1089:47::-;;;;;;;;;;;;;;;:::o;3478:781::-;1934:11:3;;;;1926:55;;;;;-1:-1:-1;;;1926:55:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;2056:11;:19;;-1:-1:-1;;2056:19:3;;;3695:12:2;;3687:20;;;3679:59;;;;;-1:-1:-1;;;3679:59:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;3753:31;;;;:15;:31;;;;;;;;3752:32;3744:76;;;;;-1:-1:-1;;;3744:76:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;3834:18;3846:5;3834:11;:18::i;:::-;3826:59;;;;;-1:-1:-1;;;3826:59:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;3932:8;;:126;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4003:19:2;;;3932:126;;;;4024:17;;;3932:126;;;;;;;;;;;;;;;;;;-1:-1:-1;;;3932:126:2;;:8;;;;;:20;;3953:6;;;;3932:126;;;;;;;;;;;;;;;;:8;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;3932:126:2;;;;;;;;;;;;;;;;;;;;;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;;3932:126:2;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3932:126:2;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3932:126:2;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3932:126:2;3924:161;;;;;-1:-1:-1;;;3924:161:2;;;;;;;;;;;;-1:-1:-1;;;3924:161:2;;;;;;;;;;;;;;;4092:31;;;;:15;:31;;;;;:38;;-1:-1:-1;;4092:38:2;4126:4;4092:38;;;4136:53;4153:10;4165:8;4175:4;4181:7;4136:16;:53::i;:::-;4200:54;;;-1:-1:-1;;;;;4200:54:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2230:11:3;:18;;-1:-1:-1;;2230:18:3;2244:4;2230:18;;;-1:-1:-1;;;;;;3478:781:2:o;1278:25::-;;;-1:-1:-1;;;;;1278:25:2;;:::o;2230:445:1:-;2305:7;-1:-1:-1;;;;;;;;;;;2328:27:1;;2320:72;;;;;-1:-1:-1;;;2320:72:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2406:28:1;;2398:74;;;;-1:-1:-1;;;2398:74:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2538:23;;;-1:-1:-1;;;2538:23:1;;;;;;;;2478:9;2538:23;;;;;;;;2498:5;;2478:9;;2538:6;;:17;;:23;;;;;;;;;;:6;:23;;;5:2:-1;;;;30:1;27;20:12;5:2;2538:23:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2538:23:1;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2538:23:1;;;;;;;;;-1:-1:-1;2538:23:1;-1:-1:-1;;;;;;;;;;;;2589:6:1;2578:1;2571:38;2567:42;;2624:6;:17;2642:1;2645;2624:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2624:23:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2624:23:1;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2624:23:1;;2230:445;-1:-1:-1;;;;;2230:445:1:o;933:114::-;-1:-1:-1;;;;;;;;;;;933:114:1;:::o;1209:20::-;;;;;;:::o;1463:23:2:-;;;-1:-1:-1;;;;;1463:23:2;;:::o;3553:342:1:-;3609:4;3625:10;3621:43;;-1:-1:-1;3652:5:1;3645:12;;3621:43;3680:16;;;;3702:171;3726:5;3732:1;3726:8;;;;;;;;;;;3717:5;:17;3713:53;;;3753:4;3746:11;;;;;3713:53;3777:6;;;3773:52;;-1:-1:-1;1542:3:1;3773:52;3855:16;;-1:-1:-1;;3832:3:1;;;;3855:16;3850:21;;;3855:16;;3850:21;;3702:171;;3885:5;3878:12;;;3553:342;;;;:::o;1231:43:2:-;;;;;;;;;;;;;;;:::o;1058:27::-;;;;:::o;1430:34:1:-;;;;;;:::o;5192:113:2:-;1540:8;;-1:-1:-1;;;;;1540:8:2;1526:10;:22;1518:72;;;;-1:-1:-1;;;1518:72:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5266:8;:34;;-1:-1:-1;;;;;;5266:34:2;-1:-1:-1;;;;;5266:34:2;;;;;;;;;;5192:113::o;4669:293::-;4785:35;;;;;;;;;;;;;;;;4750:19;;4796:16;4785:35;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;136:17;;-1:-1;4785:35:2;-1:-1:-1;4777:43:2;-1:-1:-1;4830:6:2;4826:132;4842:27;;;4826:132;;;4888:28;4896:16;;4913:1;4896:19;;;;;;;;;;;;;4888:7;:28::i;:::-;4884:68;;;4939:4;4928:5;4934:1;4928:8;;;;;;;;:15;;;:8;;;;;;;;;;;:15;4884:68;4871:3;;4826:132;;;;4669:293;;;;:::o;2658:324::-;1934:11:3;;;;1926:55;;;;;-1:-1:-1;;;1926:55:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;2056:11;:19;;-1:-1:-1;;2056:19:3;;;2070:5;2741:24:2;;;:11;:24;;;;;;2056:19:3;2741:24:2;2740:25;2732:71;;;;-1:-1:-1;;;2732:71:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2810:20;2833;2841:11;2833:7;:20::i;:::-;2859:24;;;;:11;:24;;;;;:31;;-1:-1:-1;;2859:31:2;2886:4;2859:31;;;2810:43;-1:-1:-1;2896:17:2;:15;:17::i;:::-;2925:52;;;;;;;;2961:15;2925:52;;;;;;2933:11;;2925:52;;;;;;;;-1:-1:-1;;2230:11:3;:18;;-1:-1:-1;;2230:18:3;2244:4;2230:18;;;2658:324:2:o;3941:93:1:-;4012:16;;3984:7;;4006:5;;4012:16;;4006:23;;;;;;;;;3999:30;;3941:93;:::o;1549:39::-;;;;;;;;;;;;;-1:-1:-1;1549:39:1;:::o;1499:46::-;1542:3;1499:46;:::o;4492:116:2:-;4553:4;4572:31;;;:15;:31;;;;;;;;;4492:116::o;1404:22:1:-;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1404:22:1;:::o;1051:114::-;1088:77;1051:114;:::o;1369:31::-;;;;;;;;;;1468:27;;;-1:-1:-1;;;1468:27:1;;;;;:::o;1186:590:0:-;1341:9;:14;1333:80;;;;-1:-1:-1;;;1333:80:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1427:12;;1419:77;;;;-1:-1:-1;;;1419:77:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1544:12;;1522:46;;1504:12;;-1:-1:-1;;;;;1522:15:0;;;1544:19;;;;;1504:12;1522:46;1504:12;1522:46;1544:19;1522:15;:46;;;;;;;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;;1503:65:0;;;1582:7;1574:57;;;;-1:-1:-1;;;1574:57:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1641:8;;1637:135;;1673:29;;-1:-1:-1;;;;;1673:13:0;;;1693:4;;1673:29;;;;1693:4;1673:13;:29;;;;;;;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;;1659:43:0;;;;;1718:7;1710:55;;;;-1:-1:-1;;;1710:55:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1186:590;;;;;:::o;2679:802:1:-;2770:9;;2728:12;2820:6;;2728:12;;2770:9;-1:-1:-1;;;2770:9:1;;;;;;2820:6;;2816:1;2809:17;2793:33;;;;2785:93;;;;-1:-1:-1;;;2785:93:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2884:9;:14;;;-1:-1:-1;;;2884:14:1;;;;;2897:1;2884:14;;;;;-1:-1:-1;;2884:14:1;;;;;;2931:5;-1:-1:-1;;;2980:355:1;3003:6;;;;;;2999:10;;;;2980:355;;;3028:16;;;3024:225;;3068:16;3061:23;;3102:5;3108:1;3102:8;;;;;;;;;;;;;;;;;;3094:16;;3141;3121:14;3136:1;3121:17;;;;;;;;;;;;;;;;;;;:36;3024:225;;;3189:14;3204:1;3189:17;;;;;;;;;;;;;;;;;;3182:24;;3224:16;3216:24;;3024:225;3276:26;3290:4;3296:5;3276:13;:26::i;:::-;3257:45;-1:-1:-1;3327:1:1;3311:17;;;;;-1:-1:-1;3011:3:1;;2980:355;;;-1:-1:-1;3361:16:1;;1542:3;;3360:42;3361:16;;;;:20;3360:42;3341:16;:61;;-1:-1:-1;;3341:61:1;3360:42;;;;3341:61;;;;;;;;;;;;3434:16;;3408:5;;3414:16;3408:23;;;;;;;;:42;-1:-1:-1;;3463:9:1;;-1:-1:-1;;;3463:9:1;;;;-1:-1:-1;;3463:13:1;;2679:802;-1:-1:-1;;;;2679:802:1:o;1041:141:0:-;1104:12;;1091:9;:25;1083:94;;;;-1:-1:-1;;;1083:94:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1041:141::o", - "source": "// https://tornado.cash\n/*\n* d888888P dP a88888b. dP\n* 88 88 d8' `88 88\n* 88 .d8888b. 88d888b. 88d888b. .d8888b. .d888b88 .d8888b. 88 .d8888b. .d8888b. 88d888b.\n* 88 88' `88 88' `88 88' `88 88' `88 88' `88 88' `88 88 88' `88 Y8ooooo. 88' `88\n* 88 88. .88 88 88 88 88. .88 88. .88 88. .88 dP Y8. .88 88. .88 88 88 88\n* dP `88888P' dP dP dP `88888P8 `88888P8 `88888P' 88 Y88888P' `88888P8 `88888P' dP dP\n* ooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo\n*/\n\npragma solidity 0.5.17;\n\nimport \"./Tornado.sol\";\n\ncontract ETHTornado is Tornado {\n constructor(\n IVerifier _verifier,\n uint256 _denomination,\n uint32 _merkleTreeHeight,\n address _operator\n ) Tornado(_verifier, _denomination, _merkleTreeHeight, _operator) public {\n }\n\n function _processDeposit() internal {\n require(msg.value == denomination, \"Please send `mixDenomination` ETH along with transaction\");\n }\n\n function _processWithdraw(address payable _recipient, address payable _relayer, uint256 _fee, uint256 _refund) internal {\n // sanity checks\n require(msg.value == 0, \"Message value is supposed to be zero for ETH instance\");\n require(_refund == 0, \"Refund value is supposed to be zero for ETH instance\");\n\n (bool success, ) = _recipient.call.value(denomination - _fee)(\"\");\n require(success, \"payment to _recipient did not go thru\");\n if (_fee > 0) {\n (success, ) = _relayer.call.value(_fee)(\"\");\n require(success, \"payment to _relayer did not go thru\");\n }\n }\n}\n", - "sourcePath": "/Users/brianli/dotfiles/tornado-core/contracts/ETHTornado.sol", - "ast": { - "absolutePath": "/Users/brianli/dotfiles/tornado-core/contracts/ETHTornado.sol", - "exportedSymbols": { - "ETHTornado": [ - 100 - ] - }, - "id": 101, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 1, - "literals": [ - "solidity", - "0.5", - ".17" - ], - "nodeType": "PragmaDirective", - "src": "755:23:0" - }, - { - "absolutePath": "/Users/brianli/dotfiles/tornado-core/contracts/Tornado.sol", - "file": "./Tornado.sol", - "id": 2, - "nodeType": "ImportDirective", - "scope": 101, - "sourceUnit": 786, - "src": "780:23:0", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 3, - "name": "Tornado", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 785, - "src": "828:7:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Tornado_$785", - "typeString": "contract Tornado" - } - }, - "id": 4, - "nodeType": "InheritanceSpecifier", - "src": "828:7:0" - } - ], - "contractDependencies": [ - 466, - 785, - 815 - ], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 100, - "linearizedBaseContracts": [ - 100, - 785, - 815, - 466 - ], - "name": "ETHTornado", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 21, - "nodeType": "Block", - "src": "1032:5:0", - "statements": [] - }, - "documentation": null, - "id": 22, - "implemented": true, - "kind": "constructor", - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 15, - "name": "_verifier", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6, - "src": "969:9:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IVerifier_$482", - "typeString": "contract IVerifier" - } - }, - { - "argumentTypes": null, - "id": 16, - "name": "_denomination", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8, - "src": "980:13:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 17, - "name": "_merkleTreeHeight", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10, - "src": "995:17:0", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - { - "argumentTypes": null, - "id": 18, - "name": "_operator", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12, - "src": "1014:9:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "id": 19, - "modifierName": { - "argumentTypes": null, - "id": 14, - "name": "Tornado", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 785, - "src": "961:7:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Tornado_$785_$", - "typeString": "type(contract Tornado)" - } - }, - "nodeType": "ModifierInvocation", - "src": "961:63:0" - } - ], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 13, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6, - "name": "_verifier", - "nodeType": "VariableDeclaration", - "scope": 22, - "src": "857:19:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IVerifier_$482", - "typeString": "contract IVerifier" - }, - "typeName": { - "contractScope": null, - "id": 5, - "name": "IVerifier", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 482, - "src": "857:9:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IVerifier_$482", - "typeString": "contract IVerifier" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 8, - "name": "_denomination", - "nodeType": "VariableDeclaration", - "scope": 22, - "src": "882:21:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "882:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 10, - "name": "_merkleTreeHeight", - "nodeType": "VariableDeclaration", - "scope": 22, - "src": "909:24:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 9, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "909:6:0", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 12, - "name": "_operator", - "nodeType": "VariableDeclaration", - "scope": 22, - "src": "939:17:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 11, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "939:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "851:109:0" - }, - "returnParameters": { - "id": 20, - "nodeType": "ParameterList", - "parameters": [], - "src": "1032:0:0" - }, - "scope": 100, - "src": "840:197:0", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 33, - "nodeType": "Block", - "src": "1077:105:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 29, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 26, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 830, - "src": "1091:3:0", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 27, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "value", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "1091:9:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 28, - "name": "denomination", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 488, - "src": "1104:12:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1091:25:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "506c656173652073656e6420606d697844656e6f6d696e6174696f6e602045544820616c6f6e672077697468207472616e73616374696f6e", - "id": 30, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1118:58:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_2f304eb3b48ff9764f62a411a9ffb7aa0b97f5844028e285830061a3eb6b03a1", - "typeString": "literal_string \"Please send `mixDenomination` ETH along with transaction\"" - }, - "value": "Please send `mixDenomination` ETH along with transaction" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_2f304eb3b48ff9764f62a411a9ffb7aa0b97f5844028e285830061a3eb6b03a1", - "typeString": "literal_string \"Please send `mixDenomination` ETH along with transaction\"" - } - ], - "id": 25, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 833, - 834 - ], - "referencedDeclaration": 834, - "src": "1083:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 31, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1083:94:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 32, - "nodeType": "ExpressionStatement", - "src": "1083:94:0" - } - ] - }, - "documentation": null, - "id": 34, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_processDeposit", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 23, - "nodeType": "ParameterList", - "parameters": [], - "src": "1065:2:0" - }, - "returnParameters": { - "id": 24, - "nodeType": "ParameterList", - "parameters": [], - "src": "1077:0:0" - }, - "scope": 100, - "src": "1041:141:0", - "stateMutability": "nonpayable", - "superFunction": 605, - "visibility": "internal" - }, - { - "body": { - "id": 98, - "nodeType": "Block", - "src": "1306:470:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 49, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 46, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 830, - "src": "1341:3:0", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 47, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "value", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "1341:9:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 48, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1354:1:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "1341:14:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4d6573736167652076616c756520697320737570706f73656420746f206265207a65726f20666f722045544820696e7374616e6365", - "id": 50, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1357:55:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_fb42cba8716e5ef1890027a84a51d30b8a9b3b6aff292fa4436fdfdb093e2b04", - "typeString": "literal_string \"Message value is supposed to be zero for ETH instance\"" - }, - "value": "Message value is supposed to be zero for ETH instance" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_fb42cba8716e5ef1890027a84a51d30b8a9b3b6aff292fa4436fdfdb093e2b04", - "typeString": "literal_string \"Message value is supposed to be zero for ETH instance\"" - } - ], - "id": 45, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 833, - 834 - ], - "referencedDeclaration": 834, - "src": "1333:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 51, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1333:80:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 52, - "nodeType": "ExpressionStatement", - "src": "1333:80:0" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 56, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 54, - "name": "_refund", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 42, - "src": "1427:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 55, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1438:1:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "1427:12:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "526566756e642076616c756520697320737570706f73656420746f206265207a65726f20666f722045544820696e7374616e6365", - "id": 57, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1441:54:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_81ced7081bd66f683c55140bd49cd7b11c81bd1cdd704658426bd50e1bd8ff84", - "typeString": "literal_string \"Refund value is supposed to be zero for ETH instance\"" - }, - "value": "Refund value is supposed to be zero for ETH instance" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_81ced7081bd66f683c55140bd49cd7b11c81bd1cdd704658426bd50e1bd8ff84", - "typeString": "literal_string \"Refund value is supposed to be zero for ETH instance\"" - } - ], - "id": 53, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 833, - 834 - ], - "referencedDeclaration": 834, - "src": "1419:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 58, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1419:77:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 59, - "nodeType": "ExpressionStatement", - "src": "1419:77:0" - }, - { - "assignments": [ - 61, - null - ], - "declarations": [ - { - "constant": false, - "id": 61, - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 98, - "src": "1504:12:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 60, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "1504:4:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - }, - null - ], - "id": 71, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "", - "id": 69, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1565:2:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", - "typeString": "literal_string \"\"" - }, - "value": "" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", - "typeString": "literal_string \"\"" - } - ], - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 67, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 65, - "name": "denomination", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 488, - "src": "1544:12:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "id": 66, - "name": "_fee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 40, - "src": "1559:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1544:19:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 62, - "name": "_recipient", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 36, - "src": "1522:10:0", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "id": 63, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "call", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "1522:15:0", - "typeDescriptions": { - "typeIdentifier": "t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$", - "typeString": "function (bytes memory) payable returns (bool,bytes memory)" - } - }, - "id": 64, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "value", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "1522:21:0", - "typeDescriptions": { - "typeIdentifier": "t_function_setvalue_pure$_t_uint256_$returns$_t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$value_$", - "typeString": "function (uint256) pure returns (function (bytes memory) payable returns (bool,bytes memory))" - } - }, - "id": 68, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1522:42:0", - "typeDescriptions": { - "typeIdentifier": "t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$value", - "typeString": "function (bytes memory) payable returns (bool,bytes memory)" - } - }, - "id": 70, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1522:46:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$", - "typeString": "tuple(bool,bytes memory)" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "1503:65:0" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 73, - "name": "success", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 61, - "src": "1582:7:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "7061796d656e7420746f205f726563697069656e7420646964206e6f7420676f2074687275", - "id": 74, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1591:39:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_b817ea600508ee7f5bd41bf8aaa06721dfdc08b3c90f6e232639455b89be34a9", - "typeString": "literal_string \"payment to _recipient did not go thru\"" - }, - "value": "payment to _recipient did not go thru" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_b817ea600508ee7f5bd41bf8aaa06721dfdc08b3c90f6e232639455b89be34a9", - "typeString": "literal_string \"payment to _recipient did not go thru\"" - } - ], - "id": 72, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 833, - 834 - ], - "referencedDeclaration": 834, - "src": "1574:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 75, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1574:57:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 76, - "nodeType": "ExpressionStatement", - "src": "1574:57:0" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 79, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 77, - "name": "_fee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 40, - "src": "1641:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 78, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1648:1:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "1641:8:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 97, - "nodeType": "IfStatement", - "src": "1637:135:0", - "trueBody": { - "id": 96, - "nodeType": "Block", - "src": "1651:121:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 89, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "id": 80, - "name": "success", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 61, - "src": "1660:7:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - null - ], - "id": 81, - "isConstant": false, - "isInlineArray": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "TupleExpression", - "src": "1659:11:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_bool_$__$", - "typeString": "tuple(bool,)" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "", - "id": 87, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1699:2:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", - "typeString": "literal_string \"\"" - }, - "value": "" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", - "typeString": "literal_string \"\"" - } - ], - "arguments": [ - { - "argumentTypes": null, - "id": 85, - "name": "_fee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 40, - "src": "1693:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 82, - "name": "_relayer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 38, - "src": "1673:8:0", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "id": 83, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "call", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "1673:13:0", - "typeDescriptions": { - "typeIdentifier": "t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$", - "typeString": "function (bytes memory) payable returns (bool,bytes memory)" - } - }, - "id": 84, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "value", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "1673:19:0", - "typeDescriptions": { - "typeIdentifier": "t_function_setvalue_pure$_t_uint256_$returns$_t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$value_$", - "typeString": "function (uint256) pure returns (function (bytes memory) payable returns (bool,bytes memory))" - } - }, - "id": 86, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1673:25:0", - "typeDescriptions": { - "typeIdentifier": "t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$value", - "typeString": "function (bytes memory) payable returns (bool,bytes memory)" - } - }, - "id": 88, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1673:29:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$", - "typeString": "tuple(bool,bytes memory)" - } - }, - "src": "1659:43:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 90, - "nodeType": "ExpressionStatement", - "src": "1659:43:0" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 92, - "name": "success", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 61, - "src": "1718:7:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "7061796d656e7420746f205f72656c6179657220646964206e6f7420676f2074687275", - "id": 93, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1727:37:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_d23a9425cb4f79b7ef092634b094eea804c04088be6543a697545fa4aa8c0ef0", - "typeString": "literal_string \"payment to _relayer did not go thru\"" - }, - "value": "payment to _relayer did not go thru" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_d23a9425cb4f79b7ef092634b094eea804c04088be6543a697545fa4aa8c0ef0", - "typeString": "literal_string \"payment to _relayer did not go thru\"" - } - ], - "id": 91, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 833, - 834 - ], - "referencedDeclaration": 834, - "src": "1710:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 94, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1710:55:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 95, - "nodeType": "ExpressionStatement", - "src": "1710:55:0" - } - ] - } - } - ] - }, - "documentation": null, - "id": 99, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_processWithdraw", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 43, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 36, - "name": "_recipient", - "nodeType": "VariableDeclaration", - "scope": 99, - "src": "1212:26:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - "typeName": { - "id": 35, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1212:15:0", - "stateMutability": "payable", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 38, - "name": "_relayer", - "nodeType": "VariableDeclaration", - "scope": 99, - "src": "1240:24:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - "typeName": { - "id": 37, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1240:15:0", - "stateMutability": "payable", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 40, - "name": "_fee", - "nodeType": "VariableDeclaration", - "scope": 99, - "src": "1266:12:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 39, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1266:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 42, - "name": "_refund", - "nodeType": "VariableDeclaration", - "scope": 99, - "src": "1280:15:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 41, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1280:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1211:85:0" - }, - "returnParameters": { - "id": 44, - "nodeType": "ParameterList", - "parameters": [], - "src": "1306:0:0" - }, - "scope": 100, - "src": "1186:590:0", - "stateMutability": "nonpayable", - "superFunction": 701, - "visibility": "internal" - } - ], - "scope": 101, - "src": "805:973:0" - } - ], - "src": "755:1024:0" - }, - "legacyAST": { - "attributes": { - "absolutePath": "/Users/brianli/dotfiles/tornado-core/contracts/ETHTornado.sol", - "exportedSymbols": { - "ETHTornado": [ - 100 - ] - } - }, - "children": [ - { - "attributes": { - "literals": [ - "solidity", - "0.5", - ".17" - ] - }, - "id": 1, - "name": "PragmaDirective", - "src": "755:23:0" - }, - { - "attributes": { - "SourceUnit": 786, - "absolutePath": "/Users/brianli/dotfiles/tornado-core/contracts/Tornado.sol", - "file": "./Tornado.sol", - "scope": 101, - "symbolAliases": [ - null - ], - "unitAlias": "" - }, - "id": 2, - "name": "ImportDirective", - "src": "780:23:0" - }, - { - "attributes": { - "contractDependencies": [ - 466, - 785, - 815 - ], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "linearizedBaseContracts": [ - 100, - 785, - 815, - 466 - ], - "name": "ETHTornado", - "scope": 101 - }, - "children": [ - { - "attributes": { - "arguments": null - }, - "children": [ - { - "attributes": { - "contractScope": null, - "name": "Tornado", - "referencedDeclaration": 785, - "type": "contract Tornado" - }, - "id": 3, - "name": "UserDefinedTypeName", - "src": "828:7:0" - } - ], - "id": 4, - "name": "InheritanceSpecifier", - "src": "828:7:0" - }, - { - "attributes": { - "documentation": null, - "implemented": true, - "isConstructor": true, - "kind": "constructor", - "name": "", - "scope": 100, - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - "children": [ - { - "children": [ - { - "attributes": { - "constant": false, - "name": "_verifier", - "scope": 22, - "stateVariable": false, - "storageLocation": "default", - "type": "contract IVerifier", - "value": null, - "visibility": "internal" - }, - "children": [ - { - "attributes": { - "contractScope": null, - "name": "IVerifier", - "referencedDeclaration": 482, - "type": "contract IVerifier" - }, - "id": 5, - "name": "UserDefinedTypeName", - "src": "857:9:0" - } - ], - "id": 6, - "name": "VariableDeclaration", - "src": "857:19:0" - }, - { - "attributes": { - "constant": false, - "name": "_denomination", - "scope": 22, - "stateVariable": false, - "storageLocation": "default", - "type": "uint256", - "value": null, - "visibility": "internal" - }, - "children": [ - { - "attributes": { - "name": "uint256", - "type": "uint256" - }, - "id": 7, - "name": "ElementaryTypeName", - "src": "882:7:0" - } - ], - "id": 8, - "name": "VariableDeclaration", - "src": "882:21:0" - }, - { - "attributes": { - "constant": false, - "name": "_merkleTreeHeight", - "scope": 22, - "stateVariable": false, - "storageLocation": "default", - "type": "uint32", - "value": null, - "visibility": "internal" - }, - "children": [ - { - "attributes": { - "name": "uint32", - "type": "uint32" - }, - "id": 9, - "name": "ElementaryTypeName", - "src": "909:6:0" - } - ], - "id": 10, - "name": "VariableDeclaration", - "src": "909:24:0" - }, - { - "attributes": { - "constant": false, - "name": "_operator", - "scope": 22, - "stateVariable": false, - "storageLocation": "default", - "type": "address", - "value": null, - "visibility": "internal" - }, - "children": [ - { - "attributes": { - "name": "address", - "stateMutability": "nonpayable", - "type": "address" - }, - "id": 11, - "name": "ElementaryTypeName", - "src": "939:7:0" - } - ], - "id": 12, - "name": "VariableDeclaration", - "src": "939:17:0" - } - ], - "id": 13, - "name": "ParameterList", - "src": "851:109:0" - }, - { - "attributes": { - "parameters": [ - null - ] - }, - "children": [], - "id": 20, - "name": "ParameterList", - "src": "1032:0:0" - }, - { - "children": [ - { - "attributes": { - "argumentTypes": null, - "overloadedDeclarations": [ - null - ], - "referencedDeclaration": 785, - "type": "type(contract Tornado)", - "value": "Tornado" - }, - "id": 14, - "name": "Identifier", - "src": "961:7:0" - }, - { - "attributes": { - "argumentTypes": null, - "overloadedDeclarations": [ - null - ], - "referencedDeclaration": 6, - "type": "contract IVerifier", - "value": "_verifier" - }, - "id": 15, - "name": "Identifier", - "src": "969:9:0" - }, - { - "attributes": { - "argumentTypes": null, - "overloadedDeclarations": [ - null - ], - "referencedDeclaration": 8, - "type": "uint256", - "value": "_denomination" - }, - "id": 16, - "name": "Identifier", - "src": "980:13:0" - }, - { - "attributes": { - "argumentTypes": null, - "overloadedDeclarations": [ - null - ], - "referencedDeclaration": 10, - "type": "uint32", - "value": "_merkleTreeHeight" - }, - "id": 17, - "name": "Identifier", - "src": "995:17:0" - }, - { - "attributes": { - "argumentTypes": null, - "overloadedDeclarations": [ - null - ], - "referencedDeclaration": 12, - "type": "address", - "value": "_operator" - }, - "id": 18, - "name": "Identifier", - "src": "1014:9:0" - } - ], - "id": 19, - "name": "ModifierInvocation", - "src": "961:63:0" - }, - { - "attributes": { - "statements": [ - null - ] - }, - "children": [], - "id": 21, - "name": "Block", - "src": "1032:5:0" - } - ], - "id": 22, - "name": "FunctionDefinition", - "src": "840:197:0" - }, - { - "attributes": { - "documentation": null, - "implemented": true, - "isConstructor": false, - "kind": "function", - "modifiers": [ - null - ], - "name": "_processDeposit", - "scope": 100, - "stateMutability": "nonpayable", - "superFunction": 605, - "visibility": "internal" - }, - "children": [ - { - "attributes": { - "parameters": [ - null - ] - }, - "children": [], - "id": 23, - "name": "ParameterList", - "src": "1065:2:0" - }, - { - "attributes": { - "parameters": [ - null - ] - }, - "children": [], - "id": 24, - "name": "ParameterList", - "src": "1077:0:0" - }, - { - "children": [ - { - "children": [ - { - "attributes": { - "argumentTypes": null, - "isConstant": false, - "isLValue": false, - "isPure": false, - "isStructConstructorCall": false, - "lValueRequested": false, - "names": [ - null - ], - "type": "tuple()", - "type_conversion": false - }, - "children": [ - { - "attributes": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_2f304eb3b48ff9764f62a411a9ffb7aa0b97f5844028e285830061a3eb6b03a1", - "typeString": "literal_string \"Please send `mixDenomination` ETH along with transaction\"" - } - ], - "overloadedDeclarations": [ - 833, - 834 - ], - "referencedDeclaration": 834, - "type": "function (bool,string memory) pure", - "value": "require" - }, - "id": 25, - "name": "Identifier", - "src": "1083:7:0" - }, - { - "attributes": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "operator": "==", - "type": "bool" - }, - "children": [ - { - "attributes": { - "argumentTypes": null, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "member_name": "value", - "referencedDeclaration": null, - "type": "uint256" - }, - "children": [ - { - "attributes": { - "argumentTypes": null, - "overloadedDeclarations": [ - null - ], - "referencedDeclaration": 830, - "type": "msg", - "value": "msg" - }, - "id": 26, - "name": "Identifier", - "src": "1091:3:0" - } - ], - "id": 27, - "name": "MemberAccess", - "src": "1091:9:0" - }, - { - "attributes": { - "argumentTypes": null, - "overloadedDeclarations": [ - null - ], - "referencedDeclaration": 488, - "type": "uint256", - "value": "denomination" - }, - "id": 28, - "name": "Identifier", - "src": "1104:12:0" - } - ], - "id": 29, - "name": "BinaryOperation", - "src": "1091:25:0" - }, - { - "attributes": { - "argumentTypes": null, - "hexvalue": "506c656173652073656e6420606d697844656e6f6d696e6174696f6e602045544820616c6f6e672077697468207472616e73616374696f6e", - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "subdenomination": null, - "token": "string", - "type": "literal_string \"Please send `mixDenomination` ETH along with transaction\"", - "value": "Please send `mixDenomination` ETH along with transaction" - }, - "id": 30, - "name": "Literal", - "src": "1118:58:0" - } - ], - "id": 31, - "name": "FunctionCall", - "src": "1083:94:0" - } - ], - "id": 32, - "name": "ExpressionStatement", - "src": "1083:94:0" - } - ], - "id": 33, - "name": "Block", - "src": "1077:105:0" - } - ], - "id": 34, - "name": "FunctionDefinition", - "src": "1041:141:0" - }, - { - "attributes": { - "documentation": null, - "implemented": true, - "isConstructor": false, - "kind": "function", - "modifiers": [ - null - ], - "name": "_processWithdraw", - "scope": 100, - "stateMutability": "nonpayable", - "superFunction": 701, - "visibility": "internal" - }, - "children": [ - { - "children": [ - { - "attributes": { - "constant": false, - "name": "_recipient", - "scope": 99, - "stateVariable": false, - "storageLocation": "default", - "type": "address payable", - "value": null, - "visibility": "internal" - }, - "children": [ - { - "attributes": { - "name": "address", - "stateMutability": "payable", - "type": "address payable" - }, - "id": 35, - "name": "ElementaryTypeName", - "src": "1212:15:0" - } - ], - "id": 36, - "name": "VariableDeclaration", - "src": "1212:26:0" - }, - { - "attributes": { - "constant": false, - "name": "_relayer", - "scope": 99, - "stateVariable": false, - "storageLocation": "default", - "type": "address payable", - "value": null, - "visibility": "internal" - }, - "children": [ - { - "attributes": { - "name": "address", - "stateMutability": "payable", - "type": "address payable" - }, - "id": 37, - "name": "ElementaryTypeName", - "src": "1240:15:0" - } - ], - "id": 38, - "name": "VariableDeclaration", - "src": "1240:24:0" - }, - { - "attributes": { - "constant": false, - "name": "_fee", - "scope": 99, - "stateVariable": false, - "storageLocation": "default", - "type": "uint256", - "value": null, - "visibility": "internal" - }, - "children": [ - { - "attributes": { - "name": "uint256", - "type": "uint256" - }, - "id": 39, - "name": "ElementaryTypeName", - "src": "1266:7:0" - } - ], - "id": 40, - "name": "VariableDeclaration", - "src": "1266:12:0" - }, - { - "attributes": { - "constant": false, - "name": "_refund", - "scope": 99, - "stateVariable": false, - "storageLocation": "default", - "type": "uint256", - "value": null, - "visibility": "internal" - }, - "children": [ - { - "attributes": { - "name": "uint256", - "type": "uint256" - }, - "id": 41, - "name": "ElementaryTypeName", - "src": "1280:7:0" - } - ], - "id": 42, - "name": "VariableDeclaration", - "src": "1280:15:0" - } - ], - "id": 43, - "name": "ParameterList", - "src": "1211:85:0" - }, - { - "attributes": { - "parameters": [ - null - ] - }, - "children": [], - "id": 44, - "name": "ParameterList", - "src": "1306:0:0" - }, - { - "children": [ - { - "children": [ - { - "attributes": { - "argumentTypes": null, - "isConstant": false, - "isLValue": false, - "isPure": false, - "isStructConstructorCall": false, - "lValueRequested": false, - "names": [ - null - ], - "type": "tuple()", - "type_conversion": false - }, - "children": [ - { - "attributes": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_fb42cba8716e5ef1890027a84a51d30b8a9b3b6aff292fa4436fdfdb093e2b04", - "typeString": "literal_string \"Message value is supposed to be zero for ETH instance\"" - } - ], - "overloadedDeclarations": [ - 833, - 834 - ], - "referencedDeclaration": 834, - "type": "function (bool,string memory) pure", - "value": "require" - }, - "id": 45, - "name": "Identifier", - "src": "1333:7:0" - }, - { - "attributes": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "operator": "==", - "type": "bool" - }, - "children": [ - { - "attributes": { - "argumentTypes": null, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "member_name": "value", - "referencedDeclaration": null, - "type": "uint256" - }, - "children": [ - { - "attributes": { - "argumentTypes": null, - "overloadedDeclarations": [ - null - ], - "referencedDeclaration": 830, - "type": "msg", - "value": "msg" - }, - "id": 46, - "name": "Identifier", - "src": "1341:3:0" - } - ], - "id": 47, - "name": "MemberAccess", - "src": "1341:9:0" - }, - { - "attributes": { - "argumentTypes": null, - "hexvalue": "30", - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "subdenomination": null, - "token": "number", - "type": "int_const 0", - "value": "0" - }, - "id": 48, - "name": "Literal", - "src": "1354:1:0" - } - ], - "id": 49, - "name": "BinaryOperation", - "src": "1341:14:0" - }, - { - "attributes": { - "argumentTypes": null, - "hexvalue": "4d6573736167652076616c756520697320737570706f73656420746f206265207a65726f20666f722045544820696e7374616e6365", - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "subdenomination": null, - "token": "string", - "type": "literal_string \"Message value is supposed to be zero for ETH instance\"", - "value": "Message value is supposed to be zero for ETH instance" - }, - "id": 50, - "name": "Literal", - "src": "1357:55:0" - } - ], - "id": 51, - "name": "FunctionCall", - "src": "1333:80:0" - } - ], - "id": 52, - "name": "ExpressionStatement", - "src": "1333:80:0" - }, - { - "children": [ - { - "attributes": { - "argumentTypes": null, - "isConstant": false, - "isLValue": false, - "isPure": false, - "isStructConstructorCall": false, - "lValueRequested": false, - "names": [ - null - ], - "type": "tuple()", - "type_conversion": false - }, - "children": [ - { - "attributes": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_81ced7081bd66f683c55140bd49cd7b11c81bd1cdd704658426bd50e1bd8ff84", - "typeString": "literal_string \"Refund value is supposed to be zero for ETH instance\"" - } - ], - "overloadedDeclarations": [ - 833, - 834 - ], - "referencedDeclaration": 834, - "type": "function (bool,string memory) pure", - "value": "require" - }, - "id": 53, - "name": "Identifier", - "src": "1419:7:0" - }, - { - "attributes": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "operator": "==", - "type": "bool" - }, - "children": [ - { - "attributes": { - "argumentTypes": null, - "overloadedDeclarations": [ - null - ], - "referencedDeclaration": 42, - "type": "uint256", - "value": "_refund" - }, - "id": 54, - "name": "Identifier", - "src": "1427:7:0" - }, - { - "attributes": { - "argumentTypes": null, - "hexvalue": "30", - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "subdenomination": null, - "token": "number", - "type": "int_const 0", - "value": "0" - }, - "id": 55, - "name": "Literal", - "src": "1438:1:0" - } - ], - "id": 56, - "name": "BinaryOperation", - "src": "1427:12:0" - }, - { - "attributes": { - "argumentTypes": null, - "hexvalue": "526566756e642076616c756520697320737570706f73656420746f206265207a65726f20666f722045544820696e7374616e6365", - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "subdenomination": null, - "token": "string", - "type": "literal_string \"Refund value is supposed to be zero for ETH instance\"", - "value": "Refund value is supposed to be zero for ETH instance" - }, - "id": 57, - "name": "Literal", - "src": "1441:54:0" - } - ], - "id": 58, - "name": "FunctionCall", - "src": "1419:77:0" - } - ], - "id": 59, - "name": "ExpressionStatement", - "src": "1419:77:0" - }, - { - "attributes": { - "assignments": [ - 61, - null - ] - }, - "children": [ - { - "attributes": { - "constant": false, - "name": "success", - "scope": 98, - "stateVariable": false, - "storageLocation": "default", - "type": "bool", - "value": null, - "visibility": "internal" - }, - "children": [ - { - "attributes": { - "name": "bool", - "type": "bool" - }, - "id": 60, - "name": "ElementaryTypeName", - "src": "1504:4:0" - } - ], - "id": 61, - "name": "VariableDeclaration", - "src": "1504:12:0" - }, - { - "attributes": { - "argumentTypes": null, - "isConstant": false, - "isLValue": false, - "isPure": false, - "isStructConstructorCall": false, - "lValueRequested": false, - "names": [ - null - ], - "type": "tuple(bool,bytes memory)", - "type_conversion": false - }, - "children": [ - { - "attributes": { - "argumentTypes": [ - { - "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", - "typeString": "literal_string \"\"" - } - ], - "isConstant": false, - "isLValue": false, - "isPure": false, - "isStructConstructorCall": false, - "lValueRequested": false, - "names": [ - null - ], - "type": "function (bytes memory) payable returns (bool,bytes memory)", - "type_conversion": false - }, - "children": [ - { - "attributes": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "member_name": "value", - "referencedDeclaration": null, - "type": "function (uint256) pure returns (function (bytes memory) payable returns (bool,bytes memory))" - }, - "children": [ - { - "attributes": { - "argumentTypes": null, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "member_name": "call", - "referencedDeclaration": null, - "type": "function (bytes memory) payable returns (bool,bytes memory)" - }, - "children": [ - { - "attributes": { - "argumentTypes": null, - "overloadedDeclarations": [ - null - ], - "referencedDeclaration": 36, - "type": "address payable", - "value": "_recipient" - }, - "id": 62, - "name": "Identifier", - "src": "1522:10:0" - } - ], - "id": 63, - "name": "MemberAccess", - "src": "1522:15:0" - } - ], - "id": 64, - "name": "MemberAccess", - "src": "1522:21:0" - }, - { - "attributes": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "operator": "-", - "type": "uint256" - }, - "children": [ - { - "attributes": { - "argumentTypes": null, - "overloadedDeclarations": [ - null - ], - "referencedDeclaration": 488, - "type": "uint256", - "value": "denomination" - }, - "id": 65, - "name": "Identifier", - "src": "1544:12:0" - }, - { - "attributes": { - "argumentTypes": null, - "overloadedDeclarations": [ - null - ], - "referencedDeclaration": 40, - "type": "uint256", - "value": "_fee" - }, - "id": 66, - "name": "Identifier", - "src": "1559:4:0" - } - ], - "id": 67, - "name": "BinaryOperation", - "src": "1544:19:0" - } - ], - "id": 68, - "name": "FunctionCall", - "src": "1522:42:0" - }, - { - "attributes": { - "argumentTypes": null, - "hexvalue": "", - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "subdenomination": null, - "token": "string", - "type": "literal_string \"\"", - "value": "" - }, - "id": 69, - "name": "Literal", - "src": "1565:2:0" - } - ], - "id": 70, - "name": "FunctionCall", - "src": "1522:46:0" - } - ], - "id": 71, - "name": "VariableDeclarationStatement", - "src": "1503:65:0" - }, - { - "children": [ - { - "attributes": { - "argumentTypes": null, - "isConstant": false, - "isLValue": false, - "isPure": false, - "isStructConstructorCall": false, - "lValueRequested": false, - "names": [ - null - ], - "type": "tuple()", - "type_conversion": false - }, - "children": [ - { - "attributes": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_b817ea600508ee7f5bd41bf8aaa06721dfdc08b3c90f6e232639455b89be34a9", - "typeString": "literal_string \"payment to _recipient did not go thru\"" - } - ], - "overloadedDeclarations": [ - 833, - 834 - ], - "referencedDeclaration": 834, - "type": "function (bool,string memory) pure", - "value": "require" - }, - "id": 72, - "name": "Identifier", - "src": "1574:7:0" - }, - { - "attributes": { - "argumentTypes": null, - "overloadedDeclarations": [ - null - ], - "referencedDeclaration": 61, - "type": "bool", - "value": "success" - }, - "id": 73, - "name": "Identifier", - "src": "1582:7:0" - }, - { - "attributes": { - "argumentTypes": null, - "hexvalue": "7061796d656e7420746f205f726563697069656e7420646964206e6f7420676f2074687275", - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "subdenomination": null, - "token": "string", - "type": "literal_string \"payment to _recipient did not go thru\"", - "value": "payment to _recipient did not go thru" - }, - "id": 74, - "name": "Literal", - "src": "1591:39:0" - } - ], - "id": 75, - "name": "FunctionCall", - "src": "1574:57:0" - } - ], - "id": 76, - "name": "ExpressionStatement", - "src": "1574:57:0" - }, - { - "attributes": { - "falseBody": null - }, - "children": [ - { - "attributes": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "operator": ">", - "type": "bool" - }, - "children": [ - { - "attributes": { - "argumentTypes": null, - "overloadedDeclarations": [ - null - ], - "referencedDeclaration": 40, - "type": "uint256", - "value": "_fee" - }, - "id": 77, - "name": "Identifier", - "src": "1641:4:0" - }, - { - "attributes": { - "argumentTypes": null, - "hexvalue": "30", - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "subdenomination": null, - "token": "number", - "type": "int_const 0", - "value": "0" - }, - "id": 78, - "name": "Literal", - "src": "1648:1:0" - } - ], - "id": 79, - "name": "BinaryOperation", - "src": "1641:8:0" - }, - { - "children": [ - { - "children": [ - { - "attributes": { - "argumentTypes": null, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "operator": "=", - "type": "tuple()" - }, - "children": [ - { - "attributes": { - "argumentTypes": null, - "isConstant": false, - "isInlineArray": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "type": "tuple(bool,)" - }, - "children": [ - { - "attributes": { - "argumentTypes": null, - "overloadedDeclarations": [ - null - ], - "referencedDeclaration": 61, - "type": "bool", - "value": "success" - }, - "id": 80, - "name": "Identifier", - "src": "1660:7:0" - } - ], - "id": 81, - "name": "TupleExpression", - "src": "1659:11:0" - }, - { - "attributes": { - "argumentTypes": null, - "isConstant": false, - "isLValue": false, - "isPure": false, - "isStructConstructorCall": false, - "lValueRequested": false, - "names": [ - null - ], - "type": "tuple(bool,bytes memory)", - "type_conversion": false - }, - "children": [ - { - "attributes": { - "argumentTypes": [ - { - "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", - "typeString": "literal_string \"\"" - } - ], - "isConstant": false, - "isLValue": false, - "isPure": false, - "isStructConstructorCall": false, - "lValueRequested": false, - "names": [ - null - ], - "type": "function (bytes memory) payable returns (bool,bytes memory)", - "type_conversion": false - }, - "children": [ - { - "attributes": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "member_name": "value", - "referencedDeclaration": null, - "type": "function (uint256) pure returns (function (bytes memory) payable returns (bool,bytes memory))" - }, - "children": [ - { - "attributes": { - "argumentTypes": null, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "member_name": "call", - "referencedDeclaration": null, - "type": "function (bytes memory) payable returns (bool,bytes memory)" - }, - "children": [ - { - "attributes": { - "argumentTypes": null, - "overloadedDeclarations": [ - null - ], - "referencedDeclaration": 38, - "type": "address payable", - "value": "_relayer" - }, - "id": 82, - "name": "Identifier", - "src": "1673:8:0" - } - ], - "id": 83, - "name": "MemberAccess", - "src": "1673:13:0" - } - ], - "id": 84, - "name": "MemberAccess", - "src": "1673:19:0" - }, - { - "attributes": { - "argumentTypes": null, - "overloadedDeclarations": [ - null - ], - "referencedDeclaration": 40, - "type": "uint256", - "value": "_fee" - }, - "id": 85, - "name": "Identifier", - "src": "1693:4:0" - } - ], - "id": 86, - "name": "FunctionCall", - "src": "1673:25:0" - }, - { - "attributes": { - "argumentTypes": null, - "hexvalue": "", - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "subdenomination": null, - "token": "string", - "type": "literal_string \"\"", - "value": "" - }, - "id": 87, - "name": "Literal", - "src": "1699:2:0" - } - ], - "id": 88, - "name": "FunctionCall", - "src": "1673:29:0" - } - ], - "id": 89, - "name": "Assignment", - "src": "1659:43:0" - } - ], - "id": 90, - "name": "ExpressionStatement", - "src": "1659:43:0" - }, - { - "children": [ - { - "attributes": { - "argumentTypes": null, - "isConstant": false, - "isLValue": false, - "isPure": false, - "isStructConstructorCall": false, - "lValueRequested": false, - "names": [ - null - ], - "type": "tuple()", - "type_conversion": false - }, - "children": [ - { - "attributes": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_d23a9425cb4f79b7ef092634b094eea804c04088be6543a697545fa4aa8c0ef0", - "typeString": "literal_string \"payment to _relayer did not go thru\"" - } - ], - "overloadedDeclarations": [ - 833, - 834 - ], - "referencedDeclaration": 834, - "type": "function (bool,string memory) pure", - "value": "require" - }, - "id": 91, - "name": "Identifier", - "src": "1710:7:0" - }, - { - "attributes": { - "argumentTypes": null, - "overloadedDeclarations": [ - null - ], - "referencedDeclaration": 61, - "type": "bool", - "value": "success" - }, - "id": 92, - "name": "Identifier", - "src": "1718:7:0" - }, - { - "attributes": { - "argumentTypes": null, - "hexvalue": "7061796d656e7420746f205f72656c6179657220646964206e6f7420676f2074687275", - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "subdenomination": null, - "token": "string", - "type": "literal_string \"payment to _relayer did not go thru\"", - "value": "payment to _relayer did not go thru" - }, - "id": 93, - "name": "Literal", - "src": "1727:37:0" - } - ], - "id": 94, - "name": "FunctionCall", - "src": "1710:55:0" - } - ], - "id": 95, - "name": "ExpressionStatement", - "src": "1710:55:0" - } - ], - "id": 96, - "name": "Block", - "src": "1651:121:0" - } - ], - "id": 97, - "name": "IfStatement", - "src": "1637:135:0" - } - ], - "id": 98, - "name": "Block", - "src": "1306:470:0" - } - ], - "id": 99, - "name": "FunctionDefinition", - "src": "1186:590:0" - } - ], - "id": 100, - "name": "ContractDefinition", - "src": "805:973:0" - } - ], - "id": 101, - "name": "SourceUnit", - "src": "755:1024:0" - }, - "compiler": { - "name": "solc", - "version": "0.5.17+commit.d19bba13.Emscripten.clang" - }, - "networks": { - "42220": { - "events": {}, - "links": { - "Hasher": "0xD75035293f552aB5c33483f321DBf0DfA1C7c71d" - }, - "address": "0xc1a3282e6A89b0823F92f2e8741df4eb3C7eFf43", - "transactionHash": "0x2d9b5eaa29a7f9c974ba281f3b59154f2d499f2ecadc1f66c6065ed2f22b050a" - }, - "44787": { - "events": {}, - "links": { - "Hasher": "0xd6ae2Af69ECb0A799a00c21e379e07f3bA185d6b" - }, - "address": "0x4256bb8E0677b5799A2D78a55D7E20A7fcDd79F2", - "transactionHash": "0x94eea3c9e61635400d82e04d04ff2c860f469a4adc239b047aaea298453d22f0" - } - }, - "schemaVersion": "3.3.4", - "updatedAt": "2021-03-22T01:39:56.574Z", - "networkType": "ethereum", - "devdoc": { - "methods": { - "changeOperator(address)": { - "details": "operator can change his address " - }, - "deposit(bytes32)": { - "details": "Deposit funds into the contract. The caller must send (for ETH) or approve (for ERC20) value equal to or `denomination` of this instance.", - "params": { - "_commitment": "the note commitment, which is PedersenHash(nullifier + secret)" - } - }, - "getLastRoot()": { - "details": "Returns the last root" - }, - "hashLeftRight(bytes32,bytes32)": { - "details": "Hash 2 tree leaves, returns MiMC(_left, _right)" - }, - "isKnownRoot(bytes32)": { - "details": "Whether the root is present in the root history" - }, - "isSpent(bytes32)": { - "details": "whether a note is already spent " - }, - "isSpentArray(bytes32[])": { - "details": "whether an array of notes is already spent " - }, - "updateVerifier(address)": { - "details": "allow operator to update SNARK verification keys. This is needed to update keys after the final trusted setup ceremony is held. After that operator rights are supposed to be transferred to zero address" - }, - "withdraw(bytes,bytes32,bytes32,address,address,uint256,uint256)": { - "details": "Withdraw a deposit from the contract. `proof` is a zkSNARK proof data, and input is an array of circuit public inputs `input` array consists of: - merkle root of all deposits in the contract - hash of unique deposit nullifier to prevent double spends - the recipient of funds - optional fee that goes to the transaction sender (usually a relay)" - } - } - }, - "userdoc": { - "methods": {} - } -} \ No newline at end of file diff --git a/client/contracts/FeeManager.json b/client/contracts/FeeManager.json new file mode 100644 index 0000000..2b27f9b --- /dev/null +++ b/client/contracts/FeeManager.json @@ -0,0 +1,1508 @@ +{ + "contractName": "FeeManager", + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "_feeToSetter", + "type": "address" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "constant": true, + "inputs": [], + "name": "feeTo", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "feeToSetter", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "address", + "name": "_feeTo", + "type": "address" + } + ], + "name": "setFeeTo", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "address", + "name": "_feeToSetter", + "type": "address" + } + ], + "name": "setFeeToSetter", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + } + ], + "metadata": "{\"compiler\":{\"version\":\"0.5.17+commit.d19bba13\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_feeToSetter\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"constant\":true,\"inputs\":[],\"name\":\"feeTo\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"feeToSetter\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"_feeTo\",\"type\":\"address\"}],\"name\":\"setFeeTo\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"_feeToSetter\",\"type\":\"address\"}],\"name\":\"setFeeToSetter\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/Users/brianli/dotfiles/tornado-core/contracts/FeeManager.sol\":\"FeeManager\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/Users/brianli/dotfiles/tornado-core/contracts/FeeManager.sol\":{\"keccak256\":\"0x4d54892e74f27c38f1e40bcdaf44a67aa65e2692b30246850b8c32491f1b3d02\",\"urls\":[\"bzz-raw://ca5bd8d25a99b03a29a764ce6f887dd1022b50b9308ef705be0d71ad79687f08\",\"dweb:/ipfs/QmSYMnxLnn4HGNy32YHDEs8rNkNwV6h4xsvDbKCv3vAMMt\"]}},\"version\":1}", + "bytecode": "0x608060405234801561001057600080fd5b506040516102673803806102678339818101604052602081101561003357600080fd5b5051600180546001600160a01b0319166001600160a01b03909216919091179055610204806100636000396000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c8063017e7e5814610051578063094b741514610075578063a2e74af61461007d578063f46901ed146100a5575b600080fd5b6100596100cb565b604080516001600160a01b039092168252519081900360200190f35b6100596100da565b6100a36004803603602081101561009357600080fd5b50356001600160a01b03166100e9565b005b6100a3600480360360208110156100bb57600080fd5b50356001600160a01b031661015c565b6000546001600160a01b031681565b6001546001600160a01b031681565b6001546001600160a01b0316331461013a576040805162461bcd60e51b815260206004820152600f60248201526e2837b7b31d102327a92124a22222a760891b604482015290519081900360640190fd5b600180546001600160a01b0319166001600160a01b0392909216919091179055565b6001546001600160a01b031633146101ad576040805162461bcd60e51b815260206004820152600f60248201526e2837b7b31d102327a92124a22222a760891b604482015290519081900360640190fd5b600080546001600160a01b0319166001600160a01b039290921691909117905556fea265627a7a72315820a0b1c5e2571525fdf052a571d7a5a1b3837ca98305095102ec0d6d1d879183b264736f6c63430005110032", + "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061004c5760003560e01c8063017e7e5814610051578063094b741514610075578063a2e74af61461007d578063f46901ed146100a5575b600080fd5b6100596100cb565b604080516001600160a01b039092168252519081900360200190f35b6100596100da565b6100a36004803603602081101561009357600080fd5b50356001600160a01b03166100e9565b005b6100a3600480360360208110156100bb57600080fd5b50356001600160a01b031661015c565b6000546001600160a01b031681565b6001546001600160a01b031681565b6001546001600160a01b0316331461013a576040805162461bcd60e51b815260206004820152600f60248201526e2837b7b31d102327a92124a22222a760891b604482015290519081900360640190fd5b600180546001600160a01b0319166001600160a01b0392909216919091179055565b6001546001600160a01b031633146101ad576040805162461bcd60e51b815260206004820152600f60248201526e2837b7b31d102327a92124a22222a760891b604482015290519081900360640190fd5b600080546001600160a01b0319166001600160a01b039290921691909117905556fea265627a7a72315820a0b1c5e2571525fdf052a571d7a5a1b3837ca98305095102ec0d6d1d879183b264736f6c63430005110032", + "sourceMap": "25:453:1:-;;;104:78;8:9:-1;5:2;;;30:1;27;20:12;5:2;104:78:1;;;;;;;;;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;104:78:1;151:11;:26;;-1:-1:-1;;;;;;151:26:1;-1:-1:-1;;;;;151:26:1;;;;;;;;;25:453;;;-1:-1:-1;25:453:1;;", + "deployedSourceMap": "25:453:1:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;25:453:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;49:20;;;:::i;:::-;;;;-1:-1:-1;;;;;49:20:1;;;;;;;;;;;;;;73:26;;;:::i;321:155::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;321:155:1;-1:-1:-1;;;;;321:155:1;;:::i;:::-;;186:131;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;186:131:1;-1:-1:-1;;;;;186:131:1;;:::i;49:20::-;;;-1:-1:-1;;;;;49:20:1;;:::o;73:26::-;;;-1:-1:-1;;;;;73:26:1;;:::o;321:155::-;406:11;;-1:-1:-1;;;;;406:11:1;392:10;:25;384:53;;;;;-1:-1:-1;;;384:53:1;;;;;;;;;;;;-1:-1:-1;;;384:53:1;;;;;;;;;;;;;;;445:11;:26;;-1:-1:-1;;;;;;445:26:1;-1:-1:-1;;;;;445:26:1;;;;;;;;;;321:155::o;186:131::-;259:11;;-1:-1:-1;;;;;259:11:1;245:10;:25;237:53;;;;;-1:-1:-1;;;237:53:1;;;;;;;;;;;;-1:-1:-1;;;237:53:1;;;;;;;;;;;;;;;298:5;:14;;-1:-1:-1;;;;;;298:14:1;-1:-1:-1;;;;;298:14:1;;;;;;;;;;186:131::o", + "source": "pragma solidity 0.5.17;\n\ncontract FeeManager {\n address public feeTo;\n address public feeToSetter;\n\n constructor(address _feeToSetter) public {\n feeToSetter = _feeToSetter;\n }\n\n function setFeeTo(address _feeTo) external {\n require(msg.sender == feeToSetter, 'Poof: FORBIDDEN');\n feeTo = _feeTo;\n }\n\n function setFeeToSetter(address _feeToSetter) external {\n require(msg.sender == feeToSetter, 'Poof: FORBIDDEN');\n feeToSetter = _feeToSetter;\n }\n}\n", + "sourcePath": "/Users/brianli/dotfiles/tornado-core/contracts/FeeManager.sol", + "ast": { + "absolutePath": "/Users/brianli/dotfiles/tornado-core/contracts/FeeManager.sol", + "exportedSymbols": { + "FeeManager": [ + 319 + ] + }, + "id": 320, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 268, + "literals": [ + "solidity", + "0.5", + ".17" + ], + "nodeType": "PragmaDirective", + "src": "0:23:1" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 319, + "linearizedBaseContracts": [ + 319 + ], + "name": "FeeManager", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": false, + "id": 270, + "name": "feeTo", + "nodeType": "VariableDeclaration", + "scope": 319, + "src": "49:20:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 269, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "49:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 272, + "name": "feeToSetter", + "nodeType": "VariableDeclaration", + "scope": 319, + "src": "73:26:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 271, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "73:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "public" + }, + { + "body": { + "id": 281, + "nodeType": "Block", + "src": "145:37:1", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 279, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 277, + "name": "feeToSetter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 272, + "src": "151:11:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 278, + "name": "_feeToSetter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 274, + "src": "165:12:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "151:26:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 280, + "nodeType": "ExpressionStatement", + "src": "151:26:1" + } + ] + }, + "documentation": null, + "id": 282, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 275, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 274, + "name": "_feeToSetter", + "nodeType": "VariableDeclaration", + "scope": 282, + "src": "116:20:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 273, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "116:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "115:22:1" + }, + "returnParameters": { + "id": 276, + "nodeType": "ParameterList", + "parameters": [], + "src": "145:0:1" + }, + "scope": 319, + "src": "104:78:1", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 299, + "nodeType": "Block", + "src": "229:88:1", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 291, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 288, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2131, + "src": "245:3:1", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 289, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "245:10:1", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 290, + "name": "feeToSetter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 272, + "src": "259:11:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "245:25:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "506f6f663a20464f5242494444454e", + "id": 292, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "272:17:1", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_b0ea5653e0e519b050ef336c67727a3a431509a369a785f89e8479e85ce40165", + "typeString": "literal_string \"Poof: FORBIDDEN\"" + }, + "value": "Poof: FORBIDDEN" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_b0ea5653e0e519b050ef336c67727a3a431509a369a785f89e8479e85ce40165", + "typeString": "literal_string \"Poof: FORBIDDEN\"" + } + ], + "id": 287, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 2134, + 2135 + ], + "referencedDeclaration": 2135, + "src": "237:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 293, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "237:53:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 294, + "nodeType": "ExpressionStatement", + "src": "237:53:1" + }, + { + "expression": { + "argumentTypes": null, + "id": 297, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 295, + "name": "feeTo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 270, + "src": "298:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 296, + "name": "_feeTo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 284, + "src": "306:6:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "298:14:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 298, + "nodeType": "ExpressionStatement", + "src": "298:14:1" + } + ] + }, + "documentation": null, + "id": 300, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "setFeeTo", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 285, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 284, + "name": "_feeTo", + "nodeType": "VariableDeclaration", + "scope": 300, + "src": "204:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 283, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "204:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "203:16:1" + }, + "returnParameters": { + "id": 286, + "nodeType": "ParameterList", + "parameters": [], + "src": "229:0:1" + }, + "scope": 319, + "src": "186:131:1", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": { + "id": 317, + "nodeType": "Block", + "src": "376:100:1", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 309, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 306, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2131, + "src": "392:3:1", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 307, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "392:10:1", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 308, + "name": "feeToSetter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 272, + "src": "406:11:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "392:25:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "506f6f663a20464f5242494444454e", + "id": 310, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "419:17:1", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_b0ea5653e0e519b050ef336c67727a3a431509a369a785f89e8479e85ce40165", + "typeString": "literal_string \"Poof: FORBIDDEN\"" + }, + "value": "Poof: FORBIDDEN" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_b0ea5653e0e519b050ef336c67727a3a431509a369a785f89e8479e85ce40165", + "typeString": "literal_string \"Poof: FORBIDDEN\"" + } + ], + "id": 305, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 2134, + 2135 + ], + "referencedDeclaration": 2135, + "src": "384:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 311, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "384:53:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 312, + "nodeType": "ExpressionStatement", + "src": "384:53:1" + }, + { + "expression": { + "argumentTypes": null, + "id": 315, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 313, + "name": "feeToSetter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 272, + "src": "445:11:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 314, + "name": "_feeToSetter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 302, + "src": "459:12:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "445:26:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 316, + "nodeType": "ExpressionStatement", + "src": "445:26:1" + } + ] + }, + "documentation": null, + "id": 318, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "setFeeToSetter", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 303, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 302, + "name": "_feeToSetter", + "nodeType": "VariableDeclaration", + "scope": 318, + "src": "345:20:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 301, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "345:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "344:22:1" + }, + "returnParameters": { + "id": 304, + "nodeType": "ParameterList", + "parameters": [], + "src": "376:0:1" + }, + "scope": 319, + "src": "321:155:1", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + } + ], + "scope": 320, + "src": "25:453:1" + } + ], + "src": "0:479:1" + }, + "legacyAST": { + "attributes": { + "absolutePath": "/Users/brianli/dotfiles/tornado-core/contracts/FeeManager.sol", + "exportedSymbols": { + "FeeManager": [ + 319 + ] + } + }, + "children": [ + { + "attributes": { + "literals": [ + "solidity", + "0.5", + ".17" + ] + }, + "id": 268, + "name": "PragmaDirective", + "src": "0:23:1" + }, + { + "attributes": { + "baseContracts": [ + null + ], + "contractDependencies": [ + null + ], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "linearizedBaseContracts": [ + 319 + ], + "name": "FeeManager", + "scope": 320 + }, + "children": [ + { + "attributes": { + "constant": false, + "name": "feeTo", + "scope": 319, + "stateVariable": true, + "storageLocation": "default", + "type": "address", + "value": null, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 269, + "name": "ElementaryTypeName", + "src": "49:7:1" + } + ], + "id": 270, + "name": "VariableDeclaration", + "src": "49:20:1" + }, + { + "attributes": { + "constant": false, + "name": "feeToSetter", + "scope": 319, + "stateVariable": true, + "storageLocation": "default", + "type": "address", + "value": null, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 271, + "name": "ElementaryTypeName", + "src": "73:7:1" + } + ], + "id": 272, + "name": "VariableDeclaration", + "src": "73:26:1" + }, + { + "attributes": { + "documentation": null, + "implemented": true, + "isConstructor": true, + "kind": "constructor", + "modifiers": [ + null + ], + "name": "", + "scope": 319, + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "name": "_feeToSetter", + "scope": 282, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 273, + "name": "ElementaryTypeName", + "src": "116:7:1" + } + ], + "id": 274, + "name": "VariableDeclaration", + "src": "116:20:1" + } + ], + "id": 275, + "name": "ParameterList", + "src": "115:22:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 276, + "name": "ParameterList", + "src": "145:0:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "address" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 272, + "type": "address", + "value": "feeToSetter" + }, + "id": 277, + "name": "Identifier", + "src": "151:11:1" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 274, + "type": "address", + "value": "_feeToSetter" + }, + "id": 278, + "name": "Identifier", + "src": "165:12:1" + } + ], + "id": 279, + "name": "Assignment", + "src": "151:26:1" + } + ], + "id": 280, + "name": "ExpressionStatement", + "src": "151:26:1" + } + ], + "id": 281, + "name": "Block", + "src": "145:37:1" + } + ], + "id": 282, + "name": "FunctionDefinition", + "src": "104:78:1" + }, + { + "attributes": { + "documentation": null, + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "setFeeTo", + "scope": 319, + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "name": "_feeTo", + "scope": 300, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 283, + "name": "ElementaryTypeName", + "src": "204:7:1" + } + ], + "id": 284, + "name": "VariableDeclaration", + "src": "204:14:1" + } + ], + "id": 285, + "name": "ParameterList", + "src": "203:16:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 286, + "name": "ParameterList", + "src": "229:0:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_b0ea5653e0e519b050ef336c67727a3a431509a369a785f89e8479e85ce40165", + "typeString": "literal_string \"Poof: FORBIDDEN\"" + } + ], + "overloadedDeclarations": [ + 2134, + 2135 + ], + "referencedDeclaration": 2135, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 287, + "name": "Identifier", + "src": "237:7:1" + }, + { + "attributes": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "==", + "type": "bool" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "sender", + "referencedDeclaration": null, + "type": "address payable" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2131, + "type": "msg", + "value": "msg" + }, + "id": 288, + "name": "Identifier", + "src": "245:3:1" + } + ], + "id": 289, + "name": "MemberAccess", + "src": "245:10:1" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 272, + "type": "address", + "value": "feeToSetter" + }, + "id": 290, + "name": "Identifier", + "src": "259:11:1" + } + ], + "id": 291, + "name": "BinaryOperation", + "src": "245:25:1" + }, + { + "attributes": { + "argumentTypes": null, + "hexvalue": "506f6f663a20464f5242494444454e", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "string", + "type": "literal_string \"Poof: FORBIDDEN\"", + "value": "Poof: FORBIDDEN" + }, + "id": 292, + "name": "Literal", + "src": "272:17:1" + } + ], + "id": 293, + "name": "FunctionCall", + "src": "237:53:1" + } + ], + "id": 294, + "name": "ExpressionStatement", + "src": "237:53:1" + }, + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "address" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 270, + "type": "address", + "value": "feeTo" + }, + "id": 295, + "name": "Identifier", + "src": "298:5:1" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 284, + "type": "address", + "value": "_feeTo" + }, + "id": 296, + "name": "Identifier", + "src": "306:6:1" + } + ], + "id": 297, + "name": "Assignment", + "src": "298:14:1" + } + ], + "id": 298, + "name": "ExpressionStatement", + "src": "298:14:1" + } + ], + "id": 299, + "name": "Block", + "src": "229:88:1" + } + ], + "id": 300, + "name": "FunctionDefinition", + "src": "186:131:1" + }, + { + "attributes": { + "documentation": null, + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "setFeeToSetter", + "scope": 319, + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "name": "_feeToSetter", + "scope": 318, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 301, + "name": "ElementaryTypeName", + "src": "345:7:1" + } + ], + "id": 302, + "name": "VariableDeclaration", + "src": "345:20:1" + } + ], + "id": 303, + "name": "ParameterList", + "src": "344:22:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 304, + "name": "ParameterList", + "src": "376:0:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_b0ea5653e0e519b050ef336c67727a3a431509a369a785f89e8479e85ce40165", + "typeString": "literal_string \"Poof: FORBIDDEN\"" + } + ], + "overloadedDeclarations": [ + 2134, + 2135 + ], + "referencedDeclaration": 2135, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 305, + "name": "Identifier", + "src": "384:7:1" + }, + { + "attributes": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "==", + "type": "bool" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "sender", + "referencedDeclaration": null, + "type": "address payable" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2131, + "type": "msg", + "value": "msg" + }, + "id": 306, + "name": "Identifier", + "src": "392:3:1" + } + ], + "id": 307, + "name": "MemberAccess", + "src": "392:10:1" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 272, + "type": "address", + "value": "feeToSetter" + }, + "id": 308, + "name": "Identifier", + "src": "406:11:1" + } + ], + "id": 309, + "name": "BinaryOperation", + "src": "392:25:1" + }, + { + "attributes": { + "argumentTypes": null, + "hexvalue": "506f6f663a20464f5242494444454e", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "string", + "type": "literal_string \"Poof: FORBIDDEN\"", + "value": "Poof: FORBIDDEN" + }, + "id": 310, + "name": "Literal", + "src": "419:17:1" + } + ], + "id": 311, + "name": "FunctionCall", + "src": "384:53:1" + } + ], + "id": 312, + "name": "ExpressionStatement", + "src": "384:53:1" + }, + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "address" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 272, + "type": "address", + "value": "feeToSetter" + }, + "id": 313, + "name": "Identifier", + "src": "445:11:1" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 302, + "type": "address", + "value": "_feeToSetter" + }, + "id": 314, + "name": "Identifier", + "src": "459:12:1" + } + ], + "id": 315, + "name": "Assignment", + "src": "445:26:1" + } + ], + "id": 316, + "name": "ExpressionStatement", + "src": "445:26:1" + } + ], + "id": 317, + "name": "Block", + "src": "376:100:1" + } + ], + "id": 318, + "name": "FunctionDefinition", + "src": "321:155:1" + } + ], + "id": 319, + "name": "ContractDefinition", + "src": "25:453:1" + } + ], + "id": 320, + "name": "SourceUnit", + "src": "0:479:1" + }, + "compiler": { + "name": "solc", + "version": "0.5.17+commit.d19bba13.Emscripten.clang" + }, + "networks": {}, + "schemaVersion": "3.3.4", + "updatedAt": "2021-04-02T20:48:07.401Z", + "devdoc": { + "methods": {} + }, + "userdoc": { + "methods": {} + } +} \ No newline at end of file diff --git a/client/contracts/Hasher.json b/client/contracts/Hasher.json index cd8bdc3..906ee4a 100644 --- a/client/contracts/Hasher.json +++ b/client/contracts/Hasher.json @@ -51,6 +51,5 @@ } }, "schemaVersion": "3.3.4", - "updatedAt": "2021-03-22T02:54:26.425Z", - "networkType": "ethereum" + "updatedAt": "2021-04-02T22:30:43.196Z" } \ No newline at end of file diff --git a/client/contracts/IFeeManager.json b/client/contracts/IFeeManager.json new file mode 100644 index 0000000..e182102 --- /dev/null +++ b/client/contracts/IFeeManager.json @@ -0,0 +1,9168 @@ +{ + "contractName": "IFeeManager", + "abi": [ + { + "constant": true, + "inputs": [], + "name": "feeTo", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + } + ], + "metadata": "{\"compiler\":{\"version\":\"0.5.17+commit.d19bba13\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"constant\":true,\"inputs\":[],\"name\":\"feeTo\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/Users/brianli/dotfiles/tornado-core/contracts/Tornado.sol\":\"IFeeManager\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/Users/brianli/dotfiles/tornado-core/contracts/MerkleTreeWithHistory.sol\":{\"keccak256\":\"0x671cc9268dd70c47d18795f7e37fc4df11763fcbcca026edcf163f4239036254\",\"urls\":[\"bzz-raw://9c36a207ed164b60a514eae89bfb15e5b4de4b346c4a89a7a1cb50a940bc699d\",\"dweb:/ipfs/QmbPEqFJAGMpYduLEFsbPazyBsYWcjRtpth8X26wCHALwk\"]},\"/Users/brianli/dotfiles/tornado-core/contracts/Tornado.sol\":{\"keccak256\":\"0xe7db8acb3efcecf95c7364f447ed1764c571dbf5090fd4641fe4668a965332eb\",\"urls\":[\"bzz-raw://45e790c247c38ed8ae473e3165c1148ea10a753cf6e9f9c8742394019be2aef6\",\"dweb:/ipfs/QmaGfk1ndvqur2NvCY3TWoKuorfBVShXeykKei18GDY582\"]},\"@openzeppelin/contracts/utils/ReentrancyGuard.sol\":{\"keccak256\":\"0xb63221b23818d622bfd83d18e0968307e4fcb7a35536bdceded76e1cf8349acd\",\"urls\":[\"bzz-raw://44e1e8c22362c4708a8c3362735f1465f5b05e2f7315e16c7010d694ce019d73\",\"dweb:/ipfs/QmWj9g8X1hxkXRre2kwkEjLBetjuzmSbWHD81bsSojnBkS\"]}},\"version\":1}", + "bytecode": "0x", + "deployedBytecode": "0x", + "sourceMap": "", + "deployedSourceMap": "", + "source": "pragma solidity 0.5.17;\n\nimport \"./MerkleTreeWithHistory.sol\";\nimport \"@openzeppelin/contracts/utils/ReentrancyGuard.sol\";\n\ncontract IVerifier {\n function verifyProof(bytes memory _proof, uint256[6] memory _input) public returns(bool);\n}\n\ncontract IFeeManager {\n function feeTo() external view returns (address);\n}\n\ncontract Tornado is MerkleTreeWithHistory, ReentrancyGuard {\n uint256 public denomination;\n mapping(bytes32 => bool) public nullifierHashes;\n // we store all commitments just to prevent accidental deposits with the same commitment\n mapping(bytes32 => bool) public commitments;\n IVerifier public verifier;\n IFeeManager public feeManager;\n\n // operator can update snark verification key\n // after the final trusted setup ceremony operator rights are supposed to be transferred to zero address\n address public operator;\n modifier onlyOperator {\n require(msg.sender == operator, \"Only operator can call this function.\");\n _;\n }\n\n event Deposit(bytes32 indexed commitment, uint32 leafIndex, uint256 timestamp);\n event Withdrawal(address to, bytes32 nullifierHash, address indexed relayer, uint256 fee);\n\n /**\n @dev The constructor\n @param _verifier the address of SNARK verifier for this contract\n @param _denomination transfer amount for each deposit\n @param _merkleTreeHeight the height of deposits' Merkle Tree\n @param _operator operator address (see operator comment above)\n */\n constructor(\n IVerifier _verifier,\n IFeeManager _feeManager,\n uint256 _denomination,\n uint32 _merkleTreeHeight,\n address _operator\n ) MerkleTreeWithHistory(_merkleTreeHeight) public {\n require(_denomination > 0, \"denomination should be greater than 0\");\n verifier = _verifier;\n feeManager = _feeManager;\n operator = _operator;\n denomination = _denomination;\n }\n\n /**\n @dev Deposit funds into the contract. The caller must send (for ETH) or approve (for ERC20) value equal to or `denomination` of this instance.\n @param _commitment the note commitment, which is PedersenHash(nullifier + secret)\n */\n function deposit(bytes32 _commitment) external payable nonReentrant {\n require(!commitments[_commitment], \"The commitment has been submitted\");\n\n uint32 insertedIndex = _insert(_commitment);\n commitments[_commitment] = true;\n _processDeposit();\n\n emit Deposit(_commitment, insertedIndex, block.timestamp);\n }\n\n /** @dev this function is defined in a child contract */\n function _processDeposit() internal;\n\n /**\n @dev Withdraw a deposit from the contract. `proof` is a zkSNARK proof data, and input is an array of circuit public inputs\n `input` array consists of:\n - merkle root of all deposits in the contract\n - hash of unique deposit nullifier to prevent double spends\n - the recipient of funds\n - optional fee that goes to the transaction sender (usually a relay)\n */\n function withdraw(bytes calldata _proof, bytes32 _root, bytes32 _nullifierHash, address payable _recipient, address payable _relayer, uint256 _fee, uint256 _refund) external payable nonReentrant {\n require(_fee <= denomination, \"Fee exceeds transfer value\");\n require(!nullifierHashes[_nullifierHash], \"The note has been already spent\");\n require(isKnownRoot(_root), \"Cannot find your merkle root\"); // Make sure to use a recent one\n require(verifier.verifyProof(_proof, [uint256(_root), uint256(_nullifierHash), uint256(_recipient), uint256(_relayer), _fee, _refund]), \"Invalid withdraw proof\");\n\n nullifierHashes[_nullifierHash] = true;\n _processWithdraw(_recipient, _relayer, _fee, _refund, feeManager.feeTo());\n emit Withdrawal(_recipient, _nullifierHash, _relayer, _fee);\n }\n\n /** @dev this function is defined in a child contract */\n function _processWithdraw(address payable _recipient, address payable _relayer, uint256 _relayer_fee, uint256 _refund, address _feeTo) internal;\n\n /** @dev whether a note is already spent */\n function isSpent(bytes32 _nullifierHash) public view returns(bool) {\n return nullifierHashes[_nullifierHash];\n }\n\n /** @dev whether an array of notes is already spent */\n function isSpentArray(bytes32[] calldata _nullifierHashes) external view returns(bool[] memory spent) {\n spent = new bool[](_nullifierHashes.length);\n for(uint i = 0; i < _nullifierHashes.length; i++) {\n if (isSpent(_nullifierHashes[i])) {\n spent[i] = true;\n }\n }\n }\n\n /**\n @dev allow operator to update SNARK verification keys. This is needed to update keys after the final trusted setup ceremony is held.\n After that operator rights are supposed to be transferred to zero address\n */\n function updateVerifier(address _newVerifier) external onlyOperator {\n verifier = IVerifier(_newVerifier);\n }\n\n /** @dev operator can change his address */\n function changeOperator(address _newOperator) external onlyOperator {\n operator = _newOperator;\n }\n}\n", + "sourcePath": "/Users/brianli/dotfiles/tornado-core/contracts/Tornado.sol", + "ast": { + "absolutePath": "/Users/brianli/dotfiles/tornado-core/contracts/Tornado.sol", + "exportedSymbols": { + "IFeeManager": [ + 654 + ], + "IVerifier": [ + 648 + ], + "Tornado": [ + 970 + ] + }, + "id": 971, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 634, + "literals": [ + "solidity", + "0.5", + ".17" + ], + "nodeType": "PragmaDirective", + "src": "0:23:2" + }, + { + "absolutePath": "/Users/brianli/dotfiles/tornado-core/contracts/MerkleTreeWithHistory.sol", + "file": "./MerkleTreeWithHistory.sol", + "id": 635, + "nodeType": "ImportDirective", + "scope": 971, + "sourceUnit": 633, + "src": "25:37:2", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts/utils/ReentrancyGuard.sol", + "file": "@openzeppelin/contracts/utils/ReentrancyGuard.sol", + "id": 636, + "nodeType": "ImportDirective", + "scope": 971, + "sourceUnit": 1001, + "src": "63:59:2", + "symbolAliases": [], + "unitAlias": "" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": false, + "id": 648, + "linearizedBaseContracts": [ + 648 + ], + "name": "IVerifier", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": null, + "documentation": null, + "id": 647, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "verifyProof", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 643, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 638, + "name": "_proof", + "nodeType": "VariableDeclaration", + "scope": 647, + "src": "168:19:2", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 637, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "168:5:2", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 642, + "name": "_input", + "nodeType": "VariableDeclaration", + "scope": 647, + "src": "189:24:2", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$6_memory_ptr", + "typeString": "uint256[6]" + }, + "typeName": { + "baseType": { + "id": 639, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "189:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 641, + "length": { + "argumentTypes": null, + "hexValue": "36", + "id": 640, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "197:1:2", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_6_by_1", + "typeString": "int_const 6" + }, + "value": "6" + }, + "nodeType": "ArrayTypeName", + "src": "189:10:2", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$6_storage_ptr", + "typeString": "uint256[6]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "167:47:2" + }, + "returnParameters": { + "id": 646, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 645, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 647, + "src": "230:4:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 644, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "230:4:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "229:6:2" + }, + "scope": 648, + "src": "147:89:2", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + } + ], + "scope": 971, + "src": "124:114:2" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": false, + "id": 654, + "linearizedBaseContracts": [ + 654 + ], + "name": "IFeeManager", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": null, + "documentation": null, + "id": 653, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "feeTo", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 649, + "nodeType": "ParameterList", + "parameters": [], + "src": "279:2:2" + }, + "returnParameters": { + "id": 652, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 651, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 653, + "src": "305:7:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 650, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "305:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "304:9:2" + }, + "scope": 654, + "src": "265:49:2", + "stateMutability": "view", + "superFunction": null, + "visibility": "external" + } + ], + "scope": 971, + "src": "240:76:2" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 655, + "name": "MerkleTreeWithHistory", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 632, + "src": "338:21:2", + "typeDescriptions": { + "typeIdentifier": "t_contract$_MerkleTreeWithHistory_$632", + "typeString": "contract MerkleTreeWithHistory" + } + }, + "id": 656, + "nodeType": "InheritanceSpecifier", + "src": "338:21:2" + }, + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 657, + "name": "ReentrancyGuard", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1000, + "src": "361:15:2", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ReentrancyGuard_$1000", + "typeString": "contract ReentrancyGuard" + } + }, + "id": 658, + "nodeType": "InheritanceSpecifier", + "src": "361:15:2" + } + ], + "contractDependencies": [ + 632, + 1000 + ], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": false, + "id": 970, + "linearizedBaseContracts": [ + 970, + 1000, + 632 + ], + "name": "Tornado", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": false, + "id": 660, + "name": "denomination", + "nodeType": "VariableDeclaration", + "scope": 970, + "src": "381:27:2", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 659, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "381:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 664, + "name": "nullifierHashes", + "nodeType": "VariableDeclaration", + "scope": 970, + "src": "412:47:2", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", + "typeString": "mapping(bytes32 => bool)" + }, + "typeName": { + "id": 663, + "keyType": { + "id": 661, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "420:7:2", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "Mapping", + "src": "412:24:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", + "typeString": "mapping(bytes32 => bool)" + }, + "valueType": { + "id": 662, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "431:4:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 668, + "name": "commitments", + "nodeType": "VariableDeclaration", + "scope": 970, + "src": "554:43:2", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", + "typeString": "mapping(bytes32 => bool)" + }, + "typeName": { + "id": 667, + "keyType": { + "id": 665, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "562:7:2", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "Mapping", + "src": "554:24:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", + "typeString": "mapping(bytes32 => bool)" + }, + "valueType": { + "id": 666, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "573:4:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 670, + "name": "verifier", + "nodeType": "VariableDeclaration", + "scope": 970, + "src": "601:25:2", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IVerifier_$648", + "typeString": "contract IVerifier" + }, + "typeName": { + "contractScope": null, + "id": 669, + "name": "IVerifier", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 648, + "src": "601:9:2", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IVerifier_$648", + "typeString": "contract IVerifier" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 672, + "name": "feeManager", + "nodeType": "VariableDeclaration", + "scope": 970, + "src": "630:29:2", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IFeeManager_$654", + "typeString": "contract IFeeManager" + }, + "typeName": { + "contractScope": null, + "id": 671, + "name": "IFeeManager", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 654, + "src": "630:11:2", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IFeeManager_$654", + "typeString": "contract IFeeManager" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 674, + "name": "operator", + "nodeType": "VariableDeclaration", + "scope": 970, + "src": "819:23:2", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 673, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "819:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "public" + }, + { + "body": { + "id": 685, + "nodeType": "Block", + "src": "868:90:2", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 680, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 677, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1015, + "src": "882:3:2", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 678, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "882:10:2", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 679, + "name": "operator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 674, + "src": "896:8:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "882:22:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "4f6e6c79206f70657261746f722063616e2063616c6c20746869732066756e6374696f6e2e", + "id": 681, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "906:39:2", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_e8393660073679be7a6133571fe2ca8983a31a683c72e9055f401ac33a2efffc", + "typeString": "literal_string \"Only operator can call this function.\"" + }, + "value": "Only operator can call this function." + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_e8393660073679be7a6133571fe2ca8983a31a683c72e9055f401ac33a2efffc", + "typeString": "literal_string \"Only operator can call this function.\"" + } + ], + "id": 676, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1018, + 1019 + ], + "referencedDeclaration": 1019, + "src": "874:7:2", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 682, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "874:72:2", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 683, + "nodeType": "ExpressionStatement", + "src": "874:72:2" + }, + { + "id": 684, + "nodeType": "PlaceholderStatement", + "src": "952:1:2" + } + ] + }, + "documentation": null, + "id": 686, + "name": "onlyOperator", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 675, + "nodeType": "ParameterList", + "parameters": [], + "src": "868:0:2" + }, + "src": "846:112:2", + "visibility": "internal" + }, + { + "anonymous": false, + "documentation": null, + "id": 694, + "name": "Deposit", + "nodeType": "EventDefinition", + "parameters": { + "id": 693, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 688, + "indexed": true, + "name": "commitment", + "nodeType": "VariableDeclaration", + "scope": 694, + "src": "976:26:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 687, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "976:7:2", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 690, + "indexed": false, + "name": "leafIndex", + "nodeType": "VariableDeclaration", + "scope": 694, + "src": "1004:16:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 689, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "1004:6:2", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 692, + "indexed": false, + "name": "timestamp", + "nodeType": "VariableDeclaration", + "scope": 694, + "src": "1022:17:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 691, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1022:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "975:65:2" + }, + "src": "962:79:2" + }, + { + "anonymous": false, + "documentation": null, + "id": 704, + "name": "Withdrawal", + "nodeType": "EventDefinition", + "parameters": { + "id": 703, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 696, + "indexed": false, + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 704, + "src": "1061:10:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 695, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1061:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 698, + "indexed": false, + "name": "nullifierHash", + "nodeType": "VariableDeclaration", + "scope": 704, + "src": "1073:21:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 697, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1073:7:2", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 700, + "indexed": true, + "name": "relayer", + "nodeType": "VariableDeclaration", + "scope": 704, + "src": "1096:23:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 699, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1096:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 702, + "indexed": false, + "name": "fee", + "nodeType": "VariableDeclaration", + "scope": 704, + "src": "1121:11:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 701, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1121:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1060:73:2" + }, + "src": "1044:90:2" + }, + { + "body": { + "id": 743, + "nodeType": "Block", + "src": "1631:194:2", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 723, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 721, + "name": "_denomination", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 710, + "src": "1645:13:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 722, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1661:1:2", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "1645:17:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "64656e6f6d696e6174696f6e2073686f756c642062652067726561746572207468616e2030", + "id": 724, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1664:39:2", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_04818fb803bf7e7ff6c9059d97eae335b77b108931ead0a529924d35ccaf3fc8", + "typeString": "literal_string \"denomination should be greater than 0\"" + }, + "value": "denomination should be greater than 0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_04818fb803bf7e7ff6c9059d97eae335b77b108931ead0a529924d35ccaf3fc8", + "typeString": "literal_string \"denomination should be greater than 0\"" + } + ], + "id": 720, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1018, + 1019 + ], + "referencedDeclaration": 1019, + "src": "1637:7:2", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 725, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1637:67:2", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 726, + "nodeType": "ExpressionStatement", + "src": "1637:67:2" + }, + { + "expression": { + "argumentTypes": null, + "id": 729, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 727, + "name": "verifier", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 670, + "src": "1710:8:2", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IVerifier_$648", + "typeString": "contract IVerifier" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 728, + "name": "_verifier", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 706, + "src": "1721:9:2", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IVerifier_$648", + "typeString": "contract IVerifier" + } + }, + "src": "1710:20:2", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IVerifier_$648", + "typeString": "contract IVerifier" + } + }, + "id": 730, + "nodeType": "ExpressionStatement", + "src": "1710:20:2" + }, + { + "expression": { + "argumentTypes": null, + "id": 733, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 731, + "name": "feeManager", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 672, + "src": "1736:10:2", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IFeeManager_$654", + "typeString": "contract IFeeManager" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 732, + "name": "_feeManager", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 708, + "src": "1749:11:2", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IFeeManager_$654", + "typeString": "contract IFeeManager" + } + }, + "src": "1736:24:2", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IFeeManager_$654", + "typeString": "contract IFeeManager" + } + }, + "id": 734, + "nodeType": "ExpressionStatement", + "src": "1736:24:2" + }, + { + "expression": { + "argumentTypes": null, + "id": 737, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 735, + "name": "operator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 674, + "src": "1766:8:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 736, + "name": "_operator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 714, + "src": "1777:9:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "1766:20:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 738, + "nodeType": "ExpressionStatement", + "src": "1766:20:2" + }, + { + "expression": { + "argumentTypes": null, + "id": 741, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 739, + "name": "denomination", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 660, + "src": "1792:12:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 740, + "name": "_denomination", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 710, + "src": "1807:13:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1792:28:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 742, + "nodeType": "ExpressionStatement", + "src": "1792:28:2" + } + ] + }, + "documentation": "@dev The constructor\n@param _verifier the address of SNARK verifier for this contract\n@param _denomination transfer amount for each deposit\n@param _merkleTreeHeight the height of deposits' Merkle Tree\n@param _operator operator address (see operator comment above)", + "id": 744, + "implemented": true, + "kind": "constructor", + "modifiers": [ + { + "arguments": [ + { + "argumentTypes": null, + "id": 717, + "name": "_merkleTreeHeight", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 712, + "src": "1605:17:2", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + } + ], + "id": 718, + "modifierName": { + "argumentTypes": null, + "id": 716, + "name": "MerkleTreeWithHistory", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 632, + "src": "1583:21:2", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_MerkleTreeWithHistory_$632_$", + "typeString": "type(contract MerkleTreeWithHistory)" + } + }, + "nodeType": "ModifierInvocation", + "src": "1583:40:2" + } + ], + "name": "", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 715, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 706, + "name": "_verifier", + "nodeType": "VariableDeclaration", + "scope": 744, + "src": "1450:19:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IVerifier_$648", + "typeString": "contract IVerifier" + }, + "typeName": { + "contractScope": null, + "id": 705, + "name": "IVerifier", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 648, + "src": "1450:9:2", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IVerifier_$648", + "typeString": "contract IVerifier" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 708, + "name": "_feeManager", + "nodeType": "VariableDeclaration", + "scope": 744, + "src": "1475:23:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IFeeManager_$654", + "typeString": "contract IFeeManager" + }, + "typeName": { + "contractScope": null, + "id": 707, + "name": "IFeeManager", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 654, + "src": "1475:11:2", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IFeeManager_$654", + "typeString": "contract IFeeManager" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 710, + "name": "_denomination", + "nodeType": "VariableDeclaration", + "scope": 744, + "src": "1504:21:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 709, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1504:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 712, + "name": "_merkleTreeHeight", + "nodeType": "VariableDeclaration", + "scope": 744, + "src": "1531:24:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 711, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "1531:6:2", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 714, + "name": "_operator", + "nodeType": "VariableDeclaration", + "scope": 744, + "src": "1561:17:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 713, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1561:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1444:138:2" + }, + "returnParameters": { + "id": 719, + "nodeType": "ParameterList", + "parameters": [], + "src": "1631:0:2" + }, + "scope": 970, + "src": "1433:392:2", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 781, + "nodeType": "Block", + "src": "2141:256:2", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 755, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "2155:25:2", + "subExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 752, + "name": "commitments", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 668, + "src": "2156:11:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", + "typeString": "mapping(bytes32 => bool)" + } + }, + "id": 754, + "indexExpression": { + "argumentTypes": null, + "id": 753, + "name": "_commitment", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 746, + "src": "2168:11:2", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2156:24:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "54686520636f6d6d69746d656e7420686173206265656e207375626d6974746564", + "id": 756, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2182:35:2", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_ae5f231636554c1cb3bf839359e4dfbb338ccb221c7c5dbdf2da91ddc6e2ee6b", + "typeString": "literal_string \"The commitment has been submitted\"" + }, + "value": "The commitment has been submitted" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_ae5f231636554c1cb3bf839359e4dfbb338ccb221c7c5dbdf2da91ddc6e2ee6b", + "typeString": "literal_string \"The commitment has been submitted\"" + } + ], + "id": 751, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1018, + 1019 + ], + "referencedDeclaration": 1019, + "src": "2147:7:2", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 757, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2147:71:2", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 758, + "nodeType": "ExpressionStatement", + "src": "2147:71:2" + }, + { + "assignments": [ + 760 + ], + "declarations": [ + { + "constant": false, + "id": 760, + "name": "insertedIndex", + "nodeType": "VariableDeclaration", + "scope": 781, + "src": "2225:20:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 759, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "2225:6:2", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 764, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 762, + "name": "_commitment", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 746, + "src": "2256:11:2", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 761, + "name": "_insert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 574, + "src": "2248:7:2", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$returns$_t_uint32_$", + "typeString": "function (bytes32) returns (uint32)" + } + }, + "id": 763, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2248:20:2", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2225:43:2" + }, + { + "expression": { + "argumentTypes": null, + "id": 769, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 765, + "name": "commitments", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 668, + "src": "2274:11:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", + "typeString": "mapping(bytes32 => bool)" + } + }, + "id": 767, + "indexExpression": { + "argumentTypes": null, + "id": 766, + "name": "_commitment", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 746, + "src": "2286:11:2", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "2274:24:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 768, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2301:4:2", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "2274:31:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 770, + "nodeType": "ExpressionStatement", + "src": "2274:31:2" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 771, + "name": "_processDeposit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 785, + "src": "2311:15:2", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", + "typeString": "function ()" + } + }, + "id": 772, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2311:17:2", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 773, + "nodeType": "ExpressionStatement", + "src": "2311:17:2" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 775, + "name": "_commitment", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 746, + "src": "2348:11:2", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "id": 776, + "name": "insertedIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 760, + "src": "2361:13:2", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 777, + "name": "block", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1005, + "src": "2376:5:2", + "typeDescriptions": { + "typeIdentifier": "t_magic_block", + "typeString": "block" + } + }, + "id": 778, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "timestamp", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2376:15:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 774, + "name": "Deposit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 694, + "src": "2340:7:2", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_uint32_$_t_uint256_$returns$__$", + "typeString": "function (bytes32,uint32,uint256)" + } + }, + "id": 779, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2340:52:2", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 780, + "nodeType": "EmitStatement", + "src": "2335:57:2" + } + ] + }, + "documentation": "@dev Deposit funds into the contract. The caller must send (for ETH) or approve (for ERC20) value equal to or `denomination` of this instance.\n@param _commitment the note commitment, which is PedersenHash(nullifier + secret)", + "id": 782, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 749, + "modifierName": { + "argumentTypes": null, + "id": 748, + "name": "nonReentrant", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 999, + "src": "2128:12:2", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "2128:12:2" + } + ], + "name": "deposit", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 747, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 746, + "name": "_commitment", + "nodeType": "VariableDeclaration", + "scope": 782, + "src": "2090:19:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 745, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "2090:7:2", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2089:21:2" + }, + "returnParameters": { + "id": 750, + "nodeType": "ParameterList", + "parameters": [], + "src": "2141:0:2" + }, + "scope": 970, + "src": "2073:324:2", + "stateMutability": "payable", + "superFunction": null, + "visibility": "external" + }, + { + "body": null, + "documentation": "@dev this function is defined in a child contract ", + "id": 785, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "_processDeposit", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 783, + "nodeType": "ParameterList", + "parameters": [], + "src": "2484:2:2" + }, + "returnParameters": { + "id": 784, + "nodeType": "ParameterList", + "parameters": [], + "src": "2495:0:2" + }, + "scope": 970, + "src": "2460:36:2", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 872, + "nodeType": "Block", + "src": "3088:606:2", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 807, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 805, + "name": "_fee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 797, + "src": "3102:4:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "id": 806, + "name": "denomination", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 660, + "src": "3110:12:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3102:20:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "4665652065786365656473207472616e736665722076616c7565", + "id": 808, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3124:28:2", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_2ce218df547d416f80ea8a5deadaf9453d23523ffa5f2e880a48adfdb4053a9c", + "typeString": "literal_string \"Fee exceeds transfer value\"" + }, + "value": "Fee exceeds transfer value" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_2ce218df547d416f80ea8a5deadaf9453d23523ffa5f2e880a48adfdb4053a9c", + "typeString": "literal_string \"Fee exceeds transfer value\"" + } + ], + "id": 804, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1018, + 1019 + ], + "referencedDeclaration": 1019, + "src": "3094:7:2", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 809, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3094:59:2", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 810, + "nodeType": "ExpressionStatement", + "src": "3094:59:2" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 815, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "3167:32:2", + "subExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 812, + "name": "nullifierHashes", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 664, + "src": "3168:15:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", + "typeString": "mapping(bytes32 => bool)" + } + }, + "id": 814, + "indexExpression": { + "argumentTypes": null, + "id": 813, + "name": "_nullifierHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 791, + "src": "3184:14:2", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3168:31:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "546865206e6f746520686173206265656e20616c7265616479207370656e74", + "id": 816, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3201:33:2", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_a1bef92d7a18b1c6975dc8de68df6140a52afea05a2c6c91da2b1562c617e896", + "typeString": "literal_string \"The note has been already spent\"" + }, + "value": "The note has been already spent" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_a1bef92d7a18b1c6975dc8de68df6140a52afea05a2c6c91da2b1562c617e896", + "typeString": "literal_string \"The note has been already spent\"" + } + ], + "id": 811, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1018, + 1019 + ], + "referencedDeclaration": 1019, + "src": "3159:7:2", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 817, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3159:76:2", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 818, + "nodeType": "ExpressionStatement", + "src": "3159:76:2" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 821, + "name": "_root", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 789, + "src": "3261:5:2", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 820, + "name": "isKnownRoot", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 621, + "src": "3249:11:2", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_bool_$", + "typeString": "function (bytes32) view returns (bool)" + } + }, + "id": 822, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3249:18:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "43616e6e6f742066696e6420796f7572206d65726b6c6520726f6f74", + "id": 823, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3269:30:2", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_2a69086763073955418d2fd7dfee3d2f1fbc5b21047a216b7855d3f313d8e204", + "typeString": "literal_string \"Cannot find your merkle root\"" + }, + "value": "Cannot find your merkle root" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_2a69086763073955418d2fd7dfee3d2f1fbc5b21047a216b7855d3f313d8e204", + "typeString": "literal_string \"Cannot find your merkle root\"" + } + ], + "id": 819, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1018, + 1019 + ], + "referencedDeclaration": 1019, + "src": "3241:7:2", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 824, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3241:59:2", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 825, + "nodeType": "ExpressionStatement", + "src": "3241:59:2" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 829, + "name": "_proof", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 787, + "src": "3368:6:2", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes calldata" + } + }, + { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 831, + "name": "_root", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 789, + "src": "3385:5:2", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 830, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3377:7:2", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": "uint256" + }, + "id": 832, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3377:14:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 834, + "name": "_nullifierHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 791, + "src": "3401:14:2", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 833, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3393:7:2", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": "uint256" + }, + "id": 835, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3393:23:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 837, + "name": "_recipient", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 793, + "src": "3426:10:2", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "id": 836, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3418:7:2", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": "uint256" + }, + "id": 838, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3418:19:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 840, + "name": "_relayer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 795, + "src": "3447:8:2", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "id": 839, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3439:7:2", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": "uint256" + }, + "id": 841, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3439:17:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 842, + "name": "_fee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 797, + "src": "3458:4:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 843, + "name": "_refund", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 799, + "src": "3464:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 844, + "isConstant": false, + "isInlineArray": true, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "3376:96:2", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$6_memory_ptr", + "typeString": "uint256[6] memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes calldata" + }, + { + "typeIdentifier": "t_array$_t_uint256_$6_memory_ptr", + "typeString": "uint256[6] memory" + } + ], + "expression": { + "argumentTypes": null, + "id": 827, + "name": "verifier", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 670, + "src": "3347:8:2", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IVerifier_$648", + "typeString": "contract IVerifier" + } + }, + "id": 828, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "verifyProof", + "nodeType": "MemberAccess", + "referencedDeclaration": 647, + "src": "3347:20:2", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_bytes_memory_ptr_$_t_array$_t_uint256_$6_memory_ptr_$returns$_t_bool_$", + "typeString": "function (bytes memory,uint256[6] memory) external returns (bool)" + } + }, + "id": 845, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3347:126:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "496e76616c69642077697468647261772070726f6f66", + "id": 846, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3475:24:2", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_7021ea58137dba96e572e94936410b0b0e4cbc344e1ab2ee7f47660768b81ff4", + "typeString": "literal_string \"Invalid withdraw proof\"" + }, + "value": "Invalid withdraw proof" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_7021ea58137dba96e572e94936410b0b0e4cbc344e1ab2ee7f47660768b81ff4", + "typeString": "literal_string \"Invalid withdraw proof\"" + } + ], + "id": 826, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1018, + 1019 + ], + "referencedDeclaration": 1019, + "src": "3339:7:2", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 847, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3339:161:2", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 848, + "nodeType": "ExpressionStatement", + "src": "3339:161:2" + }, + { + "expression": { + "argumentTypes": null, + "id": 853, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 849, + "name": "nullifierHashes", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 664, + "src": "3507:15:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", + "typeString": "mapping(bytes32 => bool)" + } + }, + "id": 851, + "indexExpression": { + "argumentTypes": null, + "id": 850, + "name": "_nullifierHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 791, + "src": "3523:14:2", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "3507:31:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 852, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3541:4:2", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "3507:38:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 854, + "nodeType": "ExpressionStatement", + "src": "3507:38:2" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 856, + "name": "_recipient", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 793, + "src": "3568:10:2", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 857, + "name": "_relayer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 795, + "src": "3580:8:2", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 858, + "name": "_fee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 797, + "src": "3590:4:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 859, + "name": "_refund", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 799, + "src": "3596:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "id": 860, + "name": "feeManager", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 672, + "src": "3605:10:2", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IFeeManager_$654", + "typeString": "contract IFeeManager" + } + }, + "id": 861, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "feeTo", + "nodeType": "MemberAccess", + "referencedDeclaration": 653, + "src": "3605:16:2", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_address_$", + "typeString": "function () view external returns (address)" + } + }, + "id": 862, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3605:18:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 855, + "name": "_processWithdraw", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 886, + "src": "3551:16:2", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_payable_$_t_address_payable_$_t_uint256_$_t_uint256_$_t_address_$returns$__$", + "typeString": "function (address payable,address payable,uint256,uint256,address)" + } + }, + "id": 863, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3551:73:2", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 864, + "nodeType": "ExpressionStatement", + "src": "3551:73:2" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 866, + "name": "_recipient", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 793, + "src": "3646:10:2", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 867, + "name": "_nullifierHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 791, + "src": "3658:14:2", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "id": 868, + "name": "_relayer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 795, + "src": "3674:8:2", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 869, + "name": "_fee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 797, + "src": "3684:4:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 865, + "name": "Withdrawal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 704, + "src": "3635:10:2", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_bytes32_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,bytes32,address,uint256)" + } + }, + "id": 870, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3635:54:2", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 871, + "nodeType": "EmitStatement", + "src": "3630:59:2" + } + ] + }, + "documentation": "@dev Withdraw a deposit from the contract. `proof` is a zkSNARK proof data, and input is an array of circuit public inputs\n`input` array consists of:\n- merkle root of all deposits in the contract\n- hash of unique deposit nullifier to prevent double spends\n- the recipient of funds\n- optional fee that goes to the transaction sender (usually a relay)", + "id": 873, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 802, + "modifierName": { + "argumentTypes": null, + "id": 801, + "name": "nonReentrant", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 999, + "src": "3075:12:2", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "3075:12:2" + } + ], + "name": "withdraw", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 800, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 787, + "name": "_proof", + "nodeType": "VariableDeclaration", + "scope": 873, + "src": "2911:21:2", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 786, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "2911:5:2", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 789, + "name": "_root", + "nodeType": "VariableDeclaration", + "scope": 873, + "src": "2934:13:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 788, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "2934:7:2", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 791, + "name": "_nullifierHash", + "nodeType": "VariableDeclaration", + "scope": 873, + "src": "2949:22:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 790, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "2949:7:2", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 793, + "name": "_recipient", + "nodeType": "VariableDeclaration", + "scope": 873, + "src": "2973:26:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + "typeName": { + "id": 792, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2973:15:2", + "stateMutability": "payable", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 795, + "name": "_relayer", + "nodeType": "VariableDeclaration", + "scope": 873, + "src": "3001:24:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + "typeName": { + "id": 794, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3001:15:2", + "stateMutability": "payable", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 797, + "name": "_fee", + "nodeType": "VariableDeclaration", + "scope": 873, + "src": "3027:12:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 796, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3027:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 799, + "name": "_refund", + "nodeType": "VariableDeclaration", + "scope": 873, + "src": "3041:15:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 798, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3041:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2910:147:2" + }, + "returnParameters": { + "id": 803, + "nodeType": "ParameterList", + "parameters": [], + "src": "3088:0:2" + }, + "scope": 970, + "src": "2893:801:2", + "stateMutability": "payable", + "superFunction": null, + "visibility": "external" + }, + { + "body": null, + "documentation": "@dev this function is defined in a child contract ", + "id": 886, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "_processWithdraw", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 884, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 875, + "name": "_recipient", + "nodeType": "VariableDeclaration", + "scope": 886, + "src": "3783:26:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + "typeName": { + "id": 874, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3783:15:2", + "stateMutability": "payable", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 877, + "name": "_relayer", + "nodeType": "VariableDeclaration", + "scope": 886, + "src": "3811:24:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + "typeName": { + "id": 876, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3811:15:2", + "stateMutability": "payable", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 879, + "name": "_relayer_fee", + "nodeType": "VariableDeclaration", + "scope": 886, + "src": "3837:20:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 878, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3837:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 881, + "name": "_refund", + "nodeType": "VariableDeclaration", + "scope": 886, + "src": "3859:15:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 880, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3859:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 883, + "name": "_feeTo", + "nodeType": "VariableDeclaration", + "scope": 886, + "src": "3876:14:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 882, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3876:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3782:109:2" + }, + "returnParameters": { + "id": 885, + "nodeType": "ParameterList", + "parameters": [], + "src": "3900:0:2" + }, + "scope": 970, + "src": "3757:144:2", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 897, + "nodeType": "Block", + "src": "4018:49:2", + "statements": [ + { + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 893, + "name": "nullifierHashes", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 664, + "src": "4031:15:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", + "typeString": "mapping(bytes32 => bool)" + } + }, + "id": 895, + "indexExpression": { + "argumentTypes": null, + "id": 894, + "name": "_nullifierHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 888, + "src": "4047:14:2", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4031:31:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 892, + "id": 896, + "nodeType": "Return", + "src": "4024:38:2" + } + ] + }, + "documentation": "@dev whether a note is already spent ", + "id": 898, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "isSpent", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 889, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 888, + "name": "_nullifierHash", + "nodeType": "VariableDeclaration", + "scope": 898, + "src": "3968:22:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 887, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "3968:7:2", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3967:24:2" + }, + "returnParameters": { + "id": 892, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 891, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 898, + "src": "4012:4:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 890, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "4012:4:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4011:6:2" + }, + "scope": 970, + "src": "3951:116:2", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 942, + "nodeType": "Block", + "src": "4230:191:2", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 914, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 907, + "name": "spent", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 905, + "src": "4236:5:2", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bool_$dyn_memory_ptr", + "typeString": "bool[] memory" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 911, + "name": "_nullifierHashes", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 901, + "src": "4255:16:2", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr", + "typeString": "bytes32[] calldata" + } + }, + "id": 912, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "4255:23:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 910, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "NewExpression", + "src": "4244:10:2", + "typeDescriptions": { + "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_bool_$dyn_memory_$", + "typeString": "function (uint256) pure returns (bool[] memory)" + }, + "typeName": { + "baseType": { + "id": 908, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "4248:4:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 909, + "length": null, + "nodeType": "ArrayTypeName", + "src": "4248:6:2", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bool_$dyn_storage_ptr", + "typeString": "bool[]" + } + } + }, + "id": 913, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4244:35:2", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bool_$dyn_memory", + "typeString": "bool[] memory" + } + }, + "src": "4236:43:2", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bool_$dyn_memory_ptr", + "typeString": "bool[] memory" + } + }, + "id": 915, + "nodeType": "ExpressionStatement", + "src": "4236:43:2" + }, + { + "body": { + "id": 940, + "nodeType": "Block", + "src": "4335:82:2", + "statements": [ + { + "condition": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 928, + "name": "_nullifierHashes", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 901, + "src": "4355:16:2", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr", + "typeString": "bytes32[] calldata" + } + }, + "id": 930, + "indexExpression": { + "argumentTypes": null, + "id": 929, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 917, + "src": "4372:1:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4355:19:2", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 927, + "name": "isSpent", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 898, + "src": "4347:7:2", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_bool_$", + "typeString": "function (bytes32) view returns (bool)" + } + }, + "id": 931, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4347:28:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 939, + "nodeType": "IfStatement", + "src": "4343:68:2", + "trueBody": { + "id": 938, + "nodeType": "Block", + "src": "4377:34:2", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 936, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 932, + "name": "spent", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 905, + "src": "4387:5:2", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bool_$dyn_memory_ptr", + "typeString": "bool[] memory" + } + }, + "id": 934, + "indexExpression": { + "argumentTypes": null, + "id": 933, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 917, + "src": "4393:1:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "4387:8:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 935, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4398:4:2", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "4387:15:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 937, + "nodeType": "ExpressionStatement", + "src": "4387:15:2" + } + ] + } + } + ] + }, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 923, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 920, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 917, + "src": "4301:1:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 921, + "name": "_nullifierHashes", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 901, + "src": "4305:16:2", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr", + "typeString": "bytes32[] calldata" + } + }, + "id": 922, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "4305:23:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4301:27:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 941, + "initializationExpression": { + "assignments": [ + 917 + ], + "declarations": [ + { + "constant": false, + "id": 917, + "name": "i", + "nodeType": "VariableDeclaration", + "scope": 941, + "src": "4289:6:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 916, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4289:4:2", + "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": "4298:1:2", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "4289:10:2" + }, + "loopExpression": { + "expression": { + "argumentTypes": null, + "id": 925, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "4330:3:2", + "subExpression": { + "argumentTypes": null, + "id": 924, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 917, + "src": "4330:1:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 926, + "nodeType": "ExpressionStatement", + "src": "4330:3:2" + }, + "nodeType": "ForStatement", + "src": "4285:132:2" + } + ] + }, + "documentation": "@dev whether an array of notes is already spent ", + "id": 943, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "isSpentArray", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 902, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 901, + "name": "_nullifierHashes", + "nodeType": "VariableDeclaration", + "scope": 943, + "src": "4150:35:2", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr", + "typeString": "bytes32[]" + }, + "typeName": { + "baseType": { + "id": 899, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "4150:7:2", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "id": 900, + "length": null, + "nodeType": "ArrayTypeName", + "src": "4150:9:2", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", + "typeString": "bytes32[]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4149:37:2" + }, + "returnParameters": { + "id": 906, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 905, + "name": "spent", + "nodeType": "VariableDeclaration", + "scope": 943, + "src": "4209:19:2", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bool_$dyn_memory_ptr", + "typeString": "bool[]" + }, + "typeName": { + "baseType": { + "id": 903, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "4209:4:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 904, + "length": null, + "nodeType": "ArrayTypeName", + "src": "4209:6:2", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bool_$dyn_storage_ptr", + "typeString": "bool[]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4208:21:2" + }, + "scope": 970, + "src": "4128:293:2", + "stateMutability": "view", + "superFunction": null, + "visibility": "external" + }, + { + "body": { + "id": 956, + "nodeType": "Block", + "src": "4719:45:2", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 954, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 950, + "name": "verifier", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 670, + "src": "4725:8:2", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IVerifier_$648", + "typeString": "contract IVerifier" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 952, + "name": "_newVerifier", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 945, + "src": "4746:12:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 951, + "name": "IVerifier", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 648, + "src": "4736:9:2", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IVerifier_$648_$", + "typeString": "type(contract IVerifier)" + } + }, + "id": 953, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4736:23:2", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IVerifier_$648", + "typeString": "contract IVerifier" + } + }, + "src": "4725:34:2", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IVerifier_$648", + "typeString": "contract IVerifier" + } + }, + "id": 955, + "nodeType": "ExpressionStatement", + "src": "4725:34:2" + } + ] + }, + "documentation": "@dev allow operator to update SNARK verification keys. This is needed to update keys after the final trusted setup ceremony is held.\nAfter that operator rights are supposed to be transferred to zero address", + "id": 957, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 948, + "modifierName": { + "argumentTypes": null, + "id": 947, + "name": "onlyOperator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 686, + "src": "4706:12:2", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "4706:12:2" + } + ], + "name": "updateVerifier", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 946, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 945, + "name": "_newVerifier", + "nodeType": "VariableDeclaration", + "scope": 957, + "src": "4675:20:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 944, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4675:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4674:22:2" + }, + "returnParameters": { + "id": 949, + "nodeType": "ParameterList", + "parameters": [], + "src": "4719:0:2" + }, + "scope": 970, + "src": "4651:113:2", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": { + "id": 968, + "nodeType": "Block", + "src": "4882:34:2", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 966, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 964, + "name": "operator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 674, + "src": "4888:8:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 965, + "name": "_newOperator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 959, + "src": "4899:12:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "4888:23:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 967, + "nodeType": "ExpressionStatement", + "src": "4888:23:2" + } + ] + }, + "documentation": "@dev operator can change his address ", + "id": 969, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 962, + "modifierName": { + "argumentTypes": null, + "id": 961, + "name": "onlyOperator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 686, + "src": "4869:12:2", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "4869:12:2" + } + ], + "name": "changeOperator", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 960, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 959, + "name": "_newOperator", + "nodeType": "VariableDeclaration", + "scope": 969, + "src": "4838:20:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 958, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4838:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4837:22:2" + }, + "returnParameters": { + "id": 963, + "nodeType": "ParameterList", + "parameters": [], + "src": "4882:0:2" + }, + "scope": 970, + "src": "4814:102:2", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + } + ], + "scope": 971, + "src": "318:4600:2" + } + ], + "src": "0:4919:2" + }, + "legacyAST": { + "attributes": { + "absolutePath": "/Users/brianli/dotfiles/tornado-core/contracts/Tornado.sol", + "exportedSymbols": { + "IFeeManager": [ + 654 + ], + "IVerifier": [ + 648 + ], + "Tornado": [ + 970 + ] + } + }, + "children": [ + { + "attributes": { + "literals": [ + "solidity", + "0.5", + ".17" + ] + }, + "id": 634, + "name": "PragmaDirective", + "src": "0:23:2" + }, + { + "attributes": { + "SourceUnit": 633, + "absolutePath": "/Users/brianli/dotfiles/tornado-core/contracts/MerkleTreeWithHistory.sol", + "file": "./MerkleTreeWithHistory.sol", + "scope": 971, + "symbolAliases": [ + null + ], + "unitAlias": "" + }, + "id": 635, + "name": "ImportDirective", + "src": "25:37:2" + }, + { + "attributes": { + "SourceUnit": 1001, + "absolutePath": "@openzeppelin/contracts/utils/ReentrancyGuard.sol", + "file": "@openzeppelin/contracts/utils/ReentrancyGuard.sol", + "scope": 971, + "symbolAliases": [ + null + ], + "unitAlias": "" + }, + "id": 636, + "name": "ImportDirective", + "src": "63:59:2" + }, + { + "attributes": { + "baseContracts": [ + null + ], + "contractDependencies": [ + null + ], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": false, + "linearizedBaseContracts": [ + 648 + ], + "name": "IVerifier", + "scope": 971 + }, + "children": [ + { + "attributes": { + "body": null, + "documentation": null, + "implemented": false, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "verifyProof", + "scope": 648, + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "name": "_proof", + "scope": 647, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 637, + "name": "ElementaryTypeName", + "src": "168:5:2" + } + ], + "id": 638, + "name": "VariableDeclaration", + "src": "168:19:2" + }, + { + "attributes": { + "constant": false, + "name": "_input", + "scope": 647, + "stateVariable": false, + "storageLocation": "memory", + "type": "uint256[6]", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "type": "uint256[6]" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 639, + "name": "ElementaryTypeName", + "src": "189:7:2" + }, + { + "attributes": { + "argumentTypes": null, + "hexvalue": "36", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "number", + "type": "int_const 6", + "value": "6" + }, + "id": 640, + "name": "Literal", + "src": "197:1:2" + } + ], + "id": 641, + "name": "ArrayTypeName", + "src": "189:10:2" + } + ], + "id": 642, + "name": "VariableDeclaration", + "src": "189:24:2" + } + ], + "id": 643, + "name": "ParameterList", + "src": "167:47:2" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "name": "", + "scope": 647, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 644, + "name": "ElementaryTypeName", + "src": "230:4:2" + } + ], + "id": 645, + "name": "VariableDeclaration", + "src": "230:4:2" + } + ], + "id": 646, + "name": "ParameterList", + "src": "229:6:2" + } + ], + "id": 647, + "name": "FunctionDefinition", + "src": "147:89:2" + } + ], + "id": 648, + "name": "ContractDefinition", + "src": "124:114:2" + }, + { + "attributes": { + "baseContracts": [ + null + ], + "contractDependencies": [ + null + ], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": false, + "linearizedBaseContracts": [ + 654 + ], + "name": "IFeeManager", + "scope": 971 + }, + "children": [ + { + "attributes": { + "body": null, + "documentation": null, + "implemented": false, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "feeTo", + "scope": 654, + "stateMutability": "view", + "superFunction": null, + "visibility": "external" + }, + "children": [ + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 649, + "name": "ParameterList", + "src": "279:2:2" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "name": "", + "scope": 653, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 650, + "name": "ElementaryTypeName", + "src": "305:7:2" + } + ], + "id": 651, + "name": "VariableDeclaration", + "src": "305:7:2" + } + ], + "id": 652, + "name": "ParameterList", + "src": "304:9:2" + } + ], + "id": 653, + "name": "FunctionDefinition", + "src": "265:49:2" + } + ], + "id": 654, + "name": "ContractDefinition", + "src": "240:76:2" + }, + { + "attributes": { + "contractDependencies": [ + 632, + 1000 + ], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": false, + "linearizedBaseContracts": [ + 970, + 1000, + 632 + ], + "name": "Tornado", + "scope": 971 + }, + "children": [ + { + "attributes": { + "arguments": null + }, + "children": [ + { + "attributes": { + "contractScope": null, + "name": "MerkleTreeWithHistory", + "referencedDeclaration": 632, + "type": "contract MerkleTreeWithHistory" + }, + "id": 655, + "name": "UserDefinedTypeName", + "src": "338:21:2" + } + ], + "id": 656, + "name": "InheritanceSpecifier", + "src": "338:21:2" + }, + { + "attributes": { + "arguments": null + }, + "children": [ + { + "attributes": { + "contractScope": null, + "name": "ReentrancyGuard", + "referencedDeclaration": 1000, + "type": "contract ReentrancyGuard" + }, + "id": 657, + "name": "UserDefinedTypeName", + "src": "361:15:2" + } + ], + "id": 658, + "name": "InheritanceSpecifier", + "src": "361:15:2" + }, + { + "attributes": { + "constant": false, + "name": "denomination", + "scope": 970, + "stateVariable": true, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 659, + "name": "ElementaryTypeName", + "src": "381:7:2" + } + ], + "id": 660, + "name": "VariableDeclaration", + "src": "381:27:2" + }, + { + "attributes": { + "constant": false, + "name": "nullifierHashes", + "scope": 970, + "stateVariable": true, + "storageLocation": "default", + "type": "mapping(bytes32 => bool)", + "value": null, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "type": "mapping(bytes32 => bool)" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 661, + "name": "ElementaryTypeName", + "src": "420:7:2" + }, + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 662, + "name": "ElementaryTypeName", + "src": "431:4:2" + } + ], + "id": 663, + "name": "Mapping", + "src": "412:24:2" + } + ], + "id": 664, + "name": "VariableDeclaration", + "src": "412:47:2" + }, + { + "attributes": { + "constant": false, + "name": "commitments", + "scope": 970, + "stateVariable": true, + "storageLocation": "default", + "type": "mapping(bytes32 => bool)", + "value": null, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "type": "mapping(bytes32 => bool)" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 665, + "name": "ElementaryTypeName", + "src": "562:7:2" + }, + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 666, + "name": "ElementaryTypeName", + "src": "573:4:2" + } + ], + "id": 667, + "name": "Mapping", + "src": "554:24:2" + } + ], + "id": 668, + "name": "VariableDeclaration", + "src": "554:43:2" + }, + { + "attributes": { + "constant": false, + "name": "verifier", + "scope": 970, + "stateVariable": true, + "storageLocation": "default", + "type": "contract IVerifier", + "value": null, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "contractScope": null, + "name": "IVerifier", + "referencedDeclaration": 648, + "type": "contract IVerifier" + }, + "id": 669, + "name": "UserDefinedTypeName", + "src": "601:9:2" + } + ], + "id": 670, + "name": "VariableDeclaration", + "src": "601:25:2" + }, + { + "attributes": { + "constant": false, + "name": "feeManager", + "scope": 970, + "stateVariable": true, + "storageLocation": "default", + "type": "contract IFeeManager", + "value": null, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "contractScope": null, + "name": "IFeeManager", + "referencedDeclaration": 654, + "type": "contract IFeeManager" + }, + "id": 671, + "name": "UserDefinedTypeName", + "src": "630:11:2" + } + ], + "id": 672, + "name": "VariableDeclaration", + "src": "630:29:2" + }, + { + "attributes": { + "constant": false, + "name": "operator", + "scope": 970, + "stateVariable": true, + "storageLocation": "default", + "type": "address", + "value": null, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 673, + "name": "ElementaryTypeName", + "src": "819:7:2" + } + ], + "id": 674, + "name": "VariableDeclaration", + "src": "819:23:2" + }, + { + "attributes": { + "documentation": null, + "name": "onlyOperator", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 675, + "name": "ParameterList", + "src": "868:0:2" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_e8393660073679be7a6133571fe2ca8983a31a683c72e9055f401ac33a2efffc", + "typeString": "literal_string \"Only operator can call this function.\"" + } + ], + "overloadedDeclarations": [ + 1018, + 1019 + ], + "referencedDeclaration": 1019, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 676, + "name": "Identifier", + "src": "874:7:2" + }, + { + "attributes": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "==", + "type": "bool" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "sender", + "referencedDeclaration": null, + "type": "address payable" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1015, + "type": "msg", + "value": "msg" + }, + "id": 677, + "name": "Identifier", + "src": "882:3:2" + } + ], + "id": 678, + "name": "MemberAccess", + "src": "882:10:2" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 674, + "type": "address", + "value": "operator" + }, + "id": 679, + "name": "Identifier", + "src": "896:8:2" + } + ], + "id": 680, + "name": "BinaryOperation", + "src": "882:22:2" + }, + { + "attributes": { + "argumentTypes": null, + "hexvalue": "4f6e6c79206f70657261746f722063616e2063616c6c20746869732066756e6374696f6e2e", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "string", + "type": "literal_string \"Only operator can call this function.\"", + "value": "Only operator can call this function." + }, + "id": 681, + "name": "Literal", + "src": "906:39:2" + } + ], + "id": 682, + "name": "FunctionCall", + "src": "874:72:2" + } + ], + "id": 683, + "name": "ExpressionStatement", + "src": "874:72:2" + }, + { + "id": 684, + "name": "PlaceholderStatement", + "src": "952:1:2" + } + ], + "id": 685, + "name": "Block", + "src": "868:90:2" + } + ], + "id": 686, + "name": "ModifierDefinition", + "src": "846:112:2" + }, + { + "attributes": { + "anonymous": false, + "documentation": null, + "name": "Deposit" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "indexed": true, + "name": "commitment", + "scope": 694, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 687, + "name": "ElementaryTypeName", + "src": "976:7:2" + } + ], + "id": 688, + "name": "VariableDeclaration", + "src": "976:26:2" + }, + { + "attributes": { + "constant": false, + "indexed": false, + "name": "leafIndex", + "scope": 694, + "stateVariable": false, + "storageLocation": "default", + "type": "uint32", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint32", + "type": "uint32" + }, + "id": 689, + "name": "ElementaryTypeName", + "src": "1004:6:2" + } + ], + "id": 690, + "name": "VariableDeclaration", + "src": "1004:16:2" + }, + { + "attributes": { + "constant": false, + "indexed": false, + "name": "timestamp", + "scope": 694, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 691, + "name": "ElementaryTypeName", + "src": "1022:7:2" + } + ], + "id": 692, + "name": "VariableDeclaration", + "src": "1022:17:2" + } + ], + "id": 693, + "name": "ParameterList", + "src": "975:65:2" + } + ], + "id": 694, + "name": "EventDefinition", + "src": "962:79:2" + }, + { + "attributes": { + "anonymous": false, + "documentation": null, + "name": "Withdrawal" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "indexed": false, + "name": "to", + "scope": 704, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 695, + "name": "ElementaryTypeName", + "src": "1061:7:2" + } + ], + "id": 696, + "name": "VariableDeclaration", + "src": "1061:10:2" + }, + { + "attributes": { + "constant": false, + "indexed": false, + "name": "nullifierHash", + "scope": 704, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 697, + "name": "ElementaryTypeName", + "src": "1073:7:2" + } + ], + "id": 698, + "name": "VariableDeclaration", + "src": "1073:21:2" + }, + { + "attributes": { + "constant": false, + "indexed": true, + "name": "relayer", + "scope": 704, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 699, + "name": "ElementaryTypeName", + "src": "1096:7:2" + } + ], + "id": 700, + "name": "VariableDeclaration", + "src": "1096:23:2" + }, + { + "attributes": { + "constant": false, + "indexed": false, + "name": "fee", + "scope": 704, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 701, + "name": "ElementaryTypeName", + "src": "1121:7:2" + } + ], + "id": 702, + "name": "VariableDeclaration", + "src": "1121:11:2" + } + ], + "id": 703, + "name": "ParameterList", + "src": "1060:73:2" + } + ], + "id": 704, + "name": "EventDefinition", + "src": "1044:90:2" + }, + { + "attributes": { + "documentation": "@dev The constructor\n@param _verifier the address of SNARK verifier for this contract\n@param _denomination transfer amount for each deposit\n@param _merkleTreeHeight the height of deposits' Merkle Tree\n@param _operator operator address (see operator comment above)", + "implemented": true, + "isConstructor": true, + "kind": "constructor", + "name": "", + "scope": 970, + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "name": "_verifier", + "scope": 744, + "stateVariable": false, + "storageLocation": "default", + "type": "contract IVerifier", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "contractScope": null, + "name": "IVerifier", + "referencedDeclaration": 648, + "type": "contract IVerifier" + }, + "id": 705, + "name": "UserDefinedTypeName", + "src": "1450:9:2" + } + ], + "id": 706, + "name": "VariableDeclaration", + "src": "1450:19:2" + }, + { + "attributes": { + "constant": false, + "name": "_feeManager", + "scope": 744, + "stateVariable": false, + "storageLocation": "default", + "type": "contract IFeeManager", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "contractScope": null, + "name": "IFeeManager", + "referencedDeclaration": 654, + "type": "contract IFeeManager" + }, + "id": 707, + "name": "UserDefinedTypeName", + "src": "1475:11:2" + } + ], + "id": 708, + "name": "VariableDeclaration", + "src": "1475:23:2" + }, + { + "attributes": { + "constant": false, + "name": "_denomination", + "scope": 744, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 709, + "name": "ElementaryTypeName", + "src": "1504:7:2" + } + ], + "id": 710, + "name": "VariableDeclaration", + "src": "1504:21:2" + }, + { + "attributes": { + "constant": false, + "name": "_merkleTreeHeight", + "scope": 744, + "stateVariable": false, + "storageLocation": "default", + "type": "uint32", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint32", + "type": "uint32" + }, + "id": 711, + "name": "ElementaryTypeName", + "src": "1531:6:2" + } + ], + "id": 712, + "name": "VariableDeclaration", + "src": "1531:24:2" + }, + { + "attributes": { + "constant": false, + "name": "_operator", + "scope": 744, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 713, + "name": "ElementaryTypeName", + "src": "1561:7:2" + } + ], + "id": 714, + "name": "VariableDeclaration", + "src": "1561:17:2" + } + ], + "id": 715, + "name": "ParameterList", + "src": "1444:138:2" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 719, + "name": "ParameterList", + "src": "1631:0:2" + }, + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 632, + "type": "type(contract MerkleTreeWithHistory)", + "value": "MerkleTreeWithHistory" + }, + "id": 716, + "name": "Identifier", + "src": "1583:21:2" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 712, + "type": "uint32", + "value": "_merkleTreeHeight" + }, + "id": 717, + "name": "Identifier", + "src": "1605:17:2" + } + ], + "id": 718, + "name": "ModifierInvocation", + "src": "1583:40:2" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_04818fb803bf7e7ff6c9059d97eae335b77b108931ead0a529924d35ccaf3fc8", + "typeString": "literal_string \"denomination should be greater than 0\"" + } + ], + "overloadedDeclarations": [ + 1018, + 1019 + ], + "referencedDeclaration": 1019, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 720, + "name": "Identifier", + "src": "1637:7:2" + }, + { + "attributes": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": ">", + "type": "bool" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 710, + "type": "uint256", + "value": "_denomination" + }, + "id": 721, + "name": "Identifier", + "src": "1645:13:2" + }, + { + "attributes": { + "argumentTypes": null, + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 722, + "name": "Literal", + "src": "1661:1:2" + } + ], + "id": 723, + "name": "BinaryOperation", + "src": "1645:17:2" + }, + { + "attributes": { + "argumentTypes": null, + "hexvalue": "64656e6f6d696e6174696f6e2073686f756c642062652067726561746572207468616e2030", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "string", + "type": "literal_string \"denomination should be greater than 0\"", + "value": "denomination should be greater than 0" + }, + "id": 724, + "name": "Literal", + "src": "1664:39:2" + } + ], + "id": 725, + "name": "FunctionCall", + "src": "1637:67:2" + } + ], + "id": 726, + "name": "ExpressionStatement", + "src": "1637:67:2" + }, + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "contract IVerifier" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 670, + "type": "contract IVerifier", + "value": "verifier" + }, + "id": 727, + "name": "Identifier", + "src": "1710:8:2" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 706, + "type": "contract IVerifier", + "value": "_verifier" + }, + "id": 728, + "name": "Identifier", + "src": "1721:9:2" + } + ], + "id": 729, + "name": "Assignment", + "src": "1710:20:2" + } + ], + "id": 730, + "name": "ExpressionStatement", + "src": "1710:20:2" + }, + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "contract IFeeManager" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 672, + "type": "contract IFeeManager", + "value": "feeManager" + }, + "id": 731, + "name": "Identifier", + "src": "1736:10:2" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 708, + "type": "contract IFeeManager", + "value": "_feeManager" + }, + "id": 732, + "name": "Identifier", + "src": "1749:11:2" + } + ], + "id": 733, + "name": "Assignment", + "src": "1736:24:2" + } + ], + "id": 734, + "name": "ExpressionStatement", + "src": "1736:24:2" + }, + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "address" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 674, + "type": "address", + "value": "operator" + }, + "id": 735, + "name": "Identifier", + "src": "1766:8:2" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 714, + "type": "address", + "value": "_operator" + }, + "id": 736, + "name": "Identifier", + "src": "1777:9:2" + } + ], + "id": 737, + "name": "Assignment", + "src": "1766:20:2" + } + ], + "id": 738, + "name": "ExpressionStatement", + "src": "1766:20:2" + }, + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 660, + "type": "uint256", + "value": "denomination" + }, + "id": 739, + "name": "Identifier", + "src": "1792:12:2" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 710, + "type": "uint256", + "value": "_denomination" + }, + "id": 740, + "name": "Identifier", + "src": "1807:13:2" + } + ], + "id": 741, + "name": "Assignment", + "src": "1792:28:2" + } + ], + "id": 742, + "name": "ExpressionStatement", + "src": "1792:28:2" + } + ], + "id": 743, + "name": "Block", + "src": "1631:194:2" + } + ], + "id": 744, + "name": "FunctionDefinition", + "src": "1433:392:2" + }, + { + "attributes": { + "documentation": "@dev Deposit funds into the contract. The caller must send (for ETH) or approve (for ERC20) value equal to or `denomination` of this instance.\n@param _commitment the note commitment, which is PedersenHash(nullifier + secret)", + "implemented": true, + "isConstructor": false, + "kind": "function", + "name": "deposit", + "scope": 970, + "stateMutability": "payable", + "superFunction": null, + "visibility": "external" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "name": "_commitment", + "scope": 782, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 745, + "name": "ElementaryTypeName", + "src": "2090:7:2" + } + ], + "id": 746, + "name": "VariableDeclaration", + "src": "2090:19:2" + } + ], + "id": 747, + "name": "ParameterList", + "src": "2089:21:2" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 750, + "name": "ParameterList", + "src": "2141:0:2" + }, + { + "attributes": { + "arguments": null + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 999, + "type": "modifier ()", + "value": "nonReentrant" + }, + "id": 748, + "name": "Identifier", + "src": "2128:12:2" + } + ], + "id": 749, + "name": "ModifierInvocation", + "src": "2128:12:2" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_ae5f231636554c1cb3bf839359e4dfbb338ccb221c7c5dbdf2da91ddc6e2ee6b", + "typeString": "literal_string \"The commitment has been submitted\"" + } + ], + "overloadedDeclarations": [ + 1018, + 1019 + ], + "referencedDeclaration": 1019, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 751, + "name": "Identifier", + "src": "2147:7:2" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!", + "prefix": true, + "type": "bool" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "bool" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 668, + "type": "mapping(bytes32 => bool)", + "value": "commitments" + }, + "id": 752, + "name": "Identifier", + "src": "2156:11:2" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 746, + "type": "bytes32", + "value": "_commitment" + }, + "id": 753, + "name": "Identifier", + "src": "2168:11:2" + } + ], + "id": 754, + "name": "IndexAccess", + "src": "2156:24:2" + } + ], + "id": 755, + "name": "UnaryOperation", + "src": "2155:25:2" + }, + { + "attributes": { + "argumentTypes": null, + "hexvalue": "54686520636f6d6d69746d656e7420686173206265656e207375626d6974746564", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "string", + "type": "literal_string \"The commitment has been submitted\"", + "value": "The commitment has been submitted" + }, + "id": 756, + "name": "Literal", + "src": "2182:35:2" + } + ], + "id": 757, + "name": "FunctionCall", + "src": "2147:71:2" + } + ], + "id": 758, + "name": "ExpressionStatement", + "src": "2147:71:2" + }, + { + "attributes": { + "assignments": [ + 760 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "name": "insertedIndex", + "scope": 781, + "stateVariable": false, + "storageLocation": "default", + "type": "uint32", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint32", + "type": "uint32" + }, + "id": 759, + "name": "ElementaryTypeName", + "src": "2225:6:2" + } + ], + "id": 760, + "name": "VariableDeclaration", + "src": "2225:20:2" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "uint32", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 574, + "type": "function (bytes32) returns (uint32)", + "value": "_insert" + }, + "id": 761, + "name": "Identifier", + "src": "2248:7:2" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 746, + "type": "bytes32", + "value": "_commitment" + }, + "id": 762, + "name": "Identifier", + "src": "2256:11:2" + } + ], + "id": 763, + "name": "FunctionCall", + "src": "2248:20:2" + } + ], + "id": 764, + "name": "VariableDeclarationStatement", + "src": "2225:43:2" + }, + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "type": "bool" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 668, + "type": "mapping(bytes32 => bool)", + "value": "commitments" + }, + "id": 765, + "name": "Identifier", + "src": "2274:11:2" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 746, + "type": "bytes32", + "value": "_commitment" + }, + "id": 766, + "name": "Identifier", + "src": "2286:11:2" + } + ], + "id": 767, + "name": "IndexAccess", + "src": "2274:24:2" + }, + { + "attributes": { + "argumentTypes": null, + "hexvalue": "74727565", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "bool", + "type": "bool", + "value": "true" + }, + "id": 768, + "name": "Literal", + "src": "2301:4:2" + } + ], + "id": 769, + "name": "Assignment", + "src": "2274:31:2" + } + ], + "id": 770, + "name": "ExpressionStatement", + "src": "2274:31:2" + }, + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "arguments": [ + null + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + null + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 785, + "type": "function ()", + "value": "_processDeposit" + }, + "id": 771, + "name": "Identifier", + "src": "2311:15:2" + } + ], + "id": 772, + "name": "FunctionCall", + "src": "2311:17:2" + } + ], + "id": 773, + "name": "ExpressionStatement", + "src": "2311:17:2" + }, + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 694, + "type": "function (bytes32,uint32,uint256)", + "value": "Deposit" + }, + "id": 774, + "name": "Identifier", + "src": "2340:7:2" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 746, + "type": "bytes32", + "value": "_commitment" + }, + "id": 775, + "name": "Identifier", + "src": "2348:11:2" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 760, + "type": "uint32", + "value": "insertedIndex" + }, + "id": 776, + "name": "Identifier", + "src": "2361:13:2" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "timestamp", + "referencedDeclaration": null, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1005, + "type": "block", + "value": "block" + }, + "id": 777, + "name": "Identifier", + "src": "2376:5:2" + } + ], + "id": 778, + "name": "MemberAccess", + "src": "2376:15:2" + } + ], + "id": 779, + "name": "FunctionCall", + "src": "2340:52:2" + } + ], + "id": 780, + "name": "EmitStatement", + "src": "2335:57:2" + } + ], + "id": 781, + "name": "Block", + "src": "2141:256:2" + } + ], + "id": 782, + "name": "FunctionDefinition", + "src": "2073:324:2" + }, + { + "attributes": { + "body": null, + "documentation": "@dev this function is defined in a child contract ", + "implemented": false, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_processDeposit", + "scope": 970, + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 783, + "name": "ParameterList", + "src": "2484:2:2" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 784, + "name": "ParameterList", + "src": "2495:0:2" + } + ], + "id": 785, + "name": "FunctionDefinition", + "src": "2460:36:2" + }, + { + "attributes": { + "documentation": "@dev Withdraw a deposit from the contract. `proof` is a zkSNARK proof data, and input is an array of circuit public inputs\n`input` array consists of:\n- merkle root of all deposits in the contract\n- hash of unique deposit nullifier to prevent double spends\n- the recipient of funds\n- optional fee that goes to the transaction sender (usually a relay)", + "implemented": true, + "isConstructor": false, + "kind": "function", + "name": "withdraw", + "scope": 970, + "stateMutability": "payable", + "superFunction": null, + "visibility": "external" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "name": "_proof", + "scope": 873, + "stateVariable": false, + "storageLocation": "calldata", + "type": "bytes", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 786, + "name": "ElementaryTypeName", + "src": "2911:5:2" + } + ], + "id": 787, + "name": "VariableDeclaration", + "src": "2911:21:2" + }, + { + "attributes": { + "constant": false, + "name": "_root", + "scope": 873, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 788, + "name": "ElementaryTypeName", + "src": "2934:7:2" + } + ], + "id": 789, + "name": "VariableDeclaration", + "src": "2934:13:2" + }, + { + "attributes": { + "constant": false, + "name": "_nullifierHash", + "scope": 873, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 790, + "name": "ElementaryTypeName", + "src": "2949:7:2" + } + ], + "id": 791, + "name": "VariableDeclaration", + "src": "2949:22:2" + }, + { + "attributes": { + "constant": false, + "name": "_recipient", + "scope": 873, + "stateVariable": false, + "storageLocation": "default", + "type": "address payable", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "payable", + "type": "address payable" + }, + "id": 792, + "name": "ElementaryTypeName", + "src": "2973:15:2" + } + ], + "id": 793, + "name": "VariableDeclaration", + "src": "2973:26:2" + }, + { + "attributes": { + "constant": false, + "name": "_relayer", + "scope": 873, + "stateVariable": false, + "storageLocation": "default", + "type": "address payable", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "payable", + "type": "address payable" + }, + "id": 794, + "name": "ElementaryTypeName", + "src": "3001:15:2" + } + ], + "id": 795, + "name": "VariableDeclaration", + "src": "3001:24:2" + }, + { + "attributes": { + "constant": false, + "name": "_fee", + "scope": 873, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 796, + "name": "ElementaryTypeName", + "src": "3027:7:2" + } + ], + "id": 797, + "name": "VariableDeclaration", + "src": "3027:12:2" + }, + { + "attributes": { + "constant": false, + "name": "_refund", + "scope": 873, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 798, + "name": "ElementaryTypeName", + "src": "3041:7:2" + } + ], + "id": 799, + "name": "VariableDeclaration", + "src": "3041:15:2" + } + ], + "id": 800, + "name": "ParameterList", + "src": "2910:147:2" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 803, + "name": "ParameterList", + "src": "3088:0:2" + }, + { + "attributes": { + "arguments": null + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 999, + "type": "modifier ()", + "value": "nonReentrant" + }, + "id": 801, + "name": "Identifier", + "src": "3075:12:2" + } + ], + "id": 802, + "name": "ModifierInvocation", + "src": "3075:12:2" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_2ce218df547d416f80ea8a5deadaf9453d23523ffa5f2e880a48adfdb4053a9c", + "typeString": "literal_string \"Fee exceeds transfer value\"" + } + ], + "overloadedDeclarations": [ + 1018, + 1019 + ], + "referencedDeclaration": 1019, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 804, + "name": "Identifier", + "src": "3094:7:2" + }, + { + "attributes": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "<=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 797, + "type": "uint256", + "value": "_fee" + }, + "id": 805, + "name": "Identifier", + "src": "3102:4:2" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 660, + "type": "uint256", + "value": "denomination" + }, + "id": 806, + "name": "Identifier", + "src": "3110:12:2" + } + ], + "id": 807, + "name": "BinaryOperation", + "src": "3102:20:2" + }, + { + "attributes": { + "argumentTypes": null, + "hexvalue": "4665652065786365656473207472616e736665722076616c7565", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "string", + "type": "literal_string \"Fee exceeds transfer value\"", + "value": "Fee exceeds transfer value" + }, + "id": 808, + "name": "Literal", + "src": "3124:28:2" + } + ], + "id": 809, + "name": "FunctionCall", + "src": "3094:59:2" + } + ], + "id": 810, + "name": "ExpressionStatement", + "src": "3094:59:2" + }, + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_a1bef92d7a18b1c6975dc8de68df6140a52afea05a2c6c91da2b1562c617e896", + "typeString": "literal_string \"The note has been already spent\"" + } + ], + "overloadedDeclarations": [ + 1018, + 1019 + ], + "referencedDeclaration": 1019, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 811, + "name": "Identifier", + "src": "3159:7:2" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!", + "prefix": true, + "type": "bool" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "bool" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 664, + "type": "mapping(bytes32 => bool)", + "value": "nullifierHashes" + }, + "id": 812, + "name": "Identifier", + "src": "3168:15:2" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 791, + "type": "bytes32", + "value": "_nullifierHash" + }, + "id": 813, + "name": "Identifier", + "src": "3184:14:2" + } + ], + "id": 814, + "name": "IndexAccess", + "src": "3168:31:2" + } + ], + "id": 815, + "name": "UnaryOperation", + "src": "3167:32:2" + }, + { + "attributes": { + "argumentTypes": null, + "hexvalue": "546865206e6f746520686173206265656e20616c7265616479207370656e74", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "string", + "type": "literal_string \"The note has been already spent\"", + "value": "The note has been already spent" + }, + "id": 816, + "name": "Literal", + "src": "3201:33:2" + } + ], + "id": 817, + "name": "FunctionCall", + "src": "3159:76:2" + } + ], + "id": 818, + "name": "ExpressionStatement", + "src": "3159:76:2" + }, + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_2a69086763073955418d2fd7dfee3d2f1fbc5b21047a216b7855d3f313d8e204", + "typeString": "literal_string \"Cannot find your merkle root\"" + } + ], + "overloadedDeclarations": [ + 1018, + 1019 + ], + "referencedDeclaration": 1019, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 819, + "name": "Identifier", + "src": "3241:7:2" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 621, + "type": "function (bytes32) view returns (bool)", + "value": "isKnownRoot" + }, + "id": 820, + "name": "Identifier", + "src": "3249:11:2" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 789, + "type": "bytes32", + "value": "_root" + }, + "id": 821, + "name": "Identifier", + "src": "3261:5:2" + } + ], + "id": 822, + "name": "FunctionCall", + "src": "3249:18:2" + }, + { + "attributes": { + "argumentTypes": null, + "hexvalue": "43616e6e6f742066696e6420796f7572206d65726b6c6520726f6f74", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "string", + "type": "literal_string \"Cannot find your merkle root\"", + "value": "Cannot find your merkle root" + }, + "id": 823, + "name": "Literal", + "src": "3269:30:2" + } + ], + "id": 824, + "name": "FunctionCall", + "src": "3241:59:2" + } + ], + "id": 825, + "name": "ExpressionStatement", + "src": "3241:59:2" + }, + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_7021ea58137dba96e572e94936410b0b0e4cbc344e1ab2ee7f47660768b81ff4", + "typeString": "literal_string \"Invalid withdraw proof\"" + } + ], + "overloadedDeclarations": [ + 1018, + 1019 + ], + "referencedDeclaration": 1019, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 826, + "name": "Identifier", + "src": "3339:7:2" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes calldata" + }, + { + "typeIdentifier": "t_array$_t_uint256_$6_memory_ptr", + "typeString": "uint256[6] memory" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "verifyProof", + "referencedDeclaration": 647, + "type": "function (bytes memory,uint256[6] memory) external returns (bool)" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 670, + "type": "contract IVerifier", + "value": "verifier" + }, + "id": 827, + "name": "Identifier", + "src": "3347:8:2" + } + ], + "id": 828, + "name": "MemberAccess", + "src": "3347:20:2" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 787, + "type": "bytes calldata", + "value": "_proof" + }, + "id": 829, + "name": "Identifier", + "src": "3368:6:2" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isInlineArray": true, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "type": "uint256[6] memory" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "uint256", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint256)", + "value": "uint256" + }, + "id": 830, + "name": "ElementaryTypeNameExpression", + "src": "3377:7:2" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 789, + "type": "bytes32", + "value": "_root" + }, + "id": 831, + "name": "Identifier", + "src": "3385:5:2" + } + ], + "id": 832, + "name": "FunctionCall", + "src": "3377:14:2" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "uint256", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint256)", + "value": "uint256" + }, + "id": 833, + "name": "ElementaryTypeNameExpression", + "src": "3393:7:2" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 791, + "type": "bytes32", + "value": "_nullifierHash" + }, + "id": 834, + "name": "Identifier", + "src": "3401:14:2" + } + ], + "id": 835, + "name": "FunctionCall", + "src": "3393:23:2" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "uint256", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint256)", + "value": "uint256" + }, + "id": 836, + "name": "ElementaryTypeNameExpression", + "src": "3418:7:2" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 793, + "type": "address payable", + "value": "_recipient" + }, + "id": 837, + "name": "Identifier", + "src": "3426:10:2" + } + ], + "id": 838, + "name": "FunctionCall", + "src": "3418:19:2" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "uint256", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint256)", + "value": "uint256" + }, + "id": 839, + "name": "ElementaryTypeNameExpression", + "src": "3439:7:2" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 795, + "type": "address payable", + "value": "_relayer" + }, + "id": 840, + "name": "Identifier", + "src": "3447:8:2" + } + ], + "id": 841, + "name": "FunctionCall", + "src": "3439:17:2" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 797, + "type": "uint256", + "value": "_fee" + }, + "id": 842, + "name": "Identifier", + "src": "3458:4:2" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 799, + "type": "uint256", + "value": "_refund" + }, + "id": 843, + "name": "Identifier", + "src": "3464:7:2" + } + ], + "id": 844, + "name": "TupleExpression", + "src": "3376:96:2" + } + ], + "id": 845, + "name": "FunctionCall", + "src": "3347:126:2" + }, + { + "attributes": { + "argumentTypes": null, + "hexvalue": "496e76616c69642077697468647261772070726f6f66", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "string", + "type": "literal_string \"Invalid withdraw proof\"", + "value": "Invalid withdraw proof" + }, + "id": 846, + "name": "Literal", + "src": "3475:24:2" + } + ], + "id": 847, + "name": "FunctionCall", + "src": "3339:161:2" + } + ], + "id": 848, + "name": "ExpressionStatement", + "src": "3339:161:2" + }, + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "type": "bool" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 664, + "type": "mapping(bytes32 => bool)", + "value": "nullifierHashes" + }, + "id": 849, + "name": "Identifier", + "src": "3507:15:2" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 791, + "type": "bytes32", + "value": "_nullifierHash" + }, + "id": 850, + "name": "Identifier", + "src": "3523:14:2" + } + ], + "id": 851, + "name": "IndexAccess", + "src": "3507:31:2" + }, + { + "attributes": { + "argumentTypes": null, + "hexvalue": "74727565", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "bool", + "type": "bool", + "value": "true" + }, + "id": 852, + "name": "Literal", + "src": "3541:4:2" + } + ], + "id": 853, + "name": "Assignment", + "src": "3507:38:2" + } + ], + "id": 854, + "name": "ExpressionStatement", + "src": "3507:38:2" + }, + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 886, + "type": "function (address payable,address payable,uint256,uint256,address)", + "value": "_processWithdraw" + }, + "id": 855, + "name": "Identifier", + "src": "3551:16:2" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 793, + "type": "address payable", + "value": "_recipient" + }, + "id": 856, + "name": "Identifier", + "src": "3568:10:2" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 795, + "type": "address payable", + "value": "_relayer" + }, + "id": 857, + "name": "Identifier", + "src": "3580:8:2" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 797, + "type": "uint256", + "value": "_fee" + }, + "id": 858, + "name": "Identifier", + "src": "3590:4:2" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 799, + "type": "uint256", + "value": "_refund" + }, + "id": 859, + "name": "Identifier", + "src": "3596:7:2" + }, + { + "attributes": { + "argumentTypes": null, + "arguments": [ + null + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "address", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + null + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "feeTo", + "referencedDeclaration": 653, + "type": "function () view external returns (address)" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 672, + "type": "contract IFeeManager", + "value": "feeManager" + }, + "id": 860, + "name": "Identifier", + "src": "3605:10:2" + } + ], + "id": 861, + "name": "MemberAccess", + "src": "3605:16:2" + } + ], + "id": 862, + "name": "FunctionCall", + "src": "3605:18:2" + } + ], + "id": 863, + "name": "FunctionCall", + "src": "3551:73:2" + } + ], + "id": 864, + "name": "ExpressionStatement", + "src": "3551:73:2" + }, + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 704, + "type": "function (address,bytes32,address,uint256)", + "value": "Withdrawal" + }, + "id": 865, + "name": "Identifier", + "src": "3635:10:2" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 793, + "type": "address payable", + "value": "_recipient" + }, + "id": 866, + "name": "Identifier", + "src": "3646:10:2" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 791, + "type": "bytes32", + "value": "_nullifierHash" + }, + "id": 867, + "name": "Identifier", + "src": "3658:14:2" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 795, + "type": "address payable", + "value": "_relayer" + }, + "id": 868, + "name": "Identifier", + "src": "3674:8:2" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 797, + "type": "uint256", + "value": "_fee" + }, + "id": 869, + "name": "Identifier", + "src": "3684:4:2" + } + ], + "id": 870, + "name": "FunctionCall", + "src": "3635:54:2" + } + ], + "id": 871, + "name": "EmitStatement", + "src": "3630:59:2" + } + ], + "id": 872, + "name": "Block", + "src": "3088:606:2" + } + ], + "id": 873, + "name": "FunctionDefinition", + "src": "2893:801:2" + }, + { + "attributes": { + "body": null, + "documentation": "@dev this function is defined in a child contract ", + "implemented": false, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_processWithdraw", + "scope": 970, + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "name": "_recipient", + "scope": 886, + "stateVariable": false, + "storageLocation": "default", + "type": "address payable", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "payable", + "type": "address payable" + }, + "id": 874, + "name": "ElementaryTypeName", + "src": "3783:15:2" + } + ], + "id": 875, + "name": "VariableDeclaration", + "src": "3783:26:2" + }, + { + "attributes": { + "constant": false, + "name": "_relayer", + "scope": 886, + "stateVariable": false, + "storageLocation": "default", + "type": "address payable", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "payable", + "type": "address payable" + }, + "id": 876, + "name": "ElementaryTypeName", + "src": "3811:15:2" + } + ], + "id": 877, + "name": "VariableDeclaration", + "src": "3811:24:2" + }, + { + "attributes": { + "constant": false, + "name": "_relayer_fee", + "scope": 886, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 878, + "name": "ElementaryTypeName", + "src": "3837:7:2" + } + ], + "id": 879, + "name": "VariableDeclaration", + "src": "3837:20:2" + }, + { + "attributes": { + "constant": false, + "name": "_refund", + "scope": 886, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 880, + "name": "ElementaryTypeName", + "src": "3859:7:2" + } + ], + "id": 881, + "name": "VariableDeclaration", + "src": "3859:15:2" + }, + { + "attributes": { + "constant": false, + "name": "_feeTo", + "scope": 886, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 882, + "name": "ElementaryTypeName", + "src": "3876:7:2" + } + ], + "id": 883, + "name": "VariableDeclaration", + "src": "3876:14:2" + } + ], + "id": 884, + "name": "ParameterList", + "src": "3782:109:2" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 885, + "name": "ParameterList", + "src": "3900:0:2" + } + ], + "id": 886, + "name": "FunctionDefinition", + "src": "3757:144:2" + }, + { + "attributes": { + "documentation": "@dev whether a note is already spent ", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "isSpent", + "scope": 970, + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "name": "_nullifierHash", + "scope": 898, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 887, + "name": "ElementaryTypeName", + "src": "3968:7:2" + } + ], + "id": 888, + "name": "VariableDeclaration", + "src": "3968:22:2" + } + ], + "id": 889, + "name": "ParameterList", + "src": "3967:24:2" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "name": "", + "scope": 898, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 890, + "name": "ElementaryTypeName", + "src": "4012:4:2" + } + ], + "id": 891, + "name": "VariableDeclaration", + "src": "4012:4:2" + } + ], + "id": 892, + "name": "ParameterList", + "src": "4011:6:2" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 892 + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "bool" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 664, + "type": "mapping(bytes32 => bool)", + "value": "nullifierHashes" + }, + "id": 893, + "name": "Identifier", + "src": "4031:15:2" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 888, + "type": "bytes32", + "value": "_nullifierHash" + }, + "id": 894, + "name": "Identifier", + "src": "4047:14:2" + } + ], + "id": 895, + "name": "IndexAccess", + "src": "4031:31:2" + } + ], + "id": 896, + "name": "Return", + "src": "4024:38:2" + } + ], + "id": 897, + "name": "Block", + "src": "4018:49:2" + } + ], + "id": 898, + "name": "FunctionDefinition", + "src": "3951:116:2" + }, + { + "attributes": { + "documentation": "@dev whether an array of notes is already spent ", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "isSpentArray", + "scope": 970, + "stateMutability": "view", + "superFunction": null, + "visibility": "external" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "name": "_nullifierHashes", + "scope": 943, + "stateVariable": false, + "storageLocation": "calldata", + "type": "bytes32[]", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "length": null, + "type": "bytes32[]" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 899, + "name": "ElementaryTypeName", + "src": "4150:7:2" + } + ], + "id": 900, + "name": "ArrayTypeName", + "src": "4150:9:2" + } + ], + "id": 901, + "name": "VariableDeclaration", + "src": "4150:35:2" + } + ], + "id": 902, + "name": "ParameterList", + "src": "4149:37:2" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "name": "spent", + "scope": 943, + "stateVariable": false, + "storageLocation": "memory", + "type": "bool[]", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "length": null, + "type": "bool[]" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 903, + "name": "ElementaryTypeName", + "src": "4209:4:2" + } + ], + "id": 904, + "name": "ArrayTypeName", + "src": "4209:6:2" + } + ], + "id": 905, + "name": "VariableDeclaration", + "src": "4209:19:2" + } + ], + "id": 906, + "name": "ParameterList", + "src": "4208:21:2" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "bool[] memory" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 905, + "type": "bool[] memory", + "value": "spent" + }, + "id": 907, + "name": "Identifier", + "src": "4236:5:2" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "bool[] memory", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "function (uint256) pure returns (bool[] memory)" + }, + "children": [ + { + "attributes": { + "length": null, + "type": "bool[]" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 908, + "name": "ElementaryTypeName", + "src": "4248:4:2" + } + ], + "id": 909, + "name": "ArrayTypeName", + "src": "4248:6:2" + } + ], + "id": 910, + "name": "NewExpression", + "src": "4244:10:2" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "length", + "referencedDeclaration": null, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 901, + "type": "bytes32[] calldata", + "value": "_nullifierHashes" + }, + "id": 911, + "name": "Identifier", + "src": "4255:16:2" + } + ], + "id": 912, + "name": "MemberAccess", + "src": "4255:23:2" + } + ], + "id": 913, + "name": "FunctionCall", + "src": "4244:35:2" + } + ], + "id": 914, + "name": "Assignment", + "src": "4236:43:2" + } + ], + "id": 915, + "name": "ExpressionStatement", + "src": "4236:43:2" + }, + { + "children": [ + { + "attributes": { + "assignments": [ + 917 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "name": "i", + "scope": 941, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 916, + "name": "ElementaryTypeName", + "src": "4289:4:2" + } + ], + "id": 917, + "name": "VariableDeclaration", + "src": "4289:6:2" + }, + { + "attributes": { + "argumentTypes": null, + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 918, + "name": "Literal", + "src": "4298:1:2" + } + ], + "id": 919, + "name": "VariableDeclarationStatement", + "src": "4289:10:2" + }, + { + "attributes": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "<", + "type": "bool" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 917, + "type": "uint256", + "value": "i" + }, + "id": 920, + "name": "Identifier", + "src": "4301:1:2" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "length", + "referencedDeclaration": null, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 901, + "type": "bytes32[] calldata", + "value": "_nullifierHashes" + }, + "id": 921, + "name": "Identifier", + "src": "4305:16:2" + } + ], + "id": 922, + "name": "MemberAccess", + "src": "4305:23:2" + } + ], + "id": 923, + "name": "BinaryOperation", + "src": "4301:27:2" + }, + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "++", + "prefix": false, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 917, + "type": "uint256", + "value": "i" + }, + "id": 924, + "name": "Identifier", + "src": "4330:1:2" + } + ], + "id": 925, + "name": "UnaryOperation", + "src": "4330:3:2" + } + ], + "id": 926, + "name": "ExpressionStatement", + "src": "4330:3:2" + }, + { + "children": [ + { + "attributes": { + "falseBody": null + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 898, + "type": "function (bytes32) view returns (bool)", + "value": "isSpent" + }, + "id": 927, + "name": "Identifier", + "src": "4347:7:2" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "type": "bytes32" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 901, + "type": "bytes32[] calldata", + "value": "_nullifierHashes" + }, + "id": 928, + "name": "Identifier", + "src": "4355:16:2" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 917, + "type": "uint256", + "value": "i" + }, + "id": 929, + "name": "Identifier", + "src": "4372:1:2" + } + ], + "id": 930, + "name": "IndexAccess", + "src": "4355:19:2" + } + ], + "id": 931, + "name": "FunctionCall", + "src": "4347:28:2" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "type": "bool" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 905, + "type": "bool[] memory", + "value": "spent" + }, + "id": 932, + "name": "Identifier", + "src": "4387:5:2" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 917, + "type": "uint256", + "value": "i" + }, + "id": 933, + "name": "Identifier", + "src": "4393:1:2" + } + ], + "id": 934, + "name": "IndexAccess", + "src": "4387:8:2" + }, + { + "attributes": { + "argumentTypes": null, + "hexvalue": "74727565", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "bool", + "type": "bool", + "value": "true" + }, + "id": 935, + "name": "Literal", + "src": "4398:4:2" + } + ], + "id": 936, + "name": "Assignment", + "src": "4387:15:2" + } + ], + "id": 937, + "name": "ExpressionStatement", + "src": "4387:15:2" + } + ], + "id": 938, + "name": "Block", + "src": "4377:34:2" + } + ], + "id": 939, + "name": "IfStatement", + "src": "4343:68:2" + } + ], + "id": 940, + "name": "Block", + "src": "4335:82:2" + } + ], + "id": 941, + "name": "ForStatement", + "src": "4285:132:2" + } + ], + "id": 942, + "name": "Block", + "src": "4230:191:2" + } + ], + "id": 943, + "name": "FunctionDefinition", + "src": "4128:293:2" + }, + { + "attributes": { + "documentation": "@dev allow operator to update SNARK verification keys. This is needed to update keys after the final trusted setup ceremony is held.\nAfter that operator rights are supposed to be transferred to zero address", + "implemented": true, + "isConstructor": false, + "kind": "function", + "name": "updateVerifier", + "scope": 970, + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "name": "_newVerifier", + "scope": 957, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 944, + "name": "ElementaryTypeName", + "src": "4675:7:2" + } + ], + "id": 945, + "name": "VariableDeclaration", + "src": "4675:20:2" + } + ], + "id": 946, + "name": "ParameterList", + "src": "4674:22:2" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 949, + "name": "ParameterList", + "src": "4719:0:2" + }, + { + "attributes": { + "arguments": null + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 686, + "type": "modifier ()", + "value": "onlyOperator" + }, + "id": 947, + "name": "Identifier", + "src": "4706:12:2" + } + ], + "id": 948, + "name": "ModifierInvocation", + "src": "4706:12:2" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "contract IVerifier" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 670, + "type": "contract IVerifier", + "value": "verifier" + }, + "id": 950, + "name": "Identifier", + "src": "4725:8:2" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "contract IVerifier", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 648, + "type": "type(contract IVerifier)", + "value": "IVerifier" + }, + "id": 951, + "name": "Identifier", + "src": "4736:9:2" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 945, + "type": "address", + "value": "_newVerifier" + }, + "id": 952, + "name": "Identifier", + "src": "4746:12:2" + } + ], + "id": 953, + "name": "FunctionCall", + "src": "4736:23:2" + } + ], + "id": 954, + "name": "Assignment", + "src": "4725:34:2" + } + ], + "id": 955, + "name": "ExpressionStatement", + "src": "4725:34:2" + } + ], + "id": 956, + "name": "Block", + "src": "4719:45:2" + } + ], + "id": 957, + "name": "FunctionDefinition", + "src": "4651:113:2" + }, + { + "attributes": { + "documentation": "@dev operator can change his address ", + "implemented": true, + "isConstructor": false, + "kind": "function", + "name": "changeOperator", + "scope": 970, + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "name": "_newOperator", + "scope": 969, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 958, + "name": "ElementaryTypeName", + "src": "4838:7:2" + } + ], + "id": 959, + "name": "VariableDeclaration", + "src": "4838:20:2" + } + ], + "id": 960, + "name": "ParameterList", + "src": "4837:22:2" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 963, + "name": "ParameterList", + "src": "4882:0:2" + }, + { + "attributes": { + "arguments": null + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 686, + "type": "modifier ()", + "value": "onlyOperator" + }, + "id": 961, + "name": "Identifier", + "src": "4869:12:2" + } + ], + "id": 962, + "name": "ModifierInvocation", + "src": "4869:12:2" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "address" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 674, + "type": "address", + "value": "operator" + }, + "id": 964, + "name": "Identifier", + "src": "4888:8:2" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 959, + "type": "address", + "value": "_newOperator" + }, + "id": 965, + "name": "Identifier", + "src": "4899:12:2" + } + ], + "id": 966, + "name": "Assignment", + "src": "4888:23:2" + } + ], + "id": 967, + "name": "ExpressionStatement", + "src": "4888:23:2" + } + ], + "id": 968, + "name": "Block", + "src": "4882:34:2" + } + ], + "id": 969, + "name": "FunctionDefinition", + "src": "4814:102:2" + } + ], + "id": 970, + "name": "ContractDefinition", + "src": "318:4600:2" + } + ], + "id": 971, + "name": "SourceUnit", + "src": "0:4919:2" + }, + "compiler": { + "name": "solc", + "version": "0.5.17+commit.d19bba13.Emscripten.clang" + }, + "networks": {}, + "schemaVersion": "3.3.4", + "updatedAt": "2021-04-02T22:21:29.527Z", + "devdoc": { + "methods": {} + }, + "userdoc": { + "methods": {} + } +} \ No newline at end of file diff --git a/client/contracts/IVerifier.json b/client/contracts/IVerifier.json index 189168d..a93acee 100644 --- a/client/contracts/IVerifier.json +++ b/client/contracts/IVerifier.json @@ -28,55 +28,58 @@ "type": "function" } ], - "metadata": "{\"compiler\":{\"version\":\"0.5.17+commit.d19bba13\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"constant\":false,\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"_proof\",\"type\":\"bytes\"},{\"internalType\":\"uint256[6]\",\"name\":\"_input\",\"type\":\"uint256[6]\"}],\"name\":\"verifyProof\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/Users/brianli/dotfiles/tornado-core/contracts/Tornado.sol\":\"IVerifier\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/Users/brianli/dotfiles/tornado-core/contracts/MerkleTreeWithHistory.sol\":{\"keccak256\":\"0x671cc9268dd70c47d18795f7e37fc4df11763fcbcca026edcf163f4239036254\",\"urls\":[\"bzz-raw://9c36a207ed164b60a514eae89bfb15e5b4de4b346c4a89a7a1cb50a940bc699d\",\"dweb:/ipfs/QmbPEqFJAGMpYduLEFsbPazyBsYWcjRtpth8X26wCHALwk\"]},\"/Users/brianli/dotfiles/tornado-core/contracts/Tornado.sol\":{\"keccak256\":\"0x09c70432243629ef44697fd3d0ca89d3578e2b1c9f46d90757371edb163c14da\",\"urls\":[\"bzz-raw://d2a2c9fa85c32cb15793282792cd25c71804a10aa5a911e41f3bcd07f5df117e\",\"dweb:/ipfs/QmeQ1s6ypNnP7fossR4x9svuuLjcSBtQ5spUTmWGZY5Ljr\"]},\"@openzeppelin/contracts/utils/ReentrancyGuard.sol\":{\"keccak256\":\"0xb63221b23818d622bfd83d18e0968307e4fcb7a35536bdceded76e1cf8349acd\",\"urls\":[\"bzz-raw://44e1e8c22362c4708a8c3362735f1465f5b05e2f7315e16c7010d694ce019d73\",\"dweb:/ipfs/QmWj9g8X1hxkXRre2kwkEjLBetjuzmSbWHD81bsSojnBkS\"]}},\"version\":1}", + "metadata": "{\"compiler\":{\"version\":\"0.5.17+commit.d19bba13\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"constant\":false,\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"_proof\",\"type\":\"bytes\"},{\"internalType\":\"uint256[6]\",\"name\":\"_input\",\"type\":\"uint256[6]\"}],\"name\":\"verifyProof\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/Users/brianli/dotfiles/tornado-core/contracts/Tornado.sol\":\"IVerifier\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/Users/brianli/dotfiles/tornado-core/contracts/MerkleTreeWithHistory.sol\":{\"keccak256\":\"0x671cc9268dd70c47d18795f7e37fc4df11763fcbcca026edcf163f4239036254\",\"urls\":[\"bzz-raw://9c36a207ed164b60a514eae89bfb15e5b4de4b346c4a89a7a1cb50a940bc699d\",\"dweb:/ipfs/QmbPEqFJAGMpYduLEFsbPazyBsYWcjRtpth8X26wCHALwk\"]},\"/Users/brianli/dotfiles/tornado-core/contracts/Tornado.sol\":{\"keccak256\":\"0xe7db8acb3efcecf95c7364f447ed1764c571dbf5090fd4641fe4668a965332eb\",\"urls\":[\"bzz-raw://45e790c247c38ed8ae473e3165c1148ea10a753cf6e9f9c8742394019be2aef6\",\"dweb:/ipfs/QmaGfk1ndvqur2NvCY3TWoKuorfBVShXeykKei18GDY582\"]},\"@openzeppelin/contracts/utils/ReentrancyGuard.sol\":{\"keccak256\":\"0xb63221b23818d622bfd83d18e0968307e4fcb7a35536bdceded76e1cf8349acd\",\"urls\":[\"bzz-raw://44e1e8c22362c4708a8c3362735f1465f5b05e2f7315e16c7010d694ce019d73\",\"dweb:/ipfs/QmWj9g8X1hxkXRre2kwkEjLBetjuzmSbWHD81bsSojnBkS\"]}},\"version\":1}", "bytecode": "0x", "deployedBytecode": "0x", "sourceMap": "", "deployedSourceMap": "", - "source": "// https://tornado.cash\n/*\n* d888888P dP a88888b. dP\n* 88 88 d8' `88 88\n* 88 .d8888b. 88d888b. 88d888b. .d8888b. .d888b88 .d8888b. 88 .d8888b. .d8888b. 88d888b.\n* 88 88' `88 88' `88 88' `88 88' `88 88' `88 88' `88 88 88' `88 Y8ooooo. 88' `88\n* 88 88. .88 88 88 88 88. .88 88. .88 88. .88 dP Y8. .88 88. .88 88 88 88\n* dP `88888P' dP dP dP `88888P8 `88888P8 `88888P' 88 Y88888P' `88888P8 `88888P' dP dP\n* ooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo\n*/\n\npragma solidity 0.5.17;\n\nimport \"./MerkleTreeWithHistory.sol\";\nimport \"@openzeppelin/contracts/utils/ReentrancyGuard.sol\";\n\ncontract IVerifier {\n function verifyProof(bytes memory _proof, uint256[6] memory _input) public returns(bool);\n}\n\ncontract Tornado is MerkleTreeWithHistory, ReentrancyGuard {\n uint256 public denomination;\n mapping(bytes32 => bool) public nullifierHashes;\n // we store all commitments just to prevent accidental deposits with the same commitment\n mapping(bytes32 => bool) public commitments;\n IVerifier public verifier;\n\n // operator can update snark verification key\n // after the final trusted setup ceremony operator rights are supposed to be transferred to zero address\n address public operator;\n modifier onlyOperator {\n require(msg.sender == operator, \"Only operator can call this function.\");\n _;\n }\n\n event Deposit(bytes32 indexed commitment, uint32 leafIndex, uint256 timestamp);\n event Withdrawal(address to, bytes32 nullifierHash, address indexed relayer, uint256 fee);\n\n /**\n @dev The constructor\n @param _verifier the address of SNARK verifier for this contract\n @param _denomination transfer amount for each deposit\n @param _merkleTreeHeight the height of deposits' Merkle Tree\n @param _operator operator address (see operator comment above)\n */\n constructor(\n IVerifier _verifier,\n uint256 _denomination,\n uint32 _merkleTreeHeight,\n address _operator\n ) MerkleTreeWithHistory(_merkleTreeHeight) public {\n require(_denomination > 0, \"denomination should be greater than 0\");\n verifier = _verifier;\n operator = _operator;\n denomination = _denomination;\n }\n\n /**\n @dev Deposit funds into the contract. The caller must send (for ETH) or approve (for ERC20) value equal to or `denomination` of this instance.\n @param _commitment the note commitment, which is PedersenHash(nullifier + secret)\n */\n function deposit(bytes32 _commitment) external payable nonReentrant {\n require(!commitments[_commitment], \"The commitment has been submitted\");\n\n uint32 insertedIndex = _insert(_commitment);\n commitments[_commitment] = true;\n _processDeposit();\n\n emit Deposit(_commitment, insertedIndex, block.timestamp);\n }\n\n /** @dev this function is defined in a child contract */\n function _processDeposit() internal;\n\n /**\n @dev Withdraw a deposit from the contract. `proof` is a zkSNARK proof data, and input is an array of circuit public inputs\n `input` array consists of:\n - merkle root of all deposits in the contract\n - hash of unique deposit nullifier to prevent double spends\n - the recipient of funds\n - optional fee that goes to the transaction sender (usually a relay)\n */\n function withdraw(bytes calldata _proof, bytes32 _root, bytes32 _nullifierHash, address payable _recipient, address payable _relayer, uint256 _fee, uint256 _refund) external payable nonReentrant {\n require(_fee <= denomination, \"Fee exceeds transfer value\");\n require(!nullifierHashes[_nullifierHash], \"The note has been already spent\");\n require(isKnownRoot(_root), \"Cannot find your merkle root\"); // Make sure to use a recent one\n require(verifier.verifyProof(_proof, [uint256(_root), uint256(_nullifierHash), uint256(_recipient), uint256(_relayer), _fee, _refund]), \"Invalid withdraw proof\");\n\n nullifierHashes[_nullifierHash] = true;\n _processWithdraw(_recipient, _relayer, _fee, _refund);\n emit Withdrawal(_recipient, _nullifierHash, _relayer, _fee);\n }\n\n /** @dev this function is defined in a child contract */\n function _processWithdraw(address payable _recipient, address payable _relayer, uint256 _fee, uint256 _refund) internal;\n\n /** @dev whether a note is already spent */\n function isSpent(bytes32 _nullifierHash) public view returns(bool) {\n return nullifierHashes[_nullifierHash];\n }\n\n /** @dev whether an array of notes is already spent */\n function isSpentArray(bytes32[] calldata _nullifierHashes) external view returns(bool[] memory spent) {\n spent = new bool[](_nullifierHashes.length);\n for(uint i = 0; i < _nullifierHashes.length; i++) {\n if (isSpent(_nullifierHashes[i])) {\n spent[i] = true;\n }\n }\n }\n\n /**\n @dev allow operator to update SNARK verification keys. This is needed to update keys after the final trusted setup ceremony is held.\n After that operator rights are supposed to be transferred to zero address\n */\n function updateVerifier(address _newVerifier) external onlyOperator {\n verifier = IVerifier(_newVerifier);\n }\n\n /** @dev operator can change his address */\n function changeOperator(address _newOperator) external onlyOperator {\n operator = _newOperator;\n }\n}\n", + "source": "pragma solidity 0.5.17;\n\nimport \"./MerkleTreeWithHistory.sol\";\nimport \"@openzeppelin/contracts/utils/ReentrancyGuard.sol\";\n\ncontract IVerifier {\n function verifyProof(bytes memory _proof, uint256[6] memory _input) public returns(bool);\n}\n\ncontract IFeeManager {\n function feeTo() external view returns (address);\n}\n\ncontract Tornado is MerkleTreeWithHistory, ReentrancyGuard {\n uint256 public denomination;\n mapping(bytes32 => bool) public nullifierHashes;\n // we store all commitments just to prevent accidental deposits with the same commitment\n mapping(bytes32 => bool) public commitments;\n IVerifier public verifier;\n IFeeManager public feeManager;\n\n // operator can update snark verification key\n // after the final trusted setup ceremony operator rights are supposed to be transferred to zero address\n address public operator;\n modifier onlyOperator {\n require(msg.sender == operator, \"Only operator can call this function.\");\n _;\n }\n\n event Deposit(bytes32 indexed commitment, uint32 leafIndex, uint256 timestamp);\n event Withdrawal(address to, bytes32 nullifierHash, address indexed relayer, uint256 fee);\n\n /**\n @dev The constructor\n @param _verifier the address of SNARK verifier for this contract\n @param _denomination transfer amount for each deposit\n @param _merkleTreeHeight the height of deposits' Merkle Tree\n @param _operator operator address (see operator comment above)\n */\n constructor(\n IVerifier _verifier,\n IFeeManager _feeManager,\n uint256 _denomination,\n uint32 _merkleTreeHeight,\n address _operator\n ) MerkleTreeWithHistory(_merkleTreeHeight) public {\n require(_denomination > 0, \"denomination should be greater than 0\");\n verifier = _verifier;\n feeManager = _feeManager;\n operator = _operator;\n denomination = _denomination;\n }\n\n /**\n @dev Deposit funds into the contract. The caller must send (for ETH) or approve (for ERC20) value equal to or `denomination` of this instance.\n @param _commitment the note commitment, which is PedersenHash(nullifier + secret)\n */\n function deposit(bytes32 _commitment) external payable nonReentrant {\n require(!commitments[_commitment], \"The commitment has been submitted\");\n\n uint32 insertedIndex = _insert(_commitment);\n commitments[_commitment] = true;\n _processDeposit();\n\n emit Deposit(_commitment, insertedIndex, block.timestamp);\n }\n\n /** @dev this function is defined in a child contract */\n function _processDeposit() internal;\n\n /**\n @dev Withdraw a deposit from the contract. `proof` is a zkSNARK proof data, and input is an array of circuit public inputs\n `input` array consists of:\n - merkle root of all deposits in the contract\n - hash of unique deposit nullifier to prevent double spends\n - the recipient of funds\n - optional fee that goes to the transaction sender (usually a relay)\n */\n function withdraw(bytes calldata _proof, bytes32 _root, bytes32 _nullifierHash, address payable _recipient, address payable _relayer, uint256 _fee, uint256 _refund) external payable nonReentrant {\n require(_fee <= denomination, \"Fee exceeds transfer value\");\n require(!nullifierHashes[_nullifierHash], \"The note has been already spent\");\n require(isKnownRoot(_root), \"Cannot find your merkle root\"); // Make sure to use a recent one\n require(verifier.verifyProof(_proof, [uint256(_root), uint256(_nullifierHash), uint256(_recipient), uint256(_relayer), _fee, _refund]), \"Invalid withdraw proof\");\n\n nullifierHashes[_nullifierHash] = true;\n _processWithdraw(_recipient, _relayer, _fee, _refund, feeManager.feeTo());\n emit Withdrawal(_recipient, _nullifierHash, _relayer, _fee);\n }\n\n /** @dev this function is defined in a child contract */\n function _processWithdraw(address payable _recipient, address payable _relayer, uint256 _relayer_fee, uint256 _refund, address _feeTo) internal;\n\n /** @dev whether a note is already spent */\n function isSpent(bytes32 _nullifierHash) public view returns(bool) {\n return nullifierHashes[_nullifierHash];\n }\n\n /** @dev whether an array of notes is already spent */\n function isSpentArray(bytes32[] calldata _nullifierHashes) external view returns(bool[] memory spent) {\n spent = new bool[](_nullifierHashes.length);\n for(uint i = 0; i < _nullifierHashes.length; i++) {\n if (isSpent(_nullifierHashes[i])) {\n spent[i] = true;\n }\n }\n }\n\n /**\n @dev allow operator to update SNARK verification keys. This is needed to update keys after the final trusted setup ceremony is held.\n After that operator rights are supposed to be transferred to zero address\n */\n function updateVerifier(address _newVerifier) external onlyOperator {\n verifier = IVerifier(_newVerifier);\n }\n\n /** @dev operator can change his address */\n function changeOperator(address _newOperator) external onlyOperator {\n operator = _newOperator;\n }\n}\n", "sourcePath": "/Users/brianli/dotfiles/tornado-core/contracts/Tornado.sol", "ast": { "absolutePath": "/Users/brianli/dotfiles/tornado-core/contracts/Tornado.sol", "exportedSymbols": { + "IFeeManager": [ + 654 + ], "IVerifier": [ - 891 + 648 ], "Tornado": [ - 1194 + 970 ] }, - "id": 1195, + "id": 971, "nodeType": "SourceUnit", "nodes": [ { - "id": 877, + "id": 634, "literals": [ "solidity", "0.5", ".17" ], "nodeType": "PragmaDirective", - "src": "755:23:8" + "src": "0:23:2" }, { "absolutePath": "/Users/brianli/dotfiles/tornado-core/contracts/MerkleTreeWithHistory.sol", "file": "./MerkleTreeWithHistory.sol", - "id": 878, + "id": 635, "nodeType": "ImportDirective", - "scope": 1195, - "sourceUnit": 695, - "src": "780:37:8", + "scope": 971, + "sourceUnit": 633, + "src": "25:37:2", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "@openzeppelin/contracts/utils/ReentrancyGuard.sol", "file": "@openzeppelin/contracts/utils/ReentrancyGuard.sol", - "id": 879, + "id": 636, "nodeType": "ImportDirective", - "scope": 1195, - "sourceUnit": 3246, - "src": "818:59:8", + "scope": 971, + "sourceUnit": 1001, + "src": "63:59:2", "symbolAliases": [], "unitAlias": "" }, @@ -86,9 +89,9 @@ "contractKind": "contract", "documentation": null, "fullyImplemented": false, - "id": 891, + "id": 648, "linearizedBaseContracts": [ - 891 + 648 ], "name": "IVerifier", "nodeType": "ContractDefinition", @@ -96,23 +99,23 @@ { "body": null, "documentation": null, - "id": 890, + "id": 647, "implemented": false, "kind": "function", "modifiers": [], "name": "verifyProof", "nodeType": "FunctionDefinition", "parameters": { - "id": 886, + "id": 643, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 881, + "id": 638, "name": "_proof", "nodeType": "VariableDeclaration", - "scope": 890, - "src": "923:19:8", + "scope": 647, + "src": "168:19:2", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -120,10 +123,10 @@ "typeString": "bytes" }, "typeName": { - "id": 880, + "id": 637, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "923:5:8", + "src": "168:5:2", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -134,11 +137,11 @@ }, { "constant": false, - "id": 885, + "id": 642, "name": "_input", "nodeType": "VariableDeclaration", - "scope": 890, - "src": "944:24:8", + "scope": 647, + "src": "189:24:2", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -147,27 +150,27 @@ }, "typeName": { "baseType": { - "id": 882, + "id": 639, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "944:7:8", + "src": "189:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 884, + "id": 641, "length": { "argumentTypes": null, "hexValue": "36", - "id": 883, + "id": 640, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "952:1:8", + "src": "197:1:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_6_by_1", @@ -176,7 +179,7 @@ "value": "6" }, "nodeType": "ArrayTypeName", - "src": "944:10:8", + "src": "189:10:2", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$6_storage_ptr", "typeString": "uint256[6]" @@ -186,19 +189,19 @@ "visibility": "internal" } ], - "src": "922:47:8" + "src": "167:47:2" }, "returnParameters": { - "id": 889, + "id": 646, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 888, + "id": 645, "name": "", "nodeType": "VariableDeclaration", - "scope": 890, - "src": "985:4:8", + "scope": 647, + "src": "230:4:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -206,10 +209,10 @@ "typeString": "bool" }, "typeName": { - "id": 887, + "id": 644, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "985:4:8", + "src": "230:4:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -219,17 +222,89 @@ "visibility": "internal" } ], - "src": "984:6:8" + "src": "229:6:2" }, - "scope": 891, - "src": "902:89:8", + "scope": 648, + "src": "147:89:2", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" } ], - "scope": 1195, - "src": "879:114:8" + "scope": 971, + "src": "124:114:2" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": false, + "id": 654, + "linearizedBaseContracts": [ + 654 + ], + "name": "IFeeManager", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": null, + "documentation": null, + "id": 653, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "feeTo", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 649, + "nodeType": "ParameterList", + "parameters": [], + "src": "279:2:2" + }, + "returnParameters": { + "id": 652, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 651, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 653, + "src": "305:7:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 650, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "305:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "304:9:2" + }, + "scope": 654, + "src": "265:49:2", + "stateMutability": "view", + "superFunction": null, + "visibility": "external" + } + ], + "scope": 971, + "src": "240:76:2" }, { "baseContracts": [ @@ -237,62 +312,62 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 892, + "id": 655, "name": "MerkleTreeWithHistory", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 694, - "src": "1015:21:8", + "referencedDeclaration": 632, + "src": "338:21:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_MerkleTreeWithHistory_$694", + "typeIdentifier": "t_contract$_MerkleTreeWithHistory_$632", "typeString": "contract MerkleTreeWithHistory" } }, - "id": 893, + "id": 656, "nodeType": "InheritanceSpecifier", - "src": "1015:21:8" + "src": "338:21:2" }, { "arguments": null, "baseName": { "contractScope": null, - "id": 894, + "id": 657, "name": "ReentrancyGuard", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3245, - "src": "1038:15:8", + "referencedDeclaration": 1000, + "src": "361:15:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_ReentrancyGuard_$3245", + "typeIdentifier": "t_contract$_ReentrancyGuard_$1000", "typeString": "contract ReentrancyGuard" } }, - "id": 895, + "id": 658, "nodeType": "InheritanceSpecifier", - "src": "1038:15:8" + "src": "361:15:2" } ], "contractDependencies": [ - 694, - 3245 + 632, + 1000 ], "contractKind": "contract", "documentation": null, "fullyImplemented": false, - "id": 1194, + "id": 970, "linearizedBaseContracts": [ - 1194, - 3245, - 694 + 970, + 1000, + 632 ], "name": "Tornado", "nodeType": "ContractDefinition", "nodes": [ { "constant": false, - "id": 897, + "id": 660, "name": "denomination", "nodeType": "VariableDeclaration", - "scope": 1194, - "src": "1058:27:8", + "scope": 970, + "src": "381:27:2", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -300,10 +375,10 @@ "typeString": "uint256" }, "typeName": { - "id": 896, + "id": 659, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1058:7:8", + "src": "381:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -314,11 +389,11 @@ }, { "constant": false, - "id": 901, + "id": 664, "name": "nullifierHashes", "nodeType": "VariableDeclaration", - "scope": 1194, - "src": "1089:47:8", + "scope": 970, + "src": "412:47:2", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -326,28 +401,28 @@ "typeString": "mapping(bytes32 => bool)" }, "typeName": { - "id": 900, + "id": 663, "keyType": { - "id": 898, + "id": 661, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "1097:7:8", + "src": "420:7:2", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "nodeType": "Mapping", - "src": "1089:24:8", + "src": "412:24:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", "typeString": "mapping(bytes32 => bool)" }, "valueType": { - "id": 899, + "id": 662, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "1108:4:8", + "src": "431:4:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -359,11 +434,11 @@ }, { "constant": false, - "id": 905, + "id": 668, "name": "commitments", "nodeType": "VariableDeclaration", - "scope": 1194, - "src": "1231:43:8", + "scope": 970, + "src": "554:43:2", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -371,28 +446,28 @@ "typeString": "mapping(bytes32 => bool)" }, "typeName": { - "id": 904, + "id": 667, "keyType": { - "id": 902, + "id": 665, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "1239:7:8", + "src": "562:7:2", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "nodeType": "Mapping", - "src": "1231:24:8", + "src": "554:24:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", "typeString": "mapping(bytes32 => bool)" }, "valueType": { - "id": 903, + "id": 666, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "1250:4:8", + "src": "573:4:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -404,26 +479,26 @@ }, { "constant": false, - "id": 907, + "id": 670, "name": "verifier", "nodeType": "VariableDeclaration", - "scope": 1194, - "src": "1278:25:8", + "scope": 970, + "src": "601:25:2", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_IVerifier_$891", + "typeIdentifier": "t_contract$_IVerifier_$648", "typeString": "contract IVerifier" }, "typeName": { "contractScope": null, - "id": 906, + "id": 669, "name": "IVerifier", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 891, - "src": "1278:9:8", + "referencedDeclaration": 648, + "src": "601:9:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_IVerifier_$891", + "typeIdentifier": "t_contract$_IVerifier_$648", "typeString": "contract IVerifier" } }, @@ -432,11 +507,39 @@ }, { "constant": false, - "id": 909, + "id": 672, + "name": "feeManager", + "nodeType": "VariableDeclaration", + "scope": 970, + "src": "630:29:2", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IFeeManager_$654", + "typeString": "contract IFeeManager" + }, + "typeName": { + "contractScope": null, + "id": 671, + "name": "IFeeManager", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 654, + "src": "630:11:2", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IFeeManager_$654", + "typeString": "contract IFeeManager" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 674, "name": "operator", "nodeType": "VariableDeclaration", - "scope": 1194, - "src": "1463:23:8", + "scope": 970, + "src": "819:23:2", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -444,10 +547,10 @@ "typeString": "address" }, "typeName": { - "id": 908, + "id": 673, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1463:7:8", + "src": "819:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -459,9 +562,9 @@ }, { "body": { - "id": 920, + "id": 685, "nodeType": "Block", - "src": "1512:90:8", + "src": "868:90:2", "statements": [ { "expression": { @@ -473,7 +576,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 915, + "id": 680, "isConstant": false, "isLValue": false, "isPure": false, @@ -482,18 +585,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 912, + "id": 677, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3260, - "src": "1526:3:8", + "referencedDeclaration": 1015, + "src": "882:3:2", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 913, + "id": 678, "isConstant": false, "isLValue": false, "isPure": false, @@ -501,7 +604,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "1526:10:8", + "src": "882:10:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -511,18 +614,18 @@ "operator": "==", "rightExpression": { "argumentTypes": null, - "id": 914, + "id": 679, "name": "operator", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 909, - "src": "1540:8:8", + "referencedDeclaration": 674, + "src": "896:8:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "1526:22:8", + "src": "882:22:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -531,14 +634,14 @@ { "argumentTypes": null, "hexValue": "4f6e6c79206f70657261746f722063616e2063616c6c20746869732066756e6374696f6e2e", - "id": 916, + "id": 681, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "1550:39:8", + "src": "906:39:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_e8393660073679be7a6133571fe2ca8983a31a683c72e9055f401ac33a2efffc", @@ -558,21 +661,21 @@ "typeString": "literal_string \"Only operator can call this function.\"" } ], - "id": 911, + "id": 676, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 3263, - 3264 + 1018, + 1019 ], - "referencedDeclaration": 3264, - "src": "1518:7:8", + "referencedDeclaration": 1019, + "src": "874:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 917, + "id": 682, "isConstant": false, "isLValue": false, "isPure": false, @@ -580,54 +683,54 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1518:72:8", + "src": "874:72:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 918, + "id": 683, "nodeType": "ExpressionStatement", - "src": "1518:72:8" + "src": "874:72:2" }, { - "id": 919, + "id": 684, "nodeType": "PlaceholderStatement", - "src": "1596:1:8" + "src": "952:1:2" } ] }, "documentation": null, - "id": 921, + "id": 686, "name": "onlyOperator", "nodeType": "ModifierDefinition", "parameters": { - "id": 910, + "id": 675, "nodeType": "ParameterList", "parameters": [], - "src": "1512:0:8" + "src": "868:0:2" }, - "src": "1490:112:8", + "src": "846:112:2", "visibility": "internal" }, { "anonymous": false, "documentation": null, - "id": 929, + "id": 694, "name": "Deposit", "nodeType": "EventDefinition", "parameters": { - "id": 928, + "id": 693, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 923, + "id": 688, "indexed": true, "name": "commitment", "nodeType": "VariableDeclaration", - "scope": 929, - "src": "1620:26:8", + "scope": 694, + "src": "976:26:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -635,10 +738,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 922, + "id": 687, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "1620:7:8", + "src": "976:7:2", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -649,12 +752,12 @@ }, { "constant": false, - "id": 925, + "id": 690, "indexed": false, "name": "leafIndex", "nodeType": "VariableDeclaration", - "scope": 929, - "src": "1648:16:8", + "scope": 694, + "src": "1004:16:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -662,10 +765,10 @@ "typeString": "uint32" }, "typeName": { - "id": 924, + "id": 689, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "1648:6:8", + "src": "1004:6:2", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -676,12 +779,12 @@ }, { "constant": false, - "id": 927, + "id": 692, "indexed": false, "name": "timestamp", "nodeType": "VariableDeclaration", - "scope": 929, - "src": "1666:17:8", + "scope": 694, + "src": "1022:17:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -689,10 +792,10 @@ "typeString": "uint256" }, "typeName": { - "id": 926, + "id": 691, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1666:7:8", + "src": "1022:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -702,28 +805,28 @@ "visibility": "internal" } ], - "src": "1619:65:8" + "src": "975:65:2" }, - "src": "1606:79:8" + "src": "962:79:2" }, { "anonymous": false, "documentation": null, - "id": 939, + "id": 704, "name": "Withdrawal", "nodeType": "EventDefinition", "parameters": { - "id": 938, + "id": 703, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 931, + "id": 696, "indexed": false, "name": "to", "nodeType": "VariableDeclaration", - "scope": 939, - "src": "1705:10:8", + "scope": 704, + "src": "1061:10:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -731,10 +834,10 @@ "typeString": "address" }, "typeName": { - "id": 930, + "id": 695, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1705:7:8", + "src": "1061:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -746,12 +849,12 @@ }, { "constant": false, - "id": 933, + "id": 698, "indexed": false, "name": "nullifierHash", "nodeType": "VariableDeclaration", - "scope": 939, - "src": "1717:21:8", + "scope": 704, + "src": "1073:21:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -759,10 +862,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 932, + "id": 697, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "1717:7:8", + "src": "1073:7:2", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -773,12 +876,12 @@ }, { "constant": false, - "id": 935, + "id": 700, "indexed": true, "name": "relayer", "nodeType": "VariableDeclaration", - "scope": 939, - "src": "1740:23:8", + "scope": 704, + "src": "1096:23:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -786,10 +889,10 @@ "typeString": "address" }, "typeName": { - "id": 934, + "id": 699, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1740:7:8", + "src": "1096:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -801,12 +904,12 @@ }, { "constant": false, - "id": 937, + "id": 702, "indexed": false, "name": "fee", "nodeType": "VariableDeclaration", - "scope": 939, - "src": "1765:11:8", + "scope": 704, + "src": "1121:11:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -814,10 +917,10 @@ "typeString": "uint256" }, "typeName": { - "id": 936, + "id": 701, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1765:7:8", + "src": "1121:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -827,15 +930,15 @@ "visibility": "internal" } ], - "src": "1704:73:8" + "src": "1060:73:2" }, - "src": "1688:90:8" + "src": "1044:90:2" }, { "body": { - "id": 972, + "id": 743, "nodeType": "Block", - "src": "2246:164:8", + "src": "1631:194:2", "statements": [ { "expression": { @@ -847,19 +950,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 956, + "id": 723, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 954, + "id": 721, "name": "_denomination", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 943, - "src": "2260:13:8", + "referencedDeclaration": 710, + "src": "1645:13:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -870,14 +973,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 955, + "id": 722, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2276:1:8", + "src": "1661:1:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -885,7 +988,7 @@ }, "value": "0" }, - "src": "2260:17:8", + "src": "1645:17:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -894,14 +997,14 @@ { "argumentTypes": null, "hexValue": "64656e6f6d696e6174696f6e2073686f756c642062652067726561746572207468616e2030", - "id": 957, + "id": 724, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "2279:39:8", + "src": "1664:39:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_04818fb803bf7e7ff6c9059d97eae335b77b108931ead0a529924d35ccaf3fc8", @@ -921,21 +1024,21 @@ "typeString": "literal_string \"denomination should be greater than 0\"" } ], - "id": 953, + "id": 720, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 3263, - 3264 + 1018, + 1019 ], - "referencedDeclaration": 3264, - "src": "2252:7:8", + "referencedDeclaration": 1019, + "src": "1637:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 958, + "id": 725, "isConstant": false, "isLValue": false, "isPure": false, @@ -943,34 +1046,34 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2252:67:8", + "src": "1637:67:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 959, + "id": 726, "nodeType": "ExpressionStatement", - "src": "2252:67:8" + "src": "1637:67:2" }, { "expression": { "argumentTypes": null, - "id": 962, + "id": 729, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 960, + "id": 727, "name": "verifier", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 907, - "src": "2325:8:8", + "referencedDeclaration": 670, + "src": "1710:8:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_IVerifier_$891", + "typeIdentifier": "t_contract$_IVerifier_$648", "typeString": "contract IVerifier" } }, @@ -978,43 +1081,89 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 961, + "id": 728, "name": "_verifier", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 941, - "src": "2336:9:8", + "referencedDeclaration": 706, + "src": "1721:9:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_IVerifier_$891", + "typeIdentifier": "t_contract$_IVerifier_$648", "typeString": "contract IVerifier" } }, - "src": "2325:20:8", + "src": "1710:20:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_IVerifier_$891", + "typeIdentifier": "t_contract$_IVerifier_$648", "typeString": "contract IVerifier" } }, - "id": 963, + "id": 730, "nodeType": "ExpressionStatement", - "src": "2325:20:8" + "src": "1710:20:2" }, { "expression": { "argumentTypes": null, - "id": 966, + "id": 733, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 964, + "id": 731, + "name": "feeManager", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 672, + "src": "1736:10:2", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IFeeManager_$654", + "typeString": "contract IFeeManager" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 732, + "name": "_feeManager", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 708, + "src": "1749:11:2", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IFeeManager_$654", + "typeString": "contract IFeeManager" + } + }, + "src": "1736:24:2", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IFeeManager_$654", + "typeString": "contract IFeeManager" + } + }, + "id": 734, + "nodeType": "ExpressionStatement", + "src": "1736:24:2" + }, + { + "expression": { + "argumentTypes": null, + "id": 737, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 735, "name": "operator", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 909, - "src": "2351:8:8", + "referencedDeclaration": 674, + "src": "1766:8:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1024,43 +1173,43 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 965, + "id": 736, "name": "_operator", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 947, - "src": "2362:9:8", + "referencedDeclaration": 714, + "src": "1777:9:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "2351:20:8", + "src": "1766:20:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 967, + "id": 738, "nodeType": "ExpressionStatement", - "src": "2351:20:8" + "src": "1766:20:2" }, { "expression": { "argumentTypes": null, - "id": 970, + "id": 741, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 968, + "id": 739, "name": "denomination", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 897, - "src": "2377:12:8", + "referencedDeclaration": 660, + "src": "1792:12:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1070,31 +1219,31 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 969, + "id": 740, "name": "_denomination", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 943, - "src": "2392:13:8", + "referencedDeclaration": 710, + "src": "1807:13:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "2377:28:8", + "src": "1792:28:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 971, + "id": 742, "nodeType": "ExpressionStatement", - "src": "2377:28:8" + "src": "1792:28:2" } ] }, "documentation": "@dev The constructor\n@param _verifier the address of SNARK verifier for this contract\n@param _denomination transfer amount for each deposit\n@param _merkleTreeHeight the height of deposits' Merkle Tree\n@param _operator operator address (see operator comment above)", - "id": 973, + "id": 744, "implemented": true, "kind": "constructor", "modifiers": [ @@ -1102,64 +1251,64 @@ "arguments": [ { "argumentTypes": null, - "id": 950, + "id": 717, "name": "_merkleTreeHeight", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 945, - "src": "2220:17:8", + "referencedDeclaration": 712, + "src": "1605:17:2", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } } ], - "id": 951, + "id": 718, "modifierName": { "argumentTypes": null, - "id": 949, + "id": 716, "name": "MerkleTreeWithHistory", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 694, - "src": "2198:21:8", + "referencedDeclaration": 632, + "src": "1583:21:2", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_MerkleTreeWithHistory_$694_$", + "typeIdentifier": "t_type$_t_contract$_MerkleTreeWithHistory_$632_$", "typeString": "type(contract MerkleTreeWithHistory)" } }, "nodeType": "ModifierInvocation", - "src": "2198:40:8" + "src": "1583:40:2" } ], "name": "", "nodeType": "FunctionDefinition", "parameters": { - "id": 948, + "id": 715, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 941, + "id": 706, "name": "_verifier", "nodeType": "VariableDeclaration", - "scope": 973, - "src": "2094:19:8", + "scope": 744, + "src": "1450:19:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_IVerifier_$891", + "typeIdentifier": "t_contract$_IVerifier_$648", "typeString": "contract IVerifier" }, "typeName": { "contractScope": null, - "id": 940, + "id": 705, "name": "IVerifier", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 891, - "src": "2094:9:8", + "referencedDeclaration": 648, + "src": "1450:9:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_IVerifier_$891", + "typeIdentifier": "t_contract$_IVerifier_$648", "typeString": "contract IVerifier" } }, @@ -1168,11 +1317,39 @@ }, { "constant": false, - "id": 943, + "id": 708, + "name": "_feeManager", + "nodeType": "VariableDeclaration", + "scope": 744, + "src": "1475:23:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IFeeManager_$654", + "typeString": "contract IFeeManager" + }, + "typeName": { + "contractScope": null, + "id": 707, + "name": "IFeeManager", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 654, + "src": "1475:11:2", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IFeeManager_$654", + "typeString": "contract IFeeManager" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 710, "name": "_denomination", "nodeType": "VariableDeclaration", - "scope": 973, - "src": "2119:21:8", + "scope": 744, + "src": "1504:21:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1180,10 +1357,10 @@ "typeString": "uint256" }, "typeName": { - "id": 942, + "id": 709, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2119:7:8", + "src": "1504:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1194,11 +1371,11 @@ }, { "constant": false, - "id": 945, + "id": 712, "name": "_merkleTreeHeight", "nodeType": "VariableDeclaration", - "scope": 973, - "src": "2146:24:8", + "scope": 744, + "src": "1531:24:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1206,10 +1383,10 @@ "typeString": "uint32" }, "typeName": { - "id": 944, + "id": 711, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "2146:6:8", + "src": "1531:6:2", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -1220,11 +1397,11 @@ }, { "constant": false, - "id": 947, + "id": 714, "name": "_operator", "nodeType": "VariableDeclaration", - "scope": 973, - "src": "2176:17:8", + "scope": 744, + "src": "1561:17:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1232,10 +1409,10 @@ "typeString": "address" }, "typeName": { - "id": 946, + "id": 713, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2176:7:8", + "src": "1561:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -1246,25 +1423,25 @@ "visibility": "internal" } ], - "src": "2088:109:8" + "src": "1444:138:2" }, "returnParameters": { - "id": 952, + "id": 719, "nodeType": "ParameterList", "parameters": [], - "src": "2246:0:8" + "src": "1631:0:2" }, - "scope": 1194, - "src": "2077:333:8", + "scope": 970, + "src": "1433:392:2", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 1010, + "id": 781, "nodeType": "Block", - "src": "2726:256:8", + "src": "2141:256:2", "statements": [ { "expression": { @@ -1272,7 +1449,7 @@ "arguments": [ { "argumentTypes": null, - "id": 984, + "id": 755, "isConstant": false, "isLValue": false, "isPure": false, @@ -1280,31 +1457,31 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "2740:25:8", + "src": "2155:25:2", "subExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 981, + "id": 752, "name": "commitments", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 905, - "src": "2741:11:8", + "referencedDeclaration": 668, + "src": "2156:11:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", "typeString": "mapping(bytes32 => bool)" } }, - "id": 983, + "id": 754, "indexExpression": { "argumentTypes": null, - "id": 982, + "id": 753, "name": "_commitment", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 975, - "src": "2753:11:8", + "referencedDeclaration": 746, + "src": "2168:11:2", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -1315,7 +1492,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "2741:24:8", + "src": "2156:24:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1329,14 +1506,14 @@ { "argumentTypes": null, "hexValue": "54686520636f6d6d69746d656e7420686173206265656e207375626d6974746564", - "id": 985, + "id": 756, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "2767:35:8", + "src": "2182:35:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_ae5f231636554c1cb3bf839359e4dfbb338ccb221c7c5dbdf2da91ddc6e2ee6b", @@ -1356,21 +1533,21 @@ "typeString": "literal_string \"The commitment has been submitted\"" } ], - "id": 980, + "id": 751, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 3263, - 3264 + 1018, + 1019 ], - "referencedDeclaration": 3264, - "src": "2732:7:8", + "referencedDeclaration": 1019, + "src": "2147:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 986, + "id": 757, "isConstant": false, "isLValue": false, "isPure": false, @@ -1378,28 +1555,28 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2732:71:8", + "src": "2147:71:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 987, + "id": 758, "nodeType": "ExpressionStatement", - "src": "2732:71:8" + "src": "2147:71:2" }, { "assignments": [ - 989 + 760 ], "declarations": [ { "constant": false, - "id": 989, + "id": 760, "name": "insertedIndex", "nodeType": "VariableDeclaration", - "scope": 1010, - "src": "2810:20:8", + "scope": 781, + "src": "2225:20:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1407,10 +1584,10 @@ "typeString": "uint32" }, "typeName": { - "id": 988, + "id": 759, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "2810:6:8", + "src": "2225:6:2", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -1420,18 +1597,18 @@ "visibility": "internal" } ], - "id": 993, + "id": 764, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 991, + "id": 762, "name": "_commitment", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 975, - "src": "2841:11:8", + "referencedDeclaration": 746, + "src": "2256:11:2", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -1445,18 +1622,18 @@ "typeString": "bytes32" } ], - "id": 990, + "id": 761, "name": "_insert", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 636, - "src": "2833:7:8", + "referencedDeclaration": 574, + "src": "2248:7:2", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$returns$_t_uint32_$", "typeString": "function (bytes32) returns (uint32)" } }, - "id": 992, + "id": 763, "isConstant": false, "isLValue": false, "isPure": false, @@ -1464,19 +1641,19 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2833:20:8", + "src": "2248:20:2", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, "nodeType": "VariableDeclarationStatement", - "src": "2810:43:8" + "src": "2225:43:2" }, { "expression": { "argumentTypes": null, - "id": 998, + "id": 769, "isConstant": false, "isLValue": false, "isPure": false, @@ -1485,26 +1662,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 994, + "id": 765, "name": "commitments", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 905, - "src": "2859:11:8", + "referencedDeclaration": 668, + "src": "2274:11:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", "typeString": "mapping(bytes32 => bool)" } }, - "id": 996, + "id": 767, "indexExpression": { "argumentTypes": null, - "id": 995, + "id": 766, "name": "_commitment", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 975, - "src": "2871:11:8", + "referencedDeclaration": 746, + "src": "2286:11:2", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -1515,7 +1692,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "2859:24:8", + "src": "2274:24:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1526,14 +1703,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "74727565", - "id": 997, + "id": 768, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "2886:4:8", + "src": "2301:4:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -1541,15 +1718,15 @@ }, "value": "true" }, - "src": "2859:31:8", + "src": "2274:31:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 999, + "id": 770, "nodeType": "ExpressionStatement", - "src": "2859:31:8" + "src": "2274:31:2" }, { "expression": { @@ -1557,18 +1734,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 1000, + "id": 771, "name": "_processDeposit", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1014, - "src": "2896:15:8", + "referencedDeclaration": 785, + "src": "2311:15:2", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", "typeString": "function ()" } }, - "id": 1001, + "id": 772, "isConstant": false, "isLValue": false, "isPure": false, @@ -1576,15 +1753,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2896:17:8", + "src": "2311:17:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1002, + "id": 773, "nodeType": "ExpressionStatement", - "src": "2896:17:8" + "src": "2311:17:2" }, { "eventCall": { @@ -1592,12 +1769,12 @@ "arguments": [ { "argumentTypes": null, - "id": 1004, + "id": 775, "name": "_commitment", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 975, - "src": "2933:11:8", + "referencedDeclaration": 746, + "src": "2348:11:2", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -1605,12 +1782,12 @@ }, { "argumentTypes": null, - "id": 1005, + "id": 776, "name": "insertedIndex", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 989, - "src": "2946:13:8", + "referencedDeclaration": 760, + "src": "2361:13:2", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -1620,18 +1797,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1006, + "id": 777, "name": "block", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3250, - "src": "2961:5:8", + "referencedDeclaration": 1005, + "src": "2376:5:2", "typeDescriptions": { "typeIdentifier": "t_magic_block", "typeString": "block" } }, - "id": 1007, + "id": 778, "isConstant": false, "isLValue": false, "isPure": false, @@ -1639,7 +1816,7 @@ "memberName": "timestamp", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "2961:15:8", + "src": "2376:15:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1661,18 +1838,18 @@ "typeString": "uint256" } ], - "id": 1003, + "id": 774, "name": "Deposit", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 929, - "src": "2925:7:8", + "referencedDeclaration": 694, + "src": "2340:7:2", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_uint32_$_t_uint256_$returns$__$", "typeString": "function (bytes32,uint32,uint256)" } }, - "id": 1008, + "id": 779, "isConstant": false, "isLValue": false, "isPure": false, @@ -1680,56 +1857,56 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2925:52:8", + "src": "2340:52:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1009, + "id": 780, "nodeType": "EmitStatement", - "src": "2920:57:8" + "src": "2335:57:2" } ] }, "documentation": "@dev Deposit funds into the contract. The caller must send (for ETH) or approve (for ERC20) value equal to or `denomination` of this instance.\n@param _commitment the note commitment, which is PedersenHash(nullifier + secret)", - "id": 1011, + "id": 782, "implemented": true, "kind": "function", "modifiers": [ { "arguments": null, - "id": 978, + "id": 749, "modifierName": { "argumentTypes": null, - "id": 977, + "id": 748, "name": "nonReentrant", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3244, - "src": "2713:12:8", + "referencedDeclaration": 999, + "src": "2128:12:2", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "2713:12:8" + "src": "2128:12:2" } ], "name": "deposit", "nodeType": "FunctionDefinition", "parameters": { - "id": 976, + "id": 747, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 975, + "id": 746, "name": "_commitment", "nodeType": "VariableDeclaration", - "scope": 1011, - "src": "2675:19:8", + "scope": 782, + "src": "2090:19:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1737,10 +1914,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 974, + "id": 745, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "2675:7:8", + "src": "2090:7:2", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -1750,16 +1927,16 @@ "visibility": "internal" } ], - "src": "2674:21:8" + "src": "2089:21:2" }, "returnParameters": { - "id": 979, + "id": 750, "nodeType": "ParameterList", "parameters": [], - "src": "2726:0:8" + "src": "2141:0:2" }, - "scope": 1194, - "src": "2658:324:8", + "scope": 970, + "src": "2073:324:2", "stateMutability": "payable", "superFunction": null, "visibility": "external" @@ -1767,35 +1944,35 @@ { "body": null, "documentation": "@dev this function is defined in a child contract ", - "id": 1014, + "id": 785, "implemented": false, "kind": "function", "modifiers": [], "name": "_processDeposit", "nodeType": "FunctionDefinition", "parameters": { - "id": 1012, + "id": 783, "nodeType": "ParameterList", "parameters": [], - "src": "3069:2:8" + "src": "2484:2:2" }, "returnParameters": { - "id": 1013, + "id": 784, "nodeType": "ParameterList", "parameters": [], - "src": "3080:0:8" + "src": "2495:0:2" }, - "scope": 1194, - "src": "3045:36:8", + "scope": 970, + "src": "2460:36:2", "stateMutability": "nonpayable", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 1098, + "id": 872, "nodeType": "Block", - "src": "3673:586:8", + "src": "3088:606:2", "statements": [ { "expression": { @@ -1807,19 +1984,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1036, + "id": 807, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1034, + "id": 805, "name": "_fee", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1026, - "src": "3687:4:8", + "referencedDeclaration": 797, + "src": "3102:4:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1829,18 +2006,18 @@ "operator": "<=", "rightExpression": { "argumentTypes": null, - "id": 1035, + "id": 806, "name": "denomination", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 897, - "src": "3695:12:8", + "referencedDeclaration": 660, + "src": "3110:12:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3687:20:8", + "src": "3102:20:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1849,14 +2026,14 @@ { "argumentTypes": null, "hexValue": "4665652065786365656473207472616e736665722076616c7565", - "id": 1037, + "id": 808, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "3709:28:8", + "src": "3124:28:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_2ce218df547d416f80ea8a5deadaf9453d23523ffa5f2e880a48adfdb4053a9c", @@ -1876,21 +2053,21 @@ "typeString": "literal_string \"Fee exceeds transfer value\"" } ], - "id": 1033, + "id": 804, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 3263, - 3264 + 1018, + 1019 ], - "referencedDeclaration": 3264, - "src": "3679:7:8", + "referencedDeclaration": 1019, + "src": "3094:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1038, + "id": 809, "isConstant": false, "isLValue": false, "isPure": false, @@ -1898,15 +2075,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3679:59:8", + "src": "3094:59:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1039, + "id": 810, "nodeType": "ExpressionStatement", - "src": "3679:59:8" + "src": "3094:59:2" }, { "expression": { @@ -1914,7 +2091,7 @@ "arguments": [ { "argumentTypes": null, - "id": 1044, + "id": 815, "isConstant": false, "isLValue": false, "isPure": false, @@ -1922,31 +2099,31 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "3752:32:8", + "src": "3167:32:2", "subExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1041, + "id": 812, "name": "nullifierHashes", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 901, - "src": "3753:15:8", + "referencedDeclaration": 664, + "src": "3168:15:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", "typeString": "mapping(bytes32 => bool)" } }, - "id": 1043, + "id": 814, "indexExpression": { "argumentTypes": null, - "id": 1042, + "id": 813, "name": "_nullifierHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1020, - "src": "3769:14:8", + "referencedDeclaration": 791, + "src": "3184:14:2", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -1957,7 +2134,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3753:31:8", + "src": "3168:31:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1971,14 +2148,14 @@ { "argumentTypes": null, "hexValue": "546865206e6f746520686173206265656e20616c7265616479207370656e74", - "id": 1045, + "id": 816, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "3786:33:8", + "src": "3201:33:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_a1bef92d7a18b1c6975dc8de68df6140a52afea05a2c6c91da2b1562c617e896", @@ -1998,21 +2175,21 @@ "typeString": "literal_string \"The note has been already spent\"" } ], - "id": 1040, + "id": 811, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 3263, - 3264 + 1018, + 1019 ], - "referencedDeclaration": 3264, - "src": "3744:7:8", + "referencedDeclaration": 1019, + "src": "3159:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1046, + "id": 817, "isConstant": false, "isLValue": false, "isPure": false, @@ -2020,15 +2197,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3744:76:8", + "src": "3159:76:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1047, + "id": 818, "nodeType": "ExpressionStatement", - "src": "3744:76:8" + "src": "3159:76:2" }, { "expression": { @@ -2039,12 +2216,12 @@ "arguments": [ { "argumentTypes": null, - "id": 1050, + "id": 821, "name": "_root", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1018, - "src": "3846:5:8", + "referencedDeclaration": 789, + "src": "3261:5:2", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -2058,18 +2235,18 @@ "typeString": "bytes32" } ], - "id": 1049, + "id": 820, "name": "isKnownRoot", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 683, - "src": "3834:11:8", + "referencedDeclaration": 621, + "src": "3249:11:2", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_bool_$", "typeString": "function (bytes32) view returns (bool)" } }, - "id": 1051, + "id": 822, "isConstant": false, "isLValue": false, "isPure": false, @@ -2077,7 +2254,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3834:18:8", + "src": "3249:18:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2086,14 +2263,14 @@ { "argumentTypes": null, "hexValue": "43616e6e6f742066696e6420796f7572206d65726b6c6520726f6f74", - "id": 1052, + "id": 823, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "3854:30:8", + "src": "3269:30:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_2a69086763073955418d2fd7dfee3d2f1fbc5b21047a216b7855d3f313d8e204", @@ -2113,21 +2290,21 @@ "typeString": "literal_string \"Cannot find your merkle root\"" } ], - "id": 1048, + "id": 819, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 3263, - 3264 + 1018, + 1019 ], - "referencedDeclaration": 3264, - "src": "3826:7:8", + "referencedDeclaration": 1019, + "src": "3241:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1053, + "id": 824, "isConstant": false, "isLValue": false, "isPure": false, @@ -2135,15 +2312,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3826:59:8", + "src": "3241:59:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1054, + "id": 825, "nodeType": "ExpressionStatement", - "src": "3826:59:8" + "src": "3241:59:2" }, { "expression": { @@ -2154,12 +2331,12 @@ "arguments": [ { "argumentTypes": null, - "id": 1058, + "id": 829, "name": "_proof", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1016, - "src": "3953:6:8", + "referencedDeclaration": 787, + "src": "3368:6:2", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes calldata" @@ -2173,12 +2350,12 @@ "arguments": [ { "argumentTypes": null, - "id": 1060, + "id": 831, "name": "_root", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1018, - "src": "3970:5:8", + "referencedDeclaration": 789, + "src": "3385:5:2", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -2192,20 +2369,20 @@ "typeString": "bytes32" } ], - "id": 1059, + "id": 830, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "3962:7:8", + "src": "3377:7:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint256_$", "typeString": "type(uint256)" }, "typeName": "uint256" }, - "id": 1061, + "id": 832, "isConstant": false, "isLValue": false, "isPure": false, @@ -2213,7 +2390,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3962:14:8", + "src": "3377:14:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2224,12 +2401,12 @@ "arguments": [ { "argumentTypes": null, - "id": 1063, + "id": 834, "name": "_nullifierHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1020, - "src": "3986:14:8", + "referencedDeclaration": 791, + "src": "3401:14:2", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -2243,20 +2420,20 @@ "typeString": "bytes32" } ], - "id": 1062, + "id": 833, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "3978:7:8", + "src": "3393:7:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint256_$", "typeString": "type(uint256)" }, "typeName": "uint256" }, - "id": 1064, + "id": 835, "isConstant": false, "isLValue": false, "isPure": false, @@ -2264,7 +2441,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3978:23:8", + "src": "3393:23:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2275,12 +2452,12 @@ "arguments": [ { "argumentTypes": null, - "id": 1066, + "id": 837, "name": "_recipient", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1022, - "src": "4011:10:8", + "referencedDeclaration": 793, + "src": "3426:10:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -2294,20 +2471,20 @@ "typeString": "address payable" } ], - "id": 1065, + "id": 836, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "4003:7:8", + "src": "3418:7:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint256_$", "typeString": "type(uint256)" }, "typeName": "uint256" }, - "id": 1067, + "id": 838, "isConstant": false, "isLValue": false, "isPure": false, @@ -2315,7 +2492,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4003:19:8", + "src": "3418:19:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2326,12 +2503,12 @@ "arguments": [ { "argumentTypes": null, - "id": 1069, + "id": 840, "name": "_relayer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1024, - "src": "4032:8:8", + "referencedDeclaration": 795, + "src": "3447:8:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -2345,20 +2522,20 @@ "typeString": "address payable" } ], - "id": 1068, + "id": 839, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "4024:7:8", + "src": "3439:7:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint256_$", "typeString": "type(uint256)" }, "typeName": "uint256" }, - "id": 1070, + "id": 841, "isConstant": false, "isLValue": false, "isPure": false, @@ -2366,7 +2543,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4024:17:8", + "src": "3439:17:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2374,12 +2551,12 @@ }, { "argumentTypes": null, - "id": 1071, + "id": 842, "name": "_fee", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1026, - "src": "4043:4:8", + "referencedDeclaration": 797, + "src": "3458:4:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2387,26 +2564,26 @@ }, { "argumentTypes": null, - "id": 1072, + "id": 843, "name": "_refund", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1028, - "src": "4049:7:8", + "referencedDeclaration": 799, + "src": "3464:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], - "id": 1073, + "id": 844, "isConstant": false, "isInlineArray": true, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "3961:96:8", + "src": "3376:96:2", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$6_memory_ptr", "typeString": "uint256[6] memory" @@ -2426,32 +2603,32 @@ ], "expression": { "argumentTypes": null, - "id": 1056, + "id": 827, "name": "verifier", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 907, - "src": "3932:8:8", + "referencedDeclaration": 670, + "src": "3347:8:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_IVerifier_$891", + "typeIdentifier": "t_contract$_IVerifier_$648", "typeString": "contract IVerifier" } }, - "id": 1057, + "id": 828, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "verifyProof", "nodeType": "MemberAccess", - "referencedDeclaration": 890, - "src": "3932:20:8", + "referencedDeclaration": 647, + "src": "3347:20:2", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_bytes_memory_ptr_$_t_array$_t_uint256_$6_memory_ptr_$returns$_t_bool_$", "typeString": "function (bytes memory,uint256[6] memory) external returns (bool)" } }, - "id": 1074, + "id": 845, "isConstant": false, "isLValue": false, "isPure": false, @@ -2459,7 +2636,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3932:126:8", + "src": "3347:126:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2468,14 +2645,14 @@ { "argumentTypes": null, "hexValue": "496e76616c69642077697468647261772070726f6f66", - "id": 1075, + "id": 846, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "4060:24:8", + "src": "3475:24:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_7021ea58137dba96e572e94936410b0b0e4cbc344e1ab2ee7f47660768b81ff4", @@ -2495,21 +2672,21 @@ "typeString": "literal_string \"Invalid withdraw proof\"" } ], - "id": 1055, + "id": 826, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 3263, - 3264 + 1018, + 1019 ], - "referencedDeclaration": 3264, - "src": "3924:7:8", + "referencedDeclaration": 1019, + "src": "3339:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1076, + "id": 847, "isConstant": false, "isLValue": false, "isPure": false, @@ -2517,20 +2694,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3924:161:8", + "src": "3339:161:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1077, + "id": 848, "nodeType": "ExpressionStatement", - "src": "3924:161:8" + "src": "3339:161:2" }, { "expression": { "argumentTypes": null, - "id": 1082, + "id": 853, "isConstant": false, "isLValue": false, "isPure": false, @@ -2539,26 +2716,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1078, + "id": 849, "name": "nullifierHashes", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 901, - "src": "4092:15:8", + "referencedDeclaration": 664, + "src": "3507:15:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", "typeString": "mapping(bytes32 => bool)" } }, - "id": 1080, + "id": 851, "indexExpression": { "argumentTypes": null, - "id": 1079, + "id": 850, "name": "_nullifierHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1020, - "src": "4108:14:8", + "referencedDeclaration": 791, + "src": "3523:14:2", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -2569,7 +2746,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "4092:31:8", + "src": "3507:31:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2580,14 +2757,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "74727565", - "id": 1081, + "id": 852, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "4126:4:8", + "src": "3541:4:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -2595,15 +2772,15 @@ }, "value": "true" }, - "src": "4092:38:8", + "src": "3507:38:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 1083, + "id": 854, "nodeType": "ExpressionStatement", - "src": "4092:38:8" + "src": "3507:38:2" }, { "expression": { @@ -2611,12 +2788,12 @@ "arguments": [ { "argumentTypes": null, - "id": 1085, + "id": 856, "name": "_recipient", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1022, - "src": "4153:10:8", + "referencedDeclaration": 793, + "src": "3568:10:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -2624,12 +2801,12 @@ }, { "argumentTypes": null, - "id": 1086, + "id": 857, "name": "_relayer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1024, - "src": "4165:8:8", + "referencedDeclaration": 795, + "src": "3580:8:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -2637,12 +2814,12 @@ }, { "argumentTypes": null, - "id": 1087, + "id": 858, "name": "_fee", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1026, - "src": "4175:4:8", + "referencedDeclaration": 797, + "src": "3590:4:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2650,16 +2827,62 @@ }, { "argumentTypes": null, - "id": 1088, + "id": 859, "name": "_refund", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1028, - "src": "4181:7:8", + "referencedDeclaration": 799, + "src": "3596:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } + }, + { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "id": 860, + "name": "feeManager", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 672, + "src": "3605:10:2", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IFeeManager_$654", + "typeString": "contract IFeeManager" + } + }, + "id": 861, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "feeTo", + "nodeType": "MemberAccess", + "referencedDeclaration": 653, + "src": "3605:16:2", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_address_$", + "typeString": "function () view external returns (address)" + } + }, + "id": 862, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3605:18:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } } ], "expression": { @@ -2679,20 +2902,24 @@ { "typeIdentifier": "t_uint256", "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" } ], - "id": 1084, + "id": 855, "name": "_processWithdraw", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1110, - "src": "4136:16:8", + "referencedDeclaration": 886, + "src": "3551:16:2", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_payable_$_t_address_payable_$_t_uint256_$_t_uint256_$returns$__$", - "typeString": "function (address payable,address payable,uint256,uint256)" + "typeIdentifier": "t_function_internal_nonpayable$_t_address_payable_$_t_address_payable_$_t_uint256_$_t_uint256_$_t_address_$returns$__$", + "typeString": "function (address payable,address payable,uint256,uint256,address)" } }, - "id": 1089, + "id": 863, "isConstant": false, "isLValue": false, "isPure": false, @@ -2700,15 +2927,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4136:53:8", + "src": "3551:73:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1090, + "id": 864, "nodeType": "ExpressionStatement", - "src": "4136:53:8" + "src": "3551:73:2" }, { "eventCall": { @@ -2716,12 +2943,12 @@ "arguments": [ { "argumentTypes": null, - "id": 1092, + "id": 866, "name": "_recipient", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1022, - "src": "4211:10:8", + "referencedDeclaration": 793, + "src": "3646:10:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -2729,12 +2956,12 @@ }, { "argumentTypes": null, - "id": 1093, + "id": 867, "name": "_nullifierHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1020, - "src": "4223:14:8", + "referencedDeclaration": 791, + "src": "3658:14:2", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -2742,12 +2969,12 @@ }, { "argumentTypes": null, - "id": 1094, + "id": 868, "name": "_relayer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1024, - "src": "4239:8:8", + "referencedDeclaration": 795, + "src": "3674:8:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -2755,12 +2982,12 @@ }, { "argumentTypes": null, - "id": 1095, + "id": 869, "name": "_fee", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1026, - "src": "4249:4:8", + "referencedDeclaration": 797, + "src": "3684:4:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2786,18 +3013,18 @@ "typeString": "uint256" } ], - "id": 1091, + "id": 865, "name": "Withdrawal", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 939, - "src": "4200:10:8", + "referencedDeclaration": 704, + "src": "3635:10:2", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_bytes32_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,bytes32,address,uint256)" } }, - "id": 1096, + "id": 870, "isConstant": false, "isLValue": false, "isPure": false, @@ -2805,56 +3032,56 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4200:54:8", + "src": "3635:54:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1097, + "id": 871, "nodeType": "EmitStatement", - "src": "4195:59:8" + "src": "3630:59:2" } ] }, "documentation": "@dev Withdraw a deposit from the contract. `proof` is a zkSNARK proof data, and input is an array of circuit public inputs\n`input` array consists of:\n- merkle root of all deposits in the contract\n- hash of unique deposit nullifier to prevent double spends\n- the recipient of funds\n- optional fee that goes to the transaction sender (usually a relay)", - "id": 1099, + "id": 873, "implemented": true, "kind": "function", "modifiers": [ { "arguments": null, - "id": 1031, + "id": 802, "modifierName": { "argumentTypes": null, - "id": 1030, + "id": 801, "name": "nonReentrant", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3244, - "src": "3660:12:8", + "referencedDeclaration": 999, + "src": "3075:12:2", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "3660:12:8" + "src": "3075:12:2" } ], "name": "withdraw", "nodeType": "FunctionDefinition", "parameters": { - "id": 1029, + "id": 800, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1016, + "id": 787, "name": "_proof", "nodeType": "VariableDeclaration", - "scope": 1099, - "src": "3496:21:8", + "scope": 873, + "src": "2911:21:2", "stateVariable": false, "storageLocation": "calldata", "typeDescriptions": { @@ -2862,10 +3089,10 @@ "typeString": "bytes" }, "typeName": { - "id": 1015, + "id": 786, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "3496:5:8", + "src": "2911:5:2", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -2876,11 +3103,11 @@ }, { "constant": false, - "id": 1018, + "id": 789, "name": "_root", "nodeType": "VariableDeclaration", - "scope": 1099, - "src": "3519:13:8", + "scope": 873, + "src": "2934:13:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2888,10 +3115,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 1017, + "id": 788, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "3519:7:8", + "src": "2934:7:2", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -2902,11 +3129,11 @@ }, { "constant": false, - "id": 1020, + "id": 791, "name": "_nullifierHash", "nodeType": "VariableDeclaration", - "scope": 1099, - "src": "3534:22:8", + "scope": 873, + "src": "2949:22:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2914,10 +3141,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 1019, + "id": 790, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "3534:7:8", + "src": "2949:7:2", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -2928,11 +3155,11 @@ }, { "constant": false, - "id": 1022, + "id": 793, "name": "_recipient", "nodeType": "VariableDeclaration", - "scope": 1099, - "src": "3558:26:8", + "scope": 873, + "src": "2973:26:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2940,10 +3167,10 @@ "typeString": "address payable" }, "typeName": { - "id": 1021, + "id": 792, "name": "address", "nodeType": "ElementaryTypeName", - "src": "3558:15:8", + "src": "2973:15:2", "stateMutability": "payable", "typeDescriptions": { "typeIdentifier": "t_address_payable", @@ -2955,11 +3182,11 @@ }, { "constant": false, - "id": 1024, + "id": 795, "name": "_relayer", "nodeType": "VariableDeclaration", - "scope": 1099, - "src": "3586:24:8", + "scope": 873, + "src": "3001:24:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2967,10 +3194,10 @@ "typeString": "address payable" }, "typeName": { - "id": 1023, + "id": 794, "name": "address", "nodeType": "ElementaryTypeName", - "src": "3586:15:8", + "src": "3001:15:2", "stateMutability": "payable", "typeDescriptions": { "typeIdentifier": "t_address_payable", @@ -2982,11 +3209,11 @@ }, { "constant": false, - "id": 1026, + "id": 797, "name": "_fee", "nodeType": "VariableDeclaration", - "scope": 1099, - "src": "3612:12:8", + "scope": 873, + "src": "3027:12:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2994,10 +3221,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1025, + "id": 796, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "3612:7:8", + "src": "3027:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3008,11 +3235,11 @@ }, { "constant": false, - "id": 1028, + "id": 799, "name": "_refund", "nodeType": "VariableDeclaration", - "scope": 1099, - "src": "3626:15:8", + "scope": 873, + "src": "3041:15:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3020,10 +3247,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1027, + "id": 798, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "3626:7:8", + "src": "3041:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3033,16 +3260,16 @@ "visibility": "internal" } ], - "src": "3495:147:8" + "src": "2910:147:2" }, "returnParameters": { - "id": 1032, + "id": 803, "nodeType": "ParameterList", "parameters": [], - "src": "3673:0:8" + "src": "3088:0:2" }, - "scope": 1194, - "src": "3478:781:8", + "scope": 970, + "src": "2893:801:2", "stateMutability": "payable", "superFunction": null, "visibility": "external" @@ -3050,23 +3277,23 @@ { "body": null, "documentation": "@dev this function is defined in a child contract ", - "id": 1110, + "id": 886, "implemented": false, "kind": "function", "modifiers": [], "name": "_processWithdraw", "nodeType": "FunctionDefinition", "parameters": { - "id": 1108, + "id": 884, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1101, + "id": 875, "name": "_recipient", "nodeType": "VariableDeclaration", - "scope": 1110, - "src": "4348:26:8", + "scope": 886, + "src": "3783:26:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3074,10 +3301,10 @@ "typeString": "address payable" }, "typeName": { - "id": 1100, + "id": 874, "name": "address", "nodeType": "ElementaryTypeName", - "src": "4348:15:8", + "src": "3783:15:2", "stateMutability": "payable", "typeDescriptions": { "typeIdentifier": "t_address_payable", @@ -3089,11 +3316,11 @@ }, { "constant": false, - "id": 1103, + "id": 877, "name": "_relayer", "nodeType": "VariableDeclaration", - "scope": 1110, - "src": "4376:24:8", + "scope": 886, + "src": "3811:24:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3101,10 +3328,10 @@ "typeString": "address payable" }, "typeName": { - "id": 1102, + "id": 876, "name": "address", "nodeType": "ElementaryTypeName", - "src": "4376:15:8", + "src": "3811:15:2", "stateMutability": "payable", "typeDescriptions": { "typeIdentifier": "t_address_payable", @@ -3116,11 +3343,11 @@ }, { "constant": false, - "id": 1105, - "name": "_fee", + "id": 879, + "name": "_relayer_fee", "nodeType": "VariableDeclaration", - "scope": 1110, - "src": "4402:12:8", + "scope": 886, + "src": "3837:20:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3128,10 +3355,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1104, + "id": 878, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "4402:7:8", + "src": "3837:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3142,11 +3369,11 @@ }, { "constant": false, - "id": 1107, + "id": 881, "name": "_refund", "nodeType": "VariableDeclaration", - "scope": 1110, - "src": "4416:15:8", + "scope": 886, + "src": "3859:15:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3154,10 +3381,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1106, + "id": 880, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "4416:7:8", + "src": "3859:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3165,53 +3392,80 @@ }, "value": null, "visibility": "internal" + }, + { + "constant": false, + "id": 883, + "name": "_feeTo", + "nodeType": "VariableDeclaration", + "scope": 886, + "src": "3876:14:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 882, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3876:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" } ], - "src": "4347:85:8" + "src": "3782:109:2" }, "returnParameters": { - "id": 1109, + "id": 885, "nodeType": "ParameterList", "parameters": [], - "src": "4441:0:8" + "src": "3900:0:2" }, - "scope": 1194, - "src": "4322:120:8", + "scope": 970, + "src": "3757:144:2", "stateMutability": "nonpayable", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 1121, + "id": 897, "nodeType": "Block", - "src": "4559:49:8", + "src": "4018:49:2", "statements": [ { "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1117, + "id": 893, "name": "nullifierHashes", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 901, - "src": "4572:15:8", + "referencedDeclaration": 664, + "src": "4031:15:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", "typeString": "mapping(bytes32 => bool)" } }, - "id": 1119, + "id": 895, "indexExpression": { "argumentTypes": null, - "id": 1118, + "id": 894, "name": "_nullifierHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1112, - "src": "4588:14:8", + "referencedDeclaration": 888, + "src": "4047:14:2", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -3222,37 +3476,37 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "4572:31:8", + "src": "4031:31:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "functionReturnParameters": 1116, - "id": 1120, + "functionReturnParameters": 892, + "id": 896, "nodeType": "Return", - "src": "4565:38:8" + "src": "4024:38:2" } ] }, "documentation": "@dev whether a note is already spent ", - "id": 1122, + "id": 898, "implemented": true, "kind": "function", "modifiers": [], "name": "isSpent", "nodeType": "FunctionDefinition", "parameters": { - "id": 1113, + "id": 889, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1112, + "id": 888, "name": "_nullifierHash", "nodeType": "VariableDeclaration", - "scope": 1122, - "src": "4509:22:8", + "scope": 898, + "src": "3968:22:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3260,10 +3514,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 1111, + "id": 887, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "4509:7:8", + "src": "3968:7:2", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -3273,19 +3527,19 @@ "visibility": "internal" } ], - "src": "4508:24:8" + "src": "3967:24:2" }, "returnParameters": { - "id": 1116, + "id": 892, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1115, + "id": 891, "name": "", "nodeType": "VariableDeclaration", - "scope": 1122, - "src": "4553:4:8", + "scope": 898, + "src": "4012:4:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3293,10 +3547,10 @@ "typeString": "bool" }, "typeName": { - "id": 1114, + "id": 890, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "4553:4:8", + "src": "4012:4:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -3306,36 +3560,36 @@ "visibility": "internal" } ], - "src": "4552:6:8" + "src": "4011:6:2" }, - "scope": 1194, - "src": "4492:116:8", + "scope": 970, + "src": "3951:116:2", "stateMutability": "view", "superFunction": null, "visibility": "public" }, { "body": { - "id": 1166, + "id": 942, "nodeType": "Block", - "src": "4771:191:8", + "src": "4230:191:2", "statements": [ { "expression": { "argumentTypes": null, - "id": 1138, + "id": 914, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 1131, + "id": 907, "name": "spent", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1129, - "src": "4777:5:8", + "referencedDeclaration": 905, + "src": "4236:5:2", "typeDescriptions": { "typeIdentifier": "t_array$_t_bool_$dyn_memory_ptr", "typeString": "bool[] memory" @@ -3350,18 +3604,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1135, + "id": 911, "name": "_nullifierHashes", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1125, - "src": "4796:16:8", + "referencedDeclaration": 901, + "src": "4255:16:2", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr", "typeString": "bytes32[] calldata" } }, - "id": 1136, + "id": 912, "isConstant": false, "isLValue": false, "isPure": false, @@ -3369,7 +3623,7 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "4796:23:8", + "src": "4255:23:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3383,39 +3637,39 @@ "typeString": "uint256" } ], - "id": 1134, + "id": 910, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "NewExpression", - "src": "4785:10:8", + "src": "4244:10:2", "typeDescriptions": { "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_bool_$dyn_memory_$", "typeString": "function (uint256) pure returns (bool[] memory)" }, "typeName": { "baseType": { - "id": 1132, + "id": 908, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "4789:4:8", + "src": "4248:4:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 1133, + "id": 909, "length": null, "nodeType": "ArrayTypeName", - "src": "4789:6:8", + "src": "4248:6:2", "typeDescriptions": { "typeIdentifier": "t_array$_t_bool_$dyn_storage_ptr", "typeString": "bool[]" } } }, - "id": 1137, + "id": 913, "isConstant": false, "isLValue": false, "isPure": false, @@ -3423,27 +3677,27 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4785:35:8", + "src": "4244:35:2", "typeDescriptions": { "typeIdentifier": "t_array$_t_bool_$dyn_memory", "typeString": "bool[] memory" } }, - "src": "4777:43:8", + "src": "4236:43:2", "typeDescriptions": { "typeIdentifier": "t_array$_t_bool_$dyn_memory_ptr", "typeString": "bool[] memory" } }, - "id": 1139, + "id": 915, "nodeType": "ExpressionStatement", - "src": "4777:43:8" + "src": "4236:43:2" }, { "body": { - "id": 1164, + "id": 940, "nodeType": "Block", - "src": "4876:82:8", + "src": "4335:82:2", "statements": [ { "condition": { @@ -3453,26 +3707,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1152, + "id": 928, "name": "_nullifierHashes", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1125, - "src": "4896:16:8", + "referencedDeclaration": 901, + "src": "4355:16:2", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr", "typeString": "bytes32[] calldata" } }, - "id": 1154, + "id": 930, "indexExpression": { "argumentTypes": null, - "id": 1153, + "id": 929, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1141, - "src": "4913:1:8", + "referencedDeclaration": 917, + "src": "4372:1:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3483,7 +3737,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "4896:19:8", + "src": "4355:19:2", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -3497,18 +3751,18 @@ "typeString": "bytes32" } ], - "id": 1151, + "id": 927, "name": "isSpent", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1122, - "src": "4888:7:8", + "referencedDeclaration": 898, + "src": "4347:7:2", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_bool_$", "typeString": "function (bytes32) view returns (bool)" } }, - "id": 1155, + "id": 931, "isConstant": false, "isLValue": false, "isPure": false, @@ -3516,25 +3770,25 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4888:28:8", + "src": "4347:28:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 1163, + "id": 939, "nodeType": "IfStatement", - "src": "4884:68:8", + "src": "4343:68:2", "trueBody": { - "id": 1162, + "id": 938, "nodeType": "Block", - "src": "4918:34:8", + "src": "4377:34:2", "statements": [ { "expression": { "argumentTypes": null, - "id": 1160, + "id": 936, "isConstant": false, "isLValue": false, "isPure": false, @@ -3543,26 +3797,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1156, + "id": 932, "name": "spent", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1129, - "src": "4928:5:8", + "referencedDeclaration": 905, + "src": "4387:5:2", "typeDescriptions": { "typeIdentifier": "t_array$_t_bool_$dyn_memory_ptr", "typeString": "bool[] memory" } }, - "id": 1158, + "id": 934, "indexExpression": { "argumentTypes": null, - "id": 1157, + "id": 933, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1141, - "src": "4934:1:8", + "referencedDeclaration": 917, + "src": "4393:1:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3573,7 +3827,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "4928:8:8", + "src": "4387:8:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -3584,14 +3838,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "74727565", - "id": 1159, + "id": 935, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "4939:4:8", + "src": "4398:4:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -3599,15 +3853,15 @@ }, "value": "true" }, - "src": "4928:15:8", + "src": "4387:15:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 1161, + "id": 937, "nodeType": "ExpressionStatement", - "src": "4928:15:8" + "src": "4387:15:2" } ] } @@ -3620,19 +3874,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1147, + "id": 923, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1144, + "id": 920, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1141, - "src": "4842:1:8", + "referencedDeclaration": 917, + "src": "4301:1:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3644,18 +3898,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1145, + "id": 921, "name": "_nullifierHashes", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1125, - "src": "4846:16:8", + "referencedDeclaration": 901, + "src": "4305:16:2", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr", "typeString": "bytes32[] calldata" } }, - "id": 1146, + "id": 922, "isConstant": false, "isLValue": false, "isPure": false, @@ -3663,31 +3917,31 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "4846:23:8", + "src": "4305:23:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "4842:27:8", + "src": "4301:27:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 1165, + "id": 941, "initializationExpression": { "assignments": [ - 1141 + 917 ], "declarations": [ { "constant": false, - "id": 1141, + "id": 917, "name": "i", "nodeType": "VariableDeclaration", - "scope": 1165, - "src": "4830:6:8", + "scope": 941, + "src": "4289:6:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3695,10 +3949,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1140, + "id": 916, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "4830:4:8", + "src": "4289:4:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3708,18 +3962,18 @@ "visibility": "internal" } ], - "id": 1143, + "id": 919, "initialValue": { "argumentTypes": null, "hexValue": "30", - "id": 1142, + "id": 918, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4839:1:8", + "src": "4298:1:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -3728,12 +3982,12 @@ "value": "0" }, "nodeType": "VariableDeclarationStatement", - "src": "4830:10:8" + "src": "4289:10:2" }, "loopExpression": { "expression": { "argumentTypes": null, - "id": 1149, + "id": 925, "isConstant": false, "isLValue": false, "isPure": false, @@ -3741,15 +3995,15 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "4871:3:8", + "src": "4330:3:2", "subExpression": { "argumentTypes": null, - "id": 1148, + "id": 924, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1141, - "src": "4871:1:8", + "referencedDeclaration": 917, + "src": "4330:1:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3760,33 +4014,33 @@ "typeString": "uint256" } }, - "id": 1150, + "id": 926, "nodeType": "ExpressionStatement", - "src": "4871:3:8" + "src": "4330:3:2" }, "nodeType": "ForStatement", - "src": "4826:132:8" + "src": "4285:132:2" } ] }, "documentation": "@dev whether an array of notes is already spent ", - "id": 1167, + "id": 943, "implemented": true, "kind": "function", "modifiers": [], "name": "isSpentArray", "nodeType": "FunctionDefinition", "parameters": { - "id": 1126, + "id": 902, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1125, + "id": 901, "name": "_nullifierHashes", "nodeType": "VariableDeclaration", - "scope": 1167, - "src": "4691:35:8", + "scope": 943, + "src": "4150:35:2", "stateVariable": false, "storageLocation": "calldata", "typeDescriptions": { @@ -3795,19 +4049,19 @@ }, "typeName": { "baseType": { - "id": 1123, + "id": 899, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "4691:7:8", + "src": "4150:7:2", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "id": 1124, + "id": 900, "length": null, "nodeType": "ArrayTypeName", - "src": "4691:9:8", + "src": "4150:9:2", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", "typeString": "bytes32[]" @@ -3817,19 +4071,19 @@ "visibility": "internal" } ], - "src": "4690:37:8" + "src": "4149:37:2" }, "returnParameters": { - "id": 1130, + "id": 906, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1129, + "id": 905, "name": "spent", "nodeType": "VariableDeclaration", - "scope": 1167, - "src": "4750:19:8", + "scope": 943, + "src": "4209:19:2", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -3838,19 +4092,19 @@ }, "typeName": { "baseType": { - "id": 1127, + "id": 903, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "4750:4:8", + "src": "4209:4:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 1128, + "id": 904, "length": null, "nodeType": "ArrayTypeName", - "src": "4750:6:8", + "src": "4209:6:2", "typeDescriptions": { "typeIdentifier": "t_array$_t_bool_$dyn_storage_ptr", "typeString": "bool[]" @@ -3860,38 +4114,38 @@ "visibility": "internal" } ], - "src": "4749:21:8" + "src": "4208:21:2" }, - "scope": 1194, - "src": "4669:293:8", + "scope": 970, + "src": "4128:293:2", "stateMutability": "view", "superFunction": null, "visibility": "external" }, { "body": { - "id": 1180, + "id": 956, "nodeType": "Block", - "src": "5260:45:8", + "src": "4719:45:2", "statements": [ { "expression": { "argumentTypes": null, - "id": 1178, + "id": 954, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 1174, + "id": 950, "name": "verifier", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 907, - "src": "5266:8:8", + "referencedDeclaration": 670, + "src": "4725:8:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_IVerifier_$891", + "typeIdentifier": "t_contract$_IVerifier_$648", "typeString": "contract IVerifier" } }, @@ -3902,12 +4156,12 @@ "arguments": [ { "argumentTypes": null, - "id": 1176, + "id": 952, "name": "_newVerifier", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1169, - "src": "5287:12:8", + "referencedDeclaration": 945, + "src": "4746:12:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3921,18 +4175,18 @@ "typeString": "address" } ], - "id": 1175, + "id": 951, "name": "IVerifier", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 891, - "src": "5277:9:8", + "referencedDeclaration": 648, + "src": "4736:9:2", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IVerifier_$891_$", + "typeIdentifier": "t_type$_t_contract$_IVerifier_$648_$", "typeString": "type(contract IVerifier)" } }, - "id": 1177, + "id": 953, "isConstant": false, "isLValue": false, "isPure": false, @@ -3940,62 +4194,62 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5277:23:8", + "src": "4736:23:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_IVerifier_$891", + "typeIdentifier": "t_contract$_IVerifier_$648", "typeString": "contract IVerifier" } }, - "src": "5266:34:8", + "src": "4725:34:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_IVerifier_$891", + "typeIdentifier": "t_contract$_IVerifier_$648", "typeString": "contract IVerifier" } }, - "id": 1179, + "id": 955, "nodeType": "ExpressionStatement", - "src": "5266:34:8" + "src": "4725:34:2" } ] }, "documentation": "@dev allow operator to update SNARK verification keys. This is needed to update keys after the final trusted setup ceremony is held.\nAfter that operator rights are supposed to be transferred to zero address", - "id": 1181, + "id": 957, "implemented": true, "kind": "function", "modifiers": [ { "arguments": null, - "id": 1172, + "id": 948, "modifierName": { "argumentTypes": null, - "id": 1171, + "id": 947, "name": "onlyOperator", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 921, - "src": "5247:12:8", + "referencedDeclaration": 686, + "src": "4706:12:2", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "5247:12:8" + "src": "4706:12:2" } ], "name": "updateVerifier", "nodeType": "FunctionDefinition", "parameters": { - "id": 1170, + "id": 946, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1169, + "id": 945, "name": "_newVerifier", "nodeType": "VariableDeclaration", - "scope": 1181, - "src": "5216:20:8", + "scope": 957, + "src": "4675:20:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4003,10 +4257,10 @@ "typeString": "address" }, "typeName": { - "id": 1168, + "id": 944, "name": "address", "nodeType": "ElementaryTypeName", - "src": "5216:7:8", + "src": "4675:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -4017,42 +4271,42 @@ "visibility": "internal" } ], - "src": "5215:22:8" + "src": "4674:22:2" }, "returnParameters": { - "id": 1173, + "id": 949, "nodeType": "ParameterList", "parameters": [], - "src": "5260:0:8" + "src": "4719:0:2" }, - "scope": 1194, - "src": "5192:113:8", + "scope": 970, + "src": "4651:113:2", "stateMutability": "nonpayable", "superFunction": null, "visibility": "external" }, { "body": { - "id": 1192, + "id": 968, "nodeType": "Block", - "src": "5423:34:8", + "src": "4882:34:2", "statements": [ { "expression": { "argumentTypes": null, - "id": 1190, + "id": 966, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 1188, + "id": 964, "name": "operator", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 909, - "src": "5429:8:8", + "referencedDeclaration": 674, + "src": "4888:8:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4062,67 +4316,67 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 1189, + "id": 965, "name": "_newOperator", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1183, - "src": "5440:12:8", + "referencedDeclaration": 959, + "src": "4899:12:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "5429:23:8", + "src": "4888:23:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 1191, + "id": 967, "nodeType": "ExpressionStatement", - "src": "5429:23:8" + "src": "4888:23:2" } ] }, "documentation": "@dev operator can change his address ", - "id": 1193, + "id": 969, "implemented": true, "kind": "function", "modifiers": [ { "arguments": null, - "id": 1186, + "id": 962, "modifierName": { "argumentTypes": null, - "id": 1185, + "id": 961, "name": "onlyOperator", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 921, - "src": "5410:12:8", + "referencedDeclaration": 686, + "src": "4869:12:2", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "5410:12:8" + "src": "4869:12:2" } ], "name": "changeOperator", "nodeType": "FunctionDefinition", "parameters": { - "id": 1184, + "id": 960, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1183, + "id": 959, "name": "_newOperator", "nodeType": "VariableDeclaration", - "scope": 1193, - "src": "5379:20:8", + "scope": 969, + "src": "4838:20:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4130,10 +4384,10 @@ "typeString": "address" }, "typeName": { - "id": 1182, + "id": 958, "name": "address", "nodeType": "ElementaryTypeName", - "src": "5379:7:8", + "src": "4838:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -4144,36 +4398,39 @@ "visibility": "internal" } ], - "src": "5378:22:8" + "src": "4837:22:2" }, "returnParameters": { - "id": 1187, + "id": 963, "nodeType": "ParameterList", "parameters": [], - "src": "5423:0:8" + "src": "4882:0:2" }, - "scope": 1194, - "src": "5355:102:8", + "scope": 970, + "src": "4814:102:2", "stateMutability": "nonpayable", "superFunction": null, "visibility": "external" } ], - "scope": 1195, - "src": "995:4464:8" + "scope": 971, + "src": "318:4600:2" } ], - "src": "755:4705:8" + "src": "0:4919:2" }, "legacyAST": { "attributes": { "absolutePath": "/Users/brianli/dotfiles/tornado-core/contracts/Tornado.sol", "exportedSymbols": { + "IFeeManager": [ + 654 + ], "IVerifier": [ - 891 + 648 ], "Tornado": [ - 1194 + 970 ] } }, @@ -4186,39 +4443,39 @@ ".17" ] }, - "id": 877, + "id": 634, "name": "PragmaDirective", - "src": "755:23:8" + "src": "0:23:2" }, { "attributes": { - "SourceUnit": 695, + "SourceUnit": 633, "absolutePath": "/Users/brianli/dotfiles/tornado-core/contracts/MerkleTreeWithHistory.sol", "file": "./MerkleTreeWithHistory.sol", - "scope": 1195, + "scope": 971, "symbolAliases": [ null ], "unitAlias": "" }, - "id": 878, + "id": 635, "name": "ImportDirective", - "src": "780:37:8" + "src": "25:37:2" }, { "attributes": { - "SourceUnit": 3246, + "SourceUnit": 1001, "absolutePath": "@openzeppelin/contracts/utils/ReentrancyGuard.sol", "file": "@openzeppelin/contracts/utils/ReentrancyGuard.sol", - "scope": 1195, + "scope": 971, "symbolAliases": [ null ], "unitAlias": "" }, - "id": 879, + "id": 636, "name": "ImportDirective", - "src": "818:59:8" + "src": "63:59:2" }, { "attributes": { @@ -4232,10 +4489,10 @@ "documentation": null, "fullyImplemented": false, "linearizedBaseContracts": [ - 891 + 648 ], "name": "IVerifier", - "scope": 1195 + "scope": 971 }, "children": [ { @@ -4249,7 +4506,7 @@ null ], "name": "verifyProof", - "scope": 891, + "scope": 648, "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" @@ -4261,7 +4518,7 @@ "attributes": { "constant": false, "name": "_proof", - "scope": 890, + "scope": 647, "stateVariable": false, "storageLocation": "memory", "type": "bytes", @@ -4274,20 +4531,20 @@ "name": "bytes", "type": "bytes" }, - "id": 880, + "id": 637, "name": "ElementaryTypeName", - "src": "923:5:8" + "src": "168:5:2" } ], - "id": 881, + "id": 638, "name": "VariableDeclaration", - "src": "923:19:8" + "src": "168:19:2" }, { "attributes": { "constant": false, "name": "_input", - "scope": 890, + "scope": 647, "stateVariable": false, "storageLocation": "memory", "type": "uint256[6]", @@ -4305,9 +4562,9 @@ "name": "uint256", "type": "uint256" }, - "id": 882, + "id": 639, "name": "ElementaryTypeName", - "src": "944:7:8" + "src": "189:7:2" }, { "attributes": { @@ -4322,24 +4579,24 @@ "type": "int_const 6", "value": "6" }, - "id": 883, + "id": 640, "name": "Literal", - "src": "952:1:8" + "src": "197:1:2" } ], - "id": 884, + "id": 641, "name": "ArrayTypeName", - "src": "944:10:8" + "src": "189:10:2" } ], - "id": 885, + "id": 642, "name": "VariableDeclaration", - "src": "944:24:8" + "src": "189:24:2" } ], - "id": 886, + "id": 643, "name": "ParameterList", - "src": "922:47:8" + "src": "167:47:2" }, { "children": [ @@ -4347,7 +4604,7 @@ "attributes": { "constant": false, "name": "", - "scope": 890, + "scope": 647, "stateVariable": false, "storageLocation": "default", "type": "bool", @@ -4360,46 +4617,136 @@ "name": "bool", "type": "bool" }, - "id": 887, + "id": 644, "name": "ElementaryTypeName", - "src": "985:4:8" + "src": "230:4:2" } ], - "id": 888, + "id": 645, "name": "VariableDeclaration", - "src": "985:4:8" + "src": "230:4:2" } ], - "id": 889, + "id": 646, "name": "ParameterList", - "src": "984:6:8" + "src": "229:6:2" } ], - "id": 890, + "id": 647, "name": "FunctionDefinition", - "src": "902:89:8" + "src": "147:89:2" } ], - "id": 891, + "id": 648, "name": "ContractDefinition", - "src": "879:114:8" + "src": "124:114:2" }, { "attributes": { + "baseContracts": [ + null + ], "contractDependencies": [ - 694, - 3245 + null ], "contractKind": "contract", "documentation": null, "fullyImplemented": false, "linearizedBaseContracts": [ - 1194, - 3245, - 694 + 654 + ], + "name": "IFeeManager", + "scope": 971 + }, + "children": [ + { + "attributes": { + "body": null, + "documentation": null, + "implemented": false, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "feeTo", + "scope": 654, + "stateMutability": "view", + "superFunction": null, + "visibility": "external" + }, + "children": [ + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 649, + "name": "ParameterList", + "src": "279:2:2" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "name": "", + "scope": 653, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 650, + "name": "ElementaryTypeName", + "src": "305:7:2" + } + ], + "id": 651, + "name": "VariableDeclaration", + "src": "305:7:2" + } + ], + "id": 652, + "name": "ParameterList", + "src": "304:9:2" + } + ], + "id": 653, + "name": "FunctionDefinition", + "src": "265:49:2" + } + ], + "id": 654, + "name": "ContractDefinition", + "src": "240:76:2" + }, + { + "attributes": { + "contractDependencies": [ + 632, + 1000 + ], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": false, + "linearizedBaseContracts": [ + 970, + 1000, + 632 ], "name": "Tornado", - "scope": 1195 + "scope": 971 }, "children": [ { @@ -4411,17 +4758,17 @@ "attributes": { "contractScope": null, "name": "MerkleTreeWithHistory", - "referencedDeclaration": 694, + "referencedDeclaration": 632, "type": "contract MerkleTreeWithHistory" }, - "id": 892, + "id": 655, "name": "UserDefinedTypeName", - "src": "1015:21:8" + "src": "338:21:2" } ], - "id": 893, + "id": 656, "name": "InheritanceSpecifier", - "src": "1015:21:8" + "src": "338:21:2" }, { "attributes": { @@ -4432,23 +4779,23 @@ "attributes": { "contractScope": null, "name": "ReentrancyGuard", - "referencedDeclaration": 3245, + "referencedDeclaration": 1000, "type": "contract ReentrancyGuard" }, - "id": 894, + "id": 657, "name": "UserDefinedTypeName", - "src": "1038:15:8" + "src": "361:15:2" } ], - "id": 895, + "id": 658, "name": "InheritanceSpecifier", - "src": "1038:15:8" + "src": "361:15:2" }, { "attributes": { "constant": false, "name": "denomination", - "scope": 1194, + "scope": 970, "stateVariable": true, "storageLocation": "default", "type": "uint256", @@ -4461,20 +4808,20 @@ "name": "uint256", "type": "uint256" }, - "id": 896, + "id": 659, "name": "ElementaryTypeName", - "src": "1058:7:8" + "src": "381:7:2" } ], - "id": 897, + "id": 660, "name": "VariableDeclaration", - "src": "1058:27:8" + "src": "381:27:2" }, { "attributes": { "constant": false, "name": "nullifierHashes", - "scope": 1194, + "scope": 970, "stateVariable": true, "storageLocation": "default", "type": "mapping(bytes32 => bool)", @@ -4492,34 +4839,34 @@ "name": "bytes32", "type": "bytes32" }, - "id": 898, + "id": 661, "name": "ElementaryTypeName", - "src": "1097:7:8" + "src": "420:7:2" }, { "attributes": { "name": "bool", "type": "bool" }, - "id": 899, + "id": 662, "name": "ElementaryTypeName", - "src": "1108:4:8" + "src": "431:4:2" } ], - "id": 900, + "id": 663, "name": "Mapping", - "src": "1089:24:8" + "src": "412:24:2" } ], - "id": 901, + "id": 664, "name": "VariableDeclaration", - "src": "1089:47:8" + "src": "412:47:2" }, { "attributes": { "constant": false, "name": "commitments", - "scope": 1194, + "scope": 970, "stateVariable": true, "storageLocation": "default", "type": "mapping(bytes32 => bool)", @@ -4537,34 +4884,34 @@ "name": "bytes32", "type": "bytes32" }, - "id": 902, + "id": 665, "name": "ElementaryTypeName", - "src": "1239:7:8" + "src": "562:7:2" }, { "attributes": { "name": "bool", "type": "bool" }, - "id": 903, + "id": 666, "name": "ElementaryTypeName", - "src": "1250:4:8" + "src": "573:4:2" } ], - "id": 904, + "id": 667, "name": "Mapping", - "src": "1231:24:8" + "src": "554:24:2" } ], - "id": 905, + "id": 668, "name": "VariableDeclaration", - "src": "1231:43:8" + "src": "554:43:2" }, { "attributes": { "constant": false, "name": "verifier", - "scope": 1194, + "scope": 970, "stateVariable": true, "storageLocation": "default", "type": "contract IVerifier", @@ -4576,23 +4923,51 @@ "attributes": { "contractScope": null, "name": "IVerifier", - "referencedDeclaration": 891, + "referencedDeclaration": 648, "type": "contract IVerifier" }, - "id": 906, + "id": 669, "name": "UserDefinedTypeName", - "src": "1278:9:8" + "src": "601:9:2" } ], - "id": 907, + "id": 670, "name": "VariableDeclaration", - "src": "1278:25:8" + "src": "601:25:2" + }, + { + "attributes": { + "constant": false, + "name": "feeManager", + "scope": 970, + "stateVariable": true, + "storageLocation": "default", + "type": "contract IFeeManager", + "value": null, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "contractScope": null, + "name": "IFeeManager", + "referencedDeclaration": 654, + "type": "contract IFeeManager" + }, + "id": 671, + "name": "UserDefinedTypeName", + "src": "630:11:2" + } + ], + "id": 672, + "name": "VariableDeclaration", + "src": "630:29:2" }, { "attributes": { "constant": false, "name": "operator", - "scope": 1194, + "scope": 970, "stateVariable": true, "storageLocation": "default", "type": "address", @@ -4606,14 +4981,14 @@ "stateMutability": "nonpayable", "type": "address" }, - "id": 908, + "id": 673, "name": "ElementaryTypeName", - "src": "1463:7:8" + "src": "819:7:2" } ], - "id": 909, + "id": 674, "name": "VariableDeclaration", - "src": "1463:23:8" + "src": "819:23:2" }, { "attributes": { @@ -4629,9 +5004,9 @@ ] }, "children": [], - "id": 910, + "id": 675, "name": "ParameterList", - "src": "1512:0:8" + "src": "868:0:2" }, { "children": [ @@ -4665,16 +5040,16 @@ } ], "overloadedDeclarations": [ - 3263, - 3264 + 1018, + 1019 ], - "referencedDeclaration": 3264, + "referencedDeclaration": 1019, "type": "function (bool,string memory) pure", "value": "require" }, - "id": 911, + "id": 676, "name": "Identifier", - "src": "1518:7:8" + "src": "874:7:2" }, { "attributes": { @@ -4709,18 +5084,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 3260, + "referencedDeclaration": 1015, "type": "msg", "value": "msg" }, - "id": 912, + "id": 677, "name": "Identifier", - "src": "1526:3:8" + "src": "882:3:2" } ], - "id": 913, + "id": 678, "name": "MemberAccess", - "src": "1526:10:8" + "src": "882:10:2" }, { "attributes": { @@ -4728,18 +5103,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 909, + "referencedDeclaration": 674, "type": "address", "value": "operator" }, - "id": 914, + "id": 679, "name": "Identifier", - "src": "1540:8:8" + "src": "896:8:2" } ], - "id": 915, + "id": 680, "name": "BinaryOperation", - "src": "1526:22:8" + "src": "882:22:2" }, { "attributes": { @@ -4754,34 +5129,34 @@ "type": "literal_string \"Only operator can call this function.\"", "value": "Only operator can call this function." }, - "id": 916, + "id": 681, "name": "Literal", - "src": "1550:39:8" + "src": "906:39:2" } ], - "id": 917, + "id": 682, "name": "FunctionCall", - "src": "1518:72:8" + "src": "874:72:2" } ], - "id": 918, + "id": 683, "name": "ExpressionStatement", - "src": "1518:72:8" + "src": "874:72:2" }, { - "id": 919, + "id": 684, "name": "PlaceholderStatement", - "src": "1596:1:8" + "src": "952:1:2" } ], - "id": 920, + "id": 685, "name": "Block", - "src": "1512:90:8" + "src": "868:90:2" } ], - "id": 921, + "id": 686, "name": "ModifierDefinition", - "src": "1490:112:8" + "src": "846:112:2" }, { "attributes": { @@ -4797,7 +5172,7 @@ "constant": false, "indexed": true, "name": "commitment", - "scope": 929, + "scope": 694, "stateVariable": false, "storageLocation": "default", "type": "bytes32", @@ -4810,21 +5185,21 @@ "name": "bytes32", "type": "bytes32" }, - "id": 922, + "id": 687, "name": "ElementaryTypeName", - "src": "1620:7:8" + "src": "976:7:2" } ], - "id": 923, + "id": 688, "name": "VariableDeclaration", - "src": "1620:26:8" + "src": "976:26:2" }, { "attributes": { "constant": false, "indexed": false, "name": "leafIndex", - "scope": 929, + "scope": 694, "stateVariable": false, "storageLocation": "default", "type": "uint32", @@ -4837,21 +5212,21 @@ "name": "uint32", "type": "uint32" }, - "id": 924, + "id": 689, "name": "ElementaryTypeName", - "src": "1648:6:8" + "src": "1004:6:2" } ], - "id": 925, + "id": 690, "name": "VariableDeclaration", - "src": "1648:16:8" + "src": "1004:16:2" }, { "attributes": { "constant": false, "indexed": false, "name": "timestamp", - "scope": 929, + "scope": 694, "stateVariable": false, "storageLocation": "default", "type": "uint256", @@ -4864,24 +5239,24 @@ "name": "uint256", "type": "uint256" }, - "id": 926, + "id": 691, "name": "ElementaryTypeName", - "src": "1666:7:8" + "src": "1022:7:2" } ], - "id": 927, + "id": 692, "name": "VariableDeclaration", - "src": "1666:17:8" + "src": "1022:17:2" } ], - "id": 928, + "id": 693, "name": "ParameterList", - "src": "1619:65:8" + "src": "975:65:2" } ], - "id": 929, + "id": 694, "name": "EventDefinition", - "src": "1606:79:8" + "src": "962:79:2" }, { "attributes": { @@ -4897,7 +5272,7 @@ "constant": false, "indexed": false, "name": "to", - "scope": 939, + "scope": 704, "stateVariable": false, "storageLocation": "default", "type": "address", @@ -4911,21 +5286,21 @@ "stateMutability": "nonpayable", "type": "address" }, - "id": 930, + "id": 695, "name": "ElementaryTypeName", - "src": "1705:7:8" + "src": "1061:7:2" } ], - "id": 931, + "id": 696, "name": "VariableDeclaration", - "src": "1705:10:8" + "src": "1061:10:2" }, { "attributes": { "constant": false, "indexed": false, "name": "nullifierHash", - "scope": 939, + "scope": 704, "stateVariable": false, "storageLocation": "default", "type": "bytes32", @@ -4938,21 +5313,21 @@ "name": "bytes32", "type": "bytes32" }, - "id": 932, + "id": 697, "name": "ElementaryTypeName", - "src": "1717:7:8" + "src": "1073:7:2" } ], - "id": 933, + "id": 698, "name": "VariableDeclaration", - "src": "1717:21:8" + "src": "1073:21:2" }, { "attributes": { "constant": false, "indexed": true, "name": "relayer", - "scope": 939, + "scope": 704, "stateVariable": false, "storageLocation": "default", "type": "address", @@ -4966,21 +5341,21 @@ "stateMutability": "nonpayable", "type": "address" }, - "id": 934, + "id": 699, "name": "ElementaryTypeName", - "src": "1740:7:8" + "src": "1096:7:2" } ], - "id": 935, + "id": 700, "name": "VariableDeclaration", - "src": "1740:23:8" + "src": "1096:23:2" }, { "attributes": { "constant": false, "indexed": false, "name": "fee", - "scope": 939, + "scope": 704, "stateVariable": false, "storageLocation": "default", "type": "uint256", @@ -4993,24 +5368,24 @@ "name": "uint256", "type": "uint256" }, - "id": 936, + "id": 701, "name": "ElementaryTypeName", - "src": "1765:7:8" + "src": "1121:7:2" } ], - "id": 937, + "id": 702, "name": "VariableDeclaration", - "src": "1765:11:8" + "src": "1121:11:2" } ], - "id": 938, + "id": 703, "name": "ParameterList", - "src": "1704:73:8" + "src": "1060:73:2" } ], - "id": 939, + "id": 704, "name": "EventDefinition", - "src": "1688:90:8" + "src": "1044:90:2" }, { "attributes": { @@ -5019,7 +5394,7 @@ "isConstructor": true, "kind": "constructor", "name": "", - "scope": 1194, + "scope": 970, "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" @@ -5031,7 +5406,7 @@ "attributes": { "constant": false, "name": "_verifier", - "scope": 973, + "scope": 744, "stateVariable": false, "storageLocation": "default", "type": "contract IVerifier", @@ -5043,23 +5418,51 @@ "attributes": { "contractScope": null, "name": "IVerifier", - "referencedDeclaration": 891, + "referencedDeclaration": 648, "type": "contract IVerifier" }, - "id": 940, + "id": 705, "name": "UserDefinedTypeName", - "src": "2094:9:8" + "src": "1450:9:2" } ], - "id": 941, + "id": 706, "name": "VariableDeclaration", - "src": "2094:19:8" + "src": "1450:19:2" + }, + { + "attributes": { + "constant": false, + "name": "_feeManager", + "scope": 744, + "stateVariable": false, + "storageLocation": "default", + "type": "contract IFeeManager", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "contractScope": null, + "name": "IFeeManager", + "referencedDeclaration": 654, + "type": "contract IFeeManager" + }, + "id": 707, + "name": "UserDefinedTypeName", + "src": "1475:11:2" + } + ], + "id": 708, + "name": "VariableDeclaration", + "src": "1475:23:2" }, { "attributes": { "constant": false, "name": "_denomination", - "scope": 973, + "scope": 744, "stateVariable": false, "storageLocation": "default", "type": "uint256", @@ -5072,20 +5475,20 @@ "name": "uint256", "type": "uint256" }, - "id": 942, + "id": 709, "name": "ElementaryTypeName", - "src": "2119:7:8" + "src": "1504:7:2" } ], - "id": 943, + "id": 710, "name": "VariableDeclaration", - "src": "2119:21:8" + "src": "1504:21:2" }, { "attributes": { "constant": false, "name": "_merkleTreeHeight", - "scope": 973, + "scope": 744, "stateVariable": false, "storageLocation": "default", "type": "uint32", @@ -5098,20 +5501,20 @@ "name": "uint32", "type": "uint32" }, - "id": 944, + "id": 711, "name": "ElementaryTypeName", - "src": "2146:6:8" + "src": "1531:6:2" } ], - "id": 945, + "id": 712, "name": "VariableDeclaration", - "src": "2146:24:8" + "src": "1531:24:2" }, { "attributes": { "constant": false, "name": "_operator", - "scope": 973, + "scope": 744, "stateVariable": false, "storageLocation": "default", "type": "address", @@ -5125,19 +5528,19 @@ "stateMutability": "nonpayable", "type": "address" }, - "id": 946, + "id": 713, "name": "ElementaryTypeName", - "src": "2176:7:8" + "src": "1561:7:2" } ], - "id": 947, + "id": 714, "name": "VariableDeclaration", - "src": "2176:17:8" + "src": "1561:17:2" } ], - "id": 948, + "id": 715, "name": "ParameterList", - "src": "2088:109:8" + "src": "1444:138:2" }, { "attributes": { @@ -5146,9 +5549,9 @@ ] }, "children": [], - "id": 952, + "id": 719, "name": "ParameterList", - "src": "2246:0:8" + "src": "1631:0:2" }, { "children": [ @@ -5158,13 +5561,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 694, + "referencedDeclaration": 632, "type": "type(contract MerkleTreeWithHistory)", "value": "MerkleTreeWithHistory" }, - "id": 949, + "id": 716, "name": "Identifier", - "src": "2198:21:8" + "src": "1583:21:2" }, { "attributes": { @@ -5172,18 +5575,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 945, + "referencedDeclaration": 712, "type": "uint32", "value": "_merkleTreeHeight" }, - "id": 950, + "id": 717, "name": "Identifier", - "src": "2220:17:8" + "src": "1605:17:2" } ], - "id": 951, + "id": 718, "name": "ModifierInvocation", - "src": "2198:40:8" + "src": "1583:40:2" }, { "children": [ @@ -5217,16 +5620,16 @@ } ], "overloadedDeclarations": [ - 3263, - 3264 + 1018, + 1019 ], - "referencedDeclaration": 3264, + "referencedDeclaration": 1019, "type": "function (bool,string memory) pure", "value": "require" }, - "id": 953, + "id": 720, "name": "Identifier", - "src": "2252:7:8" + "src": "1637:7:2" }, { "attributes": { @@ -5249,13 +5652,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 943, + "referencedDeclaration": 710, "type": "uint256", "value": "_denomination" }, - "id": 954, + "id": 721, "name": "Identifier", - "src": "2260:13:8" + "src": "1645:13:2" }, { "attributes": { @@ -5270,14 +5673,14 @@ "type": "int_const 0", "value": "0" }, - "id": 955, + "id": 722, "name": "Literal", - "src": "2276:1:8" + "src": "1661:1:2" } ], - "id": 956, + "id": 723, "name": "BinaryOperation", - "src": "2260:17:8" + "src": "1645:17:2" }, { "attributes": { @@ -5292,19 +5695,19 @@ "type": "literal_string \"denomination should be greater than 0\"", "value": "denomination should be greater than 0" }, - "id": 957, + "id": 724, "name": "Literal", - "src": "2279:39:8" + "src": "1664:39:2" } ], - "id": 958, + "id": 725, "name": "FunctionCall", - "src": "2252:67:8" + "src": "1637:67:2" } ], - "id": 959, + "id": 726, "name": "ExpressionStatement", - "src": "2252:67:8" + "src": "1637:67:2" }, { "children": [ @@ -5325,13 +5728,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 907, + "referencedDeclaration": 670, "type": "contract IVerifier", "value": "verifier" }, - "id": 960, + "id": 727, "name": "Identifier", - "src": "2325:8:8" + "src": "1710:8:2" }, { "attributes": { @@ -5339,23 +5742,74 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 941, + "referencedDeclaration": 706, "type": "contract IVerifier", "value": "_verifier" }, - "id": 961, + "id": 728, "name": "Identifier", - "src": "2336:9:8" + "src": "1721:9:2" } ], - "id": 962, + "id": 729, "name": "Assignment", - "src": "2325:20:8" + "src": "1710:20:2" } ], - "id": 963, + "id": 730, "name": "ExpressionStatement", - "src": "2325:20:8" + "src": "1710:20:2" + }, + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "contract IFeeManager" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 672, + "type": "contract IFeeManager", + "value": "feeManager" + }, + "id": 731, + "name": "Identifier", + "src": "1736:10:2" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 708, + "type": "contract IFeeManager", + "value": "_feeManager" + }, + "id": 732, + "name": "Identifier", + "src": "1749:11:2" + } + ], + "id": 733, + "name": "Assignment", + "src": "1736:24:2" + } + ], + "id": 734, + "name": "ExpressionStatement", + "src": "1736:24:2" }, { "children": [ @@ -5376,13 +5830,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 909, + "referencedDeclaration": 674, "type": "address", "value": "operator" }, - "id": 964, + "id": 735, "name": "Identifier", - "src": "2351:8:8" + "src": "1766:8:2" }, { "attributes": { @@ -5390,23 +5844,23 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 947, + "referencedDeclaration": 714, "type": "address", "value": "_operator" }, - "id": 965, + "id": 736, "name": "Identifier", - "src": "2362:9:8" + "src": "1777:9:2" } ], - "id": 966, + "id": 737, "name": "Assignment", - "src": "2351:20:8" + "src": "1766:20:2" } ], - "id": 967, + "id": 738, "name": "ExpressionStatement", - "src": "2351:20:8" + "src": "1766:20:2" }, { "children": [ @@ -5427,13 +5881,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 897, + "referencedDeclaration": 660, "type": "uint256", "value": "denomination" }, - "id": 968, + "id": 739, "name": "Identifier", - "src": "2377:12:8" + "src": "1792:12:2" }, { "attributes": { @@ -5441,33 +5895,33 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 943, + "referencedDeclaration": 710, "type": "uint256", "value": "_denomination" }, - "id": 969, + "id": 740, "name": "Identifier", - "src": "2392:13:8" + "src": "1807:13:2" } ], - "id": 970, + "id": 741, "name": "Assignment", - "src": "2377:28:8" + "src": "1792:28:2" } ], - "id": 971, + "id": 742, "name": "ExpressionStatement", - "src": "2377:28:8" + "src": "1792:28:2" } ], - "id": 972, + "id": 743, "name": "Block", - "src": "2246:164:8" + "src": "1631:194:2" } ], - "id": 973, + "id": 744, "name": "FunctionDefinition", - "src": "2077:333:8" + "src": "1433:392:2" }, { "attributes": { @@ -5476,7 +5930,7 @@ "isConstructor": false, "kind": "function", "name": "deposit", - "scope": 1194, + "scope": 970, "stateMutability": "payable", "superFunction": null, "visibility": "external" @@ -5488,7 +5942,7 @@ "attributes": { "constant": false, "name": "_commitment", - "scope": 1011, + "scope": 782, "stateVariable": false, "storageLocation": "default", "type": "bytes32", @@ -5501,19 +5955,19 @@ "name": "bytes32", "type": "bytes32" }, - "id": 974, + "id": 745, "name": "ElementaryTypeName", - "src": "2675:7:8" + "src": "2090:7:2" } ], - "id": 975, + "id": 746, "name": "VariableDeclaration", - "src": "2675:19:8" + "src": "2090:19:2" } ], - "id": 976, + "id": 747, "name": "ParameterList", - "src": "2674:21:8" + "src": "2089:21:2" }, { "attributes": { @@ -5522,9 +5976,9 @@ ] }, "children": [], - "id": 979, + "id": 750, "name": "ParameterList", - "src": "2726:0:8" + "src": "2141:0:2" }, { "attributes": { @@ -5537,18 +5991,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 3244, + "referencedDeclaration": 999, "type": "modifier ()", "value": "nonReentrant" }, - "id": 977, + "id": 748, "name": "Identifier", - "src": "2713:12:8" + "src": "2128:12:2" } ], - "id": 978, + "id": 749, "name": "ModifierInvocation", - "src": "2713:12:8" + "src": "2128:12:2" }, { "children": [ @@ -5582,16 +6036,16 @@ } ], "overloadedDeclarations": [ - 3263, - 3264 + 1018, + 1019 ], - "referencedDeclaration": 3264, + "referencedDeclaration": 1019, "type": "function (bool,string memory) pure", "value": "require" }, - "id": 980, + "id": 751, "name": "Identifier", - "src": "2732:7:8" + "src": "2147:7:2" }, { "attributes": { @@ -5621,13 +6075,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 905, + "referencedDeclaration": 668, "type": "mapping(bytes32 => bool)", "value": "commitments" }, - "id": 981, + "id": 752, "name": "Identifier", - "src": "2741:11:8" + "src": "2156:11:2" }, { "attributes": { @@ -5635,23 +6089,23 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 975, + "referencedDeclaration": 746, "type": "bytes32", "value": "_commitment" }, - "id": 982, + "id": 753, "name": "Identifier", - "src": "2753:11:8" + "src": "2168:11:2" } ], - "id": 983, + "id": 754, "name": "IndexAccess", - "src": "2741:24:8" + "src": "2156:24:2" } ], - "id": 984, + "id": 755, "name": "UnaryOperation", - "src": "2740:25:8" + "src": "2155:25:2" }, { "attributes": { @@ -5666,24 +6120,24 @@ "type": "literal_string \"The commitment has been submitted\"", "value": "The commitment has been submitted" }, - "id": 985, + "id": 756, "name": "Literal", - "src": "2767:35:8" + "src": "2182:35:2" } ], - "id": 986, + "id": 757, "name": "FunctionCall", - "src": "2732:71:8" + "src": "2147:71:2" } ], - "id": 987, + "id": 758, "name": "ExpressionStatement", - "src": "2732:71:8" + "src": "2147:71:2" }, { "attributes": { "assignments": [ - 989 + 760 ] }, "children": [ @@ -5691,7 +6145,7 @@ "attributes": { "constant": false, "name": "insertedIndex", - "scope": 1010, + "scope": 781, "stateVariable": false, "storageLocation": "default", "type": "uint32", @@ -5704,14 +6158,14 @@ "name": "uint32", "type": "uint32" }, - "id": 988, + "id": 759, "name": "ElementaryTypeName", - "src": "2810:6:8" + "src": "2225:6:2" } ], - "id": 989, + "id": 760, "name": "VariableDeclaration", - "src": "2810:20:8" + "src": "2225:20:2" }, { "attributes": { @@ -5739,13 +6193,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 636, + "referencedDeclaration": 574, "type": "function (bytes32) returns (uint32)", "value": "_insert" }, - "id": 990, + "id": 761, "name": "Identifier", - "src": "2833:7:8" + "src": "2248:7:2" }, { "attributes": { @@ -5753,23 +6207,23 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 975, + "referencedDeclaration": 746, "type": "bytes32", "value": "_commitment" }, - "id": 991, + "id": 762, "name": "Identifier", - "src": "2841:11:8" + "src": "2256:11:2" } ], - "id": 992, + "id": 763, "name": "FunctionCall", - "src": "2833:20:8" + "src": "2248:20:2" } ], - "id": 993, + "id": 764, "name": "VariableDeclarationStatement", - "src": "2810:43:8" + "src": "2225:43:2" }, { "children": [ @@ -5800,13 +6254,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 905, + "referencedDeclaration": 668, "type": "mapping(bytes32 => bool)", "value": "commitments" }, - "id": 994, + "id": 765, "name": "Identifier", - "src": "2859:11:8" + "src": "2274:11:2" }, { "attributes": { @@ -5814,18 +6268,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 975, + "referencedDeclaration": 746, "type": "bytes32", "value": "_commitment" }, - "id": 995, + "id": 766, "name": "Identifier", - "src": "2871:11:8" + "src": "2286:11:2" } ], - "id": 996, + "id": 767, "name": "IndexAccess", - "src": "2859:24:8" + "src": "2274:24:2" }, { "attributes": { @@ -5840,19 +6294,19 @@ "type": "bool", "value": "true" }, - "id": 997, + "id": 768, "name": "Literal", - "src": "2886:4:8" + "src": "2301:4:2" } ], - "id": 998, + "id": 769, "name": "Assignment", - "src": "2859:31:8" + "src": "2274:31:2" } ], - "id": 999, + "id": 770, "name": "ExpressionStatement", - "src": "2859:31:8" + "src": "2274:31:2" }, { "children": [ @@ -5882,23 +6336,23 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1014, + "referencedDeclaration": 785, "type": "function ()", "value": "_processDeposit" }, - "id": 1000, + "id": 771, "name": "Identifier", - "src": "2896:15:8" + "src": "2311:15:2" } ], - "id": 1001, + "id": 772, "name": "FunctionCall", - "src": "2896:17:8" + "src": "2311:17:2" } ], - "id": 1002, + "id": 773, "name": "ExpressionStatement", - "src": "2896:17:8" + "src": "2311:17:2" }, { "children": [ @@ -5936,13 +6390,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 929, + "referencedDeclaration": 694, "type": "function (bytes32,uint32,uint256)", "value": "Deposit" }, - "id": 1003, + "id": 774, "name": "Identifier", - "src": "2925:7:8" + "src": "2340:7:2" }, { "attributes": { @@ -5950,13 +6404,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 975, + "referencedDeclaration": 746, "type": "bytes32", "value": "_commitment" }, - "id": 1004, + "id": 775, "name": "Identifier", - "src": "2933:11:8" + "src": "2348:11:2" }, { "attributes": { @@ -5964,13 +6418,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 989, + "referencedDeclaration": 760, "type": "uint32", "value": "insertedIndex" }, - "id": 1005, + "id": 776, "name": "Identifier", - "src": "2946:13:8" + "src": "2361:13:2" }, { "attributes": { @@ -5990,38 +6444,38 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 3250, + "referencedDeclaration": 1005, "type": "block", "value": "block" }, - "id": 1006, + "id": 777, "name": "Identifier", - "src": "2961:5:8" + "src": "2376:5:2" } ], - "id": 1007, + "id": 778, "name": "MemberAccess", - "src": "2961:15:8" + "src": "2376:15:2" } ], - "id": 1008, + "id": 779, "name": "FunctionCall", - "src": "2925:52:8" + "src": "2340:52:2" } ], - "id": 1009, + "id": 780, "name": "EmitStatement", - "src": "2920:57:8" + "src": "2335:57:2" } ], - "id": 1010, + "id": 781, "name": "Block", - "src": "2726:256:8" + "src": "2141:256:2" } ], - "id": 1011, + "id": 782, "name": "FunctionDefinition", - "src": "2658:324:8" + "src": "2073:324:2" }, { "attributes": { @@ -6034,7 +6488,7 @@ null ], "name": "_processDeposit", - "scope": 1194, + "scope": 970, "stateMutability": "nonpayable", "superFunction": null, "visibility": "internal" @@ -6047,9 +6501,9 @@ ] }, "children": [], - "id": 1012, + "id": 783, "name": "ParameterList", - "src": "3069:2:8" + "src": "2484:2:2" }, { "attributes": { @@ -6058,14 +6512,14 @@ ] }, "children": [], - "id": 1013, + "id": 784, "name": "ParameterList", - "src": "3080:0:8" + "src": "2495:0:2" } ], - "id": 1014, + "id": 785, "name": "FunctionDefinition", - "src": "3045:36:8" + "src": "2460:36:2" }, { "attributes": { @@ -6074,7 +6528,7 @@ "isConstructor": false, "kind": "function", "name": "withdraw", - "scope": 1194, + "scope": 970, "stateMutability": "payable", "superFunction": null, "visibility": "external" @@ -6086,7 +6540,7 @@ "attributes": { "constant": false, "name": "_proof", - "scope": 1099, + "scope": 873, "stateVariable": false, "storageLocation": "calldata", "type": "bytes", @@ -6099,20 +6553,20 @@ "name": "bytes", "type": "bytes" }, - "id": 1015, + "id": 786, "name": "ElementaryTypeName", - "src": "3496:5:8" + "src": "2911:5:2" } ], - "id": 1016, + "id": 787, "name": "VariableDeclaration", - "src": "3496:21:8" + "src": "2911:21:2" }, { "attributes": { "constant": false, "name": "_root", - "scope": 1099, + "scope": 873, "stateVariable": false, "storageLocation": "default", "type": "bytes32", @@ -6125,20 +6579,20 @@ "name": "bytes32", "type": "bytes32" }, - "id": 1017, + "id": 788, "name": "ElementaryTypeName", - "src": "3519:7:8" + "src": "2934:7:2" } ], - "id": 1018, + "id": 789, "name": "VariableDeclaration", - "src": "3519:13:8" + "src": "2934:13:2" }, { "attributes": { "constant": false, "name": "_nullifierHash", - "scope": 1099, + "scope": 873, "stateVariable": false, "storageLocation": "default", "type": "bytes32", @@ -6151,20 +6605,20 @@ "name": "bytes32", "type": "bytes32" }, - "id": 1019, + "id": 790, "name": "ElementaryTypeName", - "src": "3534:7:8" + "src": "2949:7:2" } ], - "id": 1020, + "id": 791, "name": "VariableDeclaration", - "src": "3534:22:8" + "src": "2949:22:2" }, { "attributes": { "constant": false, "name": "_recipient", - "scope": 1099, + "scope": 873, "stateVariable": false, "storageLocation": "default", "type": "address payable", @@ -6178,20 +6632,20 @@ "stateMutability": "payable", "type": "address payable" }, - "id": 1021, + "id": 792, "name": "ElementaryTypeName", - "src": "3558:15:8" + "src": "2973:15:2" } ], - "id": 1022, + "id": 793, "name": "VariableDeclaration", - "src": "3558:26:8" + "src": "2973:26:2" }, { "attributes": { "constant": false, "name": "_relayer", - "scope": 1099, + "scope": 873, "stateVariable": false, "storageLocation": "default", "type": "address payable", @@ -6205,20 +6659,20 @@ "stateMutability": "payable", "type": "address payable" }, - "id": 1023, + "id": 794, "name": "ElementaryTypeName", - "src": "3586:15:8" + "src": "3001:15:2" } ], - "id": 1024, + "id": 795, "name": "VariableDeclaration", - "src": "3586:24:8" + "src": "3001:24:2" }, { "attributes": { "constant": false, "name": "_fee", - "scope": 1099, + "scope": 873, "stateVariable": false, "storageLocation": "default", "type": "uint256", @@ -6231,20 +6685,20 @@ "name": "uint256", "type": "uint256" }, - "id": 1025, + "id": 796, "name": "ElementaryTypeName", - "src": "3612:7:8" + "src": "3027:7:2" } ], - "id": 1026, + "id": 797, "name": "VariableDeclaration", - "src": "3612:12:8" + "src": "3027:12:2" }, { "attributes": { "constant": false, "name": "_refund", - "scope": 1099, + "scope": 873, "stateVariable": false, "storageLocation": "default", "type": "uint256", @@ -6257,19 +6711,19 @@ "name": "uint256", "type": "uint256" }, - "id": 1027, + "id": 798, "name": "ElementaryTypeName", - "src": "3626:7:8" + "src": "3041:7:2" } ], - "id": 1028, + "id": 799, "name": "VariableDeclaration", - "src": "3626:15:8" + "src": "3041:15:2" } ], - "id": 1029, + "id": 800, "name": "ParameterList", - "src": "3495:147:8" + "src": "2910:147:2" }, { "attributes": { @@ -6278,9 +6732,9 @@ ] }, "children": [], - "id": 1032, + "id": 803, "name": "ParameterList", - "src": "3673:0:8" + "src": "3088:0:2" }, { "attributes": { @@ -6293,18 +6747,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 3244, + "referencedDeclaration": 999, "type": "modifier ()", "value": "nonReentrant" }, - "id": 1030, + "id": 801, "name": "Identifier", - "src": "3660:12:8" + "src": "3075:12:2" } ], - "id": 1031, + "id": 802, "name": "ModifierInvocation", - "src": "3660:12:8" + "src": "3075:12:2" }, { "children": [ @@ -6338,16 +6792,16 @@ } ], "overloadedDeclarations": [ - 3263, - 3264 + 1018, + 1019 ], - "referencedDeclaration": 3264, + "referencedDeclaration": 1019, "type": "function (bool,string memory) pure", "value": "require" }, - "id": 1033, + "id": 804, "name": "Identifier", - "src": "3679:7:8" + "src": "3094:7:2" }, { "attributes": { @@ -6370,13 +6824,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1026, + "referencedDeclaration": 797, "type": "uint256", "value": "_fee" }, - "id": 1034, + "id": 805, "name": "Identifier", - "src": "3687:4:8" + "src": "3102:4:2" }, { "attributes": { @@ -6384,18 +6838,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 897, + "referencedDeclaration": 660, "type": "uint256", "value": "denomination" }, - "id": 1035, + "id": 806, "name": "Identifier", - "src": "3695:12:8" + "src": "3110:12:2" } ], - "id": 1036, + "id": 807, "name": "BinaryOperation", - "src": "3687:20:8" + "src": "3102:20:2" }, { "attributes": { @@ -6410,19 +6864,19 @@ "type": "literal_string \"Fee exceeds transfer value\"", "value": "Fee exceeds transfer value" }, - "id": 1037, + "id": 808, "name": "Literal", - "src": "3709:28:8" + "src": "3124:28:2" } ], - "id": 1038, + "id": 809, "name": "FunctionCall", - "src": "3679:59:8" + "src": "3094:59:2" } ], - "id": 1039, + "id": 810, "name": "ExpressionStatement", - "src": "3679:59:8" + "src": "3094:59:2" }, { "children": [ @@ -6454,16 +6908,16 @@ } ], "overloadedDeclarations": [ - 3263, - 3264 + 1018, + 1019 ], - "referencedDeclaration": 3264, + "referencedDeclaration": 1019, "type": "function (bool,string memory) pure", "value": "require" }, - "id": 1040, + "id": 811, "name": "Identifier", - "src": "3744:7:8" + "src": "3159:7:2" }, { "attributes": { @@ -6493,13 +6947,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 901, + "referencedDeclaration": 664, "type": "mapping(bytes32 => bool)", "value": "nullifierHashes" }, - "id": 1041, + "id": 812, "name": "Identifier", - "src": "3753:15:8" + "src": "3168:15:2" }, { "attributes": { @@ -6507,23 +6961,23 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1020, + "referencedDeclaration": 791, "type": "bytes32", "value": "_nullifierHash" }, - "id": 1042, + "id": 813, "name": "Identifier", - "src": "3769:14:8" + "src": "3184:14:2" } ], - "id": 1043, + "id": 814, "name": "IndexAccess", - "src": "3753:31:8" + "src": "3168:31:2" } ], - "id": 1044, + "id": 815, "name": "UnaryOperation", - "src": "3752:32:8" + "src": "3167:32:2" }, { "attributes": { @@ -6538,19 +6992,19 @@ "type": "literal_string \"The note has been already spent\"", "value": "The note has been already spent" }, - "id": 1045, + "id": 816, "name": "Literal", - "src": "3786:33:8" + "src": "3201:33:2" } ], - "id": 1046, + "id": 817, "name": "FunctionCall", - "src": "3744:76:8" + "src": "3159:76:2" } ], - "id": 1047, + "id": 818, "name": "ExpressionStatement", - "src": "3744:76:8" + "src": "3159:76:2" }, { "children": [ @@ -6582,16 +7036,16 @@ } ], "overloadedDeclarations": [ - 3263, - 3264 + 1018, + 1019 ], - "referencedDeclaration": 3264, + "referencedDeclaration": 1019, "type": "function (bool,string memory) pure", "value": "require" }, - "id": 1048, + "id": 819, "name": "Identifier", - "src": "3826:7:8" + "src": "3241:7:2" }, { "attributes": { @@ -6619,13 +7073,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 683, + "referencedDeclaration": 621, "type": "function (bytes32) view returns (bool)", "value": "isKnownRoot" }, - "id": 1049, + "id": 820, "name": "Identifier", - "src": "3834:11:8" + "src": "3249:11:2" }, { "attributes": { @@ -6633,18 +7087,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1018, + "referencedDeclaration": 789, "type": "bytes32", "value": "_root" }, - "id": 1050, + "id": 821, "name": "Identifier", - "src": "3846:5:8" + "src": "3261:5:2" } ], - "id": 1051, + "id": 822, "name": "FunctionCall", - "src": "3834:18:8" + "src": "3249:18:2" }, { "attributes": { @@ -6659,19 +7113,19 @@ "type": "literal_string \"Cannot find your merkle root\"", "value": "Cannot find your merkle root" }, - "id": 1052, + "id": 823, "name": "Literal", - "src": "3854:30:8" + "src": "3269:30:2" } ], - "id": 1053, + "id": 824, "name": "FunctionCall", - "src": "3826:59:8" + "src": "3241:59:2" } ], - "id": 1054, + "id": 825, "name": "ExpressionStatement", - "src": "3826:59:8" + "src": "3241:59:2" }, { "children": [ @@ -6703,16 +7157,16 @@ } ], "overloadedDeclarations": [ - 3263, - 3264 + 1018, + 1019 ], - "referencedDeclaration": 3264, + "referencedDeclaration": 1019, "type": "function (bool,string memory) pure", "value": "require" }, - "id": 1055, + "id": 826, "name": "Identifier", - "src": "3924:7:8" + "src": "3339:7:2" }, { "attributes": { @@ -6746,7 +7200,7 @@ "isPure": false, "lValueRequested": false, "member_name": "verifyProof", - "referencedDeclaration": 890, + "referencedDeclaration": 647, "type": "function (bytes memory,uint256[6] memory) external returns (bool)" }, "children": [ @@ -6756,18 +7210,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 907, + "referencedDeclaration": 670, "type": "contract IVerifier", "value": "verifier" }, - "id": 1056, + "id": 827, "name": "Identifier", - "src": "3932:8:8" + "src": "3347:8:2" } ], - "id": 1057, + "id": 828, "name": "MemberAccess", - "src": "3932:20:8" + "src": "3347:20:2" }, { "attributes": { @@ -6775,13 +7229,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1016, + "referencedDeclaration": 787, "type": "bytes calldata", "value": "_proof" }, - "id": 1058, + "id": 829, "name": "Identifier", - "src": "3953:6:8" + "src": "3368:6:2" }, { "attributes": { @@ -6824,9 +7278,9 @@ "type": "type(uint256)", "value": "uint256" }, - "id": 1059, + "id": 830, "name": "ElementaryTypeNameExpression", - "src": "3962:7:8" + "src": "3377:7:2" }, { "attributes": { @@ -6834,18 +7288,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1018, + "referencedDeclaration": 789, "type": "bytes32", "value": "_root" }, - "id": 1060, + "id": 831, "name": "Identifier", - "src": "3970:5:8" + "src": "3385:5:2" } ], - "id": 1061, + "id": 832, "name": "FunctionCall", - "src": "3962:14:8" + "src": "3377:14:2" }, { "attributes": { @@ -6877,9 +7331,9 @@ "type": "type(uint256)", "value": "uint256" }, - "id": 1062, + "id": 833, "name": "ElementaryTypeNameExpression", - "src": "3978:7:8" + "src": "3393:7:2" }, { "attributes": { @@ -6887,18 +7341,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1020, + "referencedDeclaration": 791, "type": "bytes32", "value": "_nullifierHash" }, - "id": 1063, + "id": 834, "name": "Identifier", - "src": "3986:14:8" + "src": "3401:14:2" } ], - "id": 1064, + "id": 835, "name": "FunctionCall", - "src": "3978:23:8" + "src": "3393:23:2" }, { "attributes": { @@ -6930,9 +7384,9 @@ "type": "type(uint256)", "value": "uint256" }, - "id": 1065, + "id": 836, "name": "ElementaryTypeNameExpression", - "src": "4003:7:8" + "src": "3418:7:2" }, { "attributes": { @@ -6940,18 +7394,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1022, + "referencedDeclaration": 793, "type": "address payable", "value": "_recipient" }, - "id": 1066, + "id": 837, "name": "Identifier", - "src": "4011:10:8" + "src": "3426:10:2" } ], - "id": 1067, + "id": 838, "name": "FunctionCall", - "src": "4003:19:8" + "src": "3418:19:2" }, { "attributes": { @@ -6983,9 +7437,9 @@ "type": "type(uint256)", "value": "uint256" }, - "id": 1068, + "id": 839, "name": "ElementaryTypeNameExpression", - "src": "4024:7:8" + "src": "3439:7:2" }, { "attributes": { @@ -6993,18 +7447,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1024, + "referencedDeclaration": 795, "type": "address payable", "value": "_relayer" }, - "id": 1069, + "id": 840, "name": "Identifier", - "src": "4032:8:8" + "src": "3447:8:2" } ], - "id": 1070, + "id": 841, "name": "FunctionCall", - "src": "4024:17:8" + "src": "3439:17:2" }, { "attributes": { @@ -7012,13 +7466,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1026, + "referencedDeclaration": 797, "type": "uint256", "value": "_fee" }, - "id": 1071, + "id": 842, "name": "Identifier", - "src": "4043:4:8" + "src": "3458:4:2" }, { "attributes": { @@ -7026,23 +7480,23 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1028, + "referencedDeclaration": 799, "type": "uint256", "value": "_refund" }, - "id": 1072, + "id": 843, "name": "Identifier", - "src": "4049:7:8" + "src": "3464:7:2" } ], - "id": 1073, + "id": 844, "name": "TupleExpression", - "src": "3961:96:8" + "src": "3376:96:2" } ], - "id": 1074, + "id": 845, "name": "FunctionCall", - "src": "3932:126:8" + "src": "3347:126:2" }, { "attributes": { @@ -7057,19 +7511,19 @@ "type": "literal_string \"Invalid withdraw proof\"", "value": "Invalid withdraw proof" }, - "id": 1075, + "id": 846, "name": "Literal", - "src": "4060:24:8" + "src": "3475:24:2" } ], - "id": 1076, + "id": 847, "name": "FunctionCall", - "src": "3924:161:8" + "src": "3339:161:2" } ], - "id": 1077, + "id": 848, "name": "ExpressionStatement", - "src": "3924:161:8" + "src": "3339:161:2" }, { "children": [ @@ -7100,13 +7554,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 901, + "referencedDeclaration": 664, "type": "mapping(bytes32 => bool)", "value": "nullifierHashes" }, - "id": 1078, + "id": 849, "name": "Identifier", - "src": "4092:15:8" + "src": "3507:15:2" }, { "attributes": { @@ -7114,18 +7568,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1020, + "referencedDeclaration": 791, "type": "bytes32", "value": "_nullifierHash" }, - "id": 1079, + "id": 850, "name": "Identifier", - "src": "4108:14:8" + "src": "3523:14:2" } ], - "id": 1080, + "id": 851, "name": "IndexAccess", - "src": "4092:31:8" + "src": "3507:31:2" }, { "attributes": { @@ -7140,19 +7594,19 @@ "type": "bool", "value": "true" }, - "id": 1081, + "id": 852, "name": "Literal", - "src": "4126:4:8" + "src": "3541:4:2" } ], - "id": 1082, + "id": 853, "name": "Assignment", - "src": "4092:38:8" + "src": "3507:38:2" } ], - "id": 1083, + "id": 854, "name": "ExpressionStatement", - "src": "4092:38:8" + "src": "3507:38:2" }, { "children": [ @@ -7189,18 +7643,22 @@ { "typeIdentifier": "t_uint256", "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" } ], "overloadedDeclarations": [ null ], - "referencedDeclaration": 1110, - "type": "function (address payable,address payable,uint256,uint256)", + "referencedDeclaration": 886, + "type": "function (address payable,address payable,uint256,uint256,address)", "value": "_processWithdraw" }, - "id": 1084, + "id": 855, "name": "Identifier", - "src": "4136:16:8" + "src": "3551:16:2" }, { "attributes": { @@ -7208,13 +7666,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1022, + "referencedDeclaration": 793, "type": "address payable", "value": "_recipient" }, - "id": 1085, + "id": 856, "name": "Identifier", - "src": "4153:10:8" + "src": "3568:10:2" }, { "attributes": { @@ -7222,13 +7680,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1024, + "referencedDeclaration": 795, "type": "address payable", "value": "_relayer" }, - "id": 1086, + "id": 857, "name": "Identifier", - "src": "4165:8:8" + "src": "3580:8:2" }, { "attributes": { @@ -7236,13 +7694,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1026, + "referencedDeclaration": 797, "type": "uint256", "value": "_fee" }, - "id": 1087, + "id": 858, "name": "Identifier", - "src": "4175:4:8" + "src": "3590:4:2" }, { "attributes": { @@ -7250,23 +7708,79 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1028, + "referencedDeclaration": 799, "type": "uint256", "value": "_refund" }, - "id": 1088, + "id": 859, "name": "Identifier", - "src": "4181:7:8" + "src": "3596:7:2" + }, + { + "attributes": { + "argumentTypes": null, + "arguments": [ + null + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "address", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + null + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "feeTo", + "referencedDeclaration": 653, + "type": "function () view external returns (address)" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 672, + "type": "contract IFeeManager", + "value": "feeManager" + }, + "id": 860, + "name": "Identifier", + "src": "3605:10:2" + } + ], + "id": 861, + "name": "MemberAccess", + "src": "3605:16:2" + } + ], + "id": 862, + "name": "FunctionCall", + "src": "3605:18:2" } ], - "id": 1089, + "id": 863, "name": "FunctionCall", - "src": "4136:53:8" + "src": "3551:73:2" } ], - "id": 1090, + "id": 864, "name": "ExpressionStatement", - "src": "4136:53:8" + "src": "3551:73:2" }, { "children": [ @@ -7308,13 +7822,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 939, + "referencedDeclaration": 704, "type": "function (address,bytes32,address,uint256)", "value": "Withdrawal" }, - "id": 1091, + "id": 865, "name": "Identifier", - "src": "4200:10:8" + "src": "3635:10:2" }, { "attributes": { @@ -7322,13 +7836,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1022, + "referencedDeclaration": 793, "type": "address payable", "value": "_recipient" }, - "id": 1092, + "id": 866, "name": "Identifier", - "src": "4211:10:8" + "src": "3646:10:2" }, { "attributes": { @@ -7336,13 +7850,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1020, + "referencedDeclaration": 791, "type": "bytes32", "value": "_nullifierHash" }, - "id": 1093, + "id": 867, "name": "Identifier", - "src": "4223:14:8" + "src": "3658:14:2" }, { "attributes": { @@ -7350,13 +7864,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1024, + "referencedDeclaration": 795, "type": "address payable", "value": "_relayer" }, - "id": 1094, + "id": 868, "name": "Identifier", - "src": "4239:8:8" + "src": "3674:8:2" }, { "attributes": { @@ -7364,33 +7878,33 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1026, + "referencedDeclaration": 797, "type": "uint256", "value": "_fee" }, - "id": 1095, + "id": 869, "name": "Identifier", - "src": "4249:4:8" + "src": "3684:4:2" } ], - "id": 1096, + "id": 870, "name": "FunctionCall", - "src": "4200:54:8" + "src": "3635:54:2" } ], - "id": 1097, + "id": 871, "name": "EmitStatement", - "src": "4195:59:8" + "src": "3630:59:2" } ], - "id": 1098, + "id": 872, "name": "Block", - "src": "3673:586:8" + "src": "3088:606:2" } ], - "id": 1099, + "id": 873, "name": "FunctionDefinition", - "src": "3478:781:8" + "src": "2893:801:2" }, { "attributes": { @@ -7403,7 +7917,7 @@ null ], "name": "_processWithdraw", - "scope": 1194, + "scope": 970, "stateMutability": "nonpayable", "superFunction": null, "visibility": "internal" @@ -7415,7 +7929,7 @@ "attributes": { "constant": false, "name": "_recipient", - "scope": 1110, + "scope": 886, "stateVariable": false, "storageLocation": "default", "type": "address payable", @@ -7429,20 +7943,20 @@ "stateMutability": "payable", "type": "address payable" }, - "id": 1100, + "id": 874, "name": "ElementaryTypeName", - "src": "4348:15:8" + "src": "3783:15:2" } ], - "id": 1101, + "id": 875, "name": "VariableDeclaration", - "src": "4348:26:8" + "src": "3783:26:2" }, { "attributes": { "constant": false, "name": "_relayer", - "scope": 1110, + "scope": 886, "stateVariable": false, "storageLocation": "default", "type": "address payable", @@ -7456,20 +7970,20 @@ "stateMutability": "payable", "type": "address payable" }, - "id": 1102, + "id": 876, "name": "ElementaryTypeName", - "src": "4376:15:8" + "src": "3811:15:2" } ], - "id": 1103, + "id": 877, "name": "VariableDeclaration", - "src": "4376:24:8" + "src": "3811:24:2" }, { "attributes": { "constant": false, - "name": "_fee", - "scope": 1110, + "name": "_relayer_fee", + "scope": 886, "stateVariable": false, "storageLocation": "default", "type": "uint256", @@ -7482,20 +7996,20 @@ "name": "uint256", "type": "uint256" }, - "id": 1104, + "id": 878, "name": "ElementaryTypeName", - "src": "4402:7:8" + "src": "3837:7:2" } ], - "id": 1105, + "id": 879, "name": "VariableDeclaration", - "src": "4402:12:8" + "src": "3837:20:2" }, { "attributes": { "constant": false, "name": "_refund", - "scope": 1110, + "scope": 886, "stateVariable": false, "storageLocation": "default", "type": "uint256", @@ -7508,19 +8022,46 @@ "name": "uint256", "type": "uint256" }, - "id": 1106, + "id": 880, "name": "ElementaryTypeName", - "src": "4416:7:8" + "src": "3859:7:2" } ], - "id": 1107, + "id": 881, "name": "VariableDeclaration", - "src": "4416:15:8" + "src": "3859:15:2" + }, + { + "attributes": { + "constant": false, + "name": "_feeTo", + "scope": 886, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 882, + "name": "ElementaryTypeName", + "src": "3876:7:2" + } + ], + "id": 883, + "name": "VariableDeclaration", + "src": "3876:14:2" } ], - "id": 1108, + "id": 884, "name": "ParameterList", - "src": "4347:85:8" + "src": "3782:109:2" }, { "attributes": { @@ -7529,14 +8070,14 @@ ] }, "children": [], - "id": 1109, + "id": 885, "name": "ParameterList", - "src": "4441:0:8" + "src": "3900:0:2" } ], - "id": 1110, + "id": 886, "name": "FunctionDefinition", - "src": "4322:120:8" + "src": "3757:144:2" }, { "attributes": { @@ -7548,7 +8089,7 @@ null ], "name": "isSpent", - "scope": 1194, + "scope": 970, "stateMutability": "view", "superFunction": null, "visibility": "public" @@ -7560,7 +8101,7 @@ "attributes": { "constant": false, "name": "_nullifierHash", - "scope": 1122, + "scope": 898, "stateVariable": false, "storageLocation": "default", "type": "bytes32", @@ -7573,19 +8114,19 @@ "name": "bytes32", "type": "bytes32" }, - "id": 1111, + "id": 887, "name": "ElementaryTypeName", - "src": "4509:7:8" + "src": "3968:7:2" } ], - "id": 1112, + "id": 888, "name": "VariableDeclaration", - "src": "4509:22:8" + "src": "3968:22:2" } ], - "id": 1113, + "id": 889, "name": "ParameterList", - "src": "4508:24:8" + "src": "3967:24:2" }, { "children": [ @@ -7593,7 +8134,7 @@ "attributes": { "constant": false, "name": "", - "scope": 1122, + "scope": 898, "stateVariable": false, "storageLocation": "default", "type": "bool", @@ -7606,25 +8147,25 @@ "name": "bool", "type": "bool" }, - "id": 1114, + "id": 890, "name": "ElementaryTypeName", - "src": "4553:4:8" + "src": "4012:4:2" } ], - "id": 1115, + "id": 891, "name": "VariableDeclaration", - "src": "4553:4:8" + "src": "4012:4:2" } ], - "id": 1116, + "id": 892, "name": "ParameterList", - "src": "4552:6:8" + "src": "4011:6:2" }, { "children": [ { "attributes": { - "functionReturnParameters": 1116 + "functionReturnParameters": 892 }, "children": [ { @@ -7643,13 +8184,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 901, + "referencedDeclaration": 664, "type": "mapping(bytes32 => bool)", "value": "nullifierHashes" }, - "id": 1117, + "id": 893, "name": "Identifier", - "src": "4572:15:8" + "src": "4031:15:2" }, { "attributes": { @@ -7657,33 +8198,33 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1112, + "referencedDeclaration": 888, "type": "bytes32", "value": "_nullifierHash" }, - "id": 1118, + "id": 894, "name": "Identifier", - "src": "4588:14:8" + "src": "4047:14:2" } ], - "id": 1119, + "id": 895, "name": "IndexAccess", - "src": "4572:31:8" + "src": "4031:31:2" } ], - "id": 1120, + "id": 896, "name": "Return", - "src": "4565:38:8" + "src": "4024:38:2" } ], - "id": 1121, + "id": 897, "name": "Block", - "src": "4559:49:8" + "src": "4018:49:2" } ], - "id": 1122, + "id": 898, "name": "FunctionDefinition", - "src": "4492:116:8" + "src": "3951:116:2" }, { "attributes": { @@ -7695,7 +8236,7 @@ null ], "name": "isSpentArray", - "scope": 1194, + "scope": 970, "stateMutability": "view", "superFunction": null, "visibility": "external" @@ -7707,7 +8248,7 @@ "attributes": { "constant": false, "name": "_nullifierHashes", - "scope": 1167, + "scope": 943, "stateVariable": false, "storageLocation": "calldata", "type": "bytes32[]", @@ -7726,24 +8267,24 @@ "name": "bytes32", "type": "bytes32" }, - "id": 1123, + "id": 899, "name": "ElementaryTypeName", - "src": "4691:7:8" + "src": "4150:7:2" } ], - "id": 1124, + "id": 900, "name": "ArrayTypeName", - "src": "4691:9:8" + "src": "4150:9:2" } ], - "id": 1125, + "id": 901, "name": "VariableDeclaration", - "src": "4691:35:8" + "src": "4150:35:2" } ], - "id": 1126, + "id": 902, "name": "ParameterList", - "src": "4690:37:8" + "src": "4149:37:2" }, { "children": [ @@ -7751,7 +8292,7 @@ "attributes": { "constant": false, "name": "spent", - "scope": 1167, + "scope": 943, "stateVariable": false, "storageLocation": "memory", "type": "bool[]", @@ -7770,24 +8311,24 @@ "name": "bool", "type": "bool" }, - "id": 1127, + "id": 903, "name": "ElementaryTypeName", - "src": "4750:4:8" + "src": "4209:4:2" } ], - "id": 1128, + "id": 904, "name": "ArrayTypeName", - "src": "4750:6:8" + "src": "4209:6:2" } ], - "id": 1129, + "id": 905, "name": "VariableDeclaration", - "src": "4750:19:8" + "src": "4209:19:2" } ], - "id": 1130, + "id": 906, "name": "ParameterList", - "src": "4749:21:8" + "src": "4208:21:2" }, { "children": [ @@ -7810,13 +8351,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1129, + "referencedDeclaration": 905, "type": "bool[] memory", "value": "spent" }, - "id": 1131, + "id": 907, "name": "Identifier", - "src": "4777:5:8" + "src": "4236:5:2" }, { "attributes": { @@ -7859,19 +8400,19 @@ "name": "bool", "type": "bool" }, - "id": 1132, + "id": 908, "name": "ElementaryTypeName", - "src": "4789:4:8" + "src": "4248:4:2" } ], - "id": 1133, + "id": 909, "name": "ArrayTypeName", - "src": "4789:6:8" + "src": "4248:6:2" } ], - "id": 1134, + "id": 910, "name": "NewExpression", - "src": "4785:10:8" + "src": "4244:10:2" }, { "attributes": { @@ -7891,40 +8432,40 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1125, + "referencedDeclaration": 901, "type": "bytes32[] calldata", "value": "_nullifierHashes" }, - "id": 1135, + "id": 911, "name": "Identifier", - "src": "4796:16:8" + "src": "4255:16:2" } ], - "id": 1136, + "id": 912, "name": "MemberAccess", - "src": "4796:23:8" + "src": "4255:23:2" } ], - "id": 1137, + "id": 913, "name": "FunctionCall", - "src": "4785:35:8" + "src": "4244:35:2" } ], - "id": 1138, + "id": 914, "name": "Assignment", - "src": "4777:43:8" + "src": "4236:43:2" } ], - "id": 1139, + "id": 915, "name": "ExpressionStatement", - "src": "4777:43:8" + "src": "4236:43:2" }, { "children": [ { "attributes": { "assignments": [ - 1141 + 917 ] }, "children": [ @@ -7932,7 +8473,7 @@ "attributes": { "constant": false, "name": "i", - "scope": 1165, + "scope": 941, "stateVariable": false, "storageLocation": "default", "type": "uint256", @@ -7945,14 +8486,14 @@ "name": "uint", "type": "uint256" }, - "id": 1140, + "id": 916, "name": "ElementaryTypeName", - "src": "4830:4:8" + "src": "4289:4:2" } ], - "id": 1141, + "id": 917, "name": "VariableDeclaration", - "src": "4830:6:8" + "src": "4289:6:2" }, { "attributes": { @@ -7967,14 +8508,14 @@ "type": "int_const 0", "value": "0" }, - "id": 1142, + "id": 918, "name": "Literal", - "src": "4839:1:8" + "src": "4298:1:2" } ], - "id": 1143, + "id": 919, "name": "VariableDeclarationStatement", - "src": "4830:10:8" + "src": "4289:10:2" }, { "attributes": { @@ -7997,13 +8538,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1141, + "referencedDeclaration": 917, "type": "uint256", "value": "i" }, - "id": 1144, + "id": 920, "name": "Identifier", - "src": "4842:1:8" + "src": "4301:1:2" }, { "attributes": { @@ -8023,23 +8564,23 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1125, + "referencedDeclaration": 901, "type": "bytes32[] calldata", "value": "_nullifierHashes" }, - "id": 1145, + "id": 921, "name": "Identifier", - "src": "4846:16:8" + "src": "4305:16:2" } ], - "id": 1146, + "id": 922, "name": "MemberAccess", - "src": "4846:23:8" + "src": "4305:23:2" } ], - "id": 1147, + "id": 923, "name": "BinaryOperation", - "src": "4842:27:8" + "src": "4301:27:2" }, { "children": [ @@ -8061,23 +8602,23 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1141, + "referencedDeclaration": 917, "type": "uint256", "value": "i" }, - "id": 1148, + "id": 924, "name": "Identifier", - "src": "4871:1:8" + "src": "4330:1:2" } ], - "id": 1149, + "id": 925, "name": "UnaryOperation", - "src": "4871:3:8" + "src": "4330:3:2" } ], - "id": 1150, + "id": 926, "name": "ExpressionStatement", - "src": "4871:3:8" + "src": "4330:3:2" }, { "children": [ @@ -8112,13 +8653,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1122, + "referencedDeclaration": 898, "type": "function (bytes32) view returns (bool)", "value": "isSpent" }, - "id": 1151, + "id": 927, "name": "Identifier", - "src": "4888:7:8" + "src": "4347:7:2" }, { "attributes": { @@ -8136,13 +8677,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1125, + "referencedDeclaration": 901, "type": "bytes32[] calldata", "value": "_nullifierHashes" }, - "id": 1152, + "id": 928, "name": "Identifier", - "src": "4896:16:8" + "src": "4355:16:2" }, { "attributes": { @@ -8150,23 +8691,23 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1141, + "referencedDeclaration": 917, "type": "uint256", "value": "i" }, - "id": 1153, + "id": 929, "name": "Identifier", - "src": "4913:1:8" + "src": "4372:1:2" } ], - "id": 1154, + "id": 930, "name": "IndexAccess", - "src": "4896:19:8" + "src": "4355:19:2" } ], - "id": 1155, + "id": 931, "name": "FunctionCall", - "src": "4888:28:8" + "src": "4347:28:2" }, { "children": [ @@ -8199,13 +8740,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1129, + "referencedDeclaration": 905, "type": "bool[] memory", "value": "spent" }, - "id": 1156, + "id": 932, "name": "Identifier", - "src": "4928:5:8" + "src": "4387:5:2" }, { "attributes": { @@ -8213,18 +8754,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1141, + "referencedDeclaration": 917, "type": "uint256", "value": "i" }, - "id": 1157, + "id": 933, "name": "Identifier", - "src": "4934:1:8" + "src": "4393:1:2" } ], - "id": 1158, + "id": 934, "name": "IndexAccess", - "src": "4928:8:8" + "src": "4387:8:2" }, { "attributes": { @@ -8239,49 +8780,49 @@ "type": "bool", "value": "true" }, - "id": 1159, + "id": 935, "name": "Literal", - "src": "4939:4:8" + "src": "4398:4:2" } ], - "id": 1160, + "id": 936, "name": "Assignment", - "src": "4928:15:8" + "src": "4387:15:2" } ], - "id": 1161, + "id": 937, "name": "ExpressionStatement", - "src": "4928:15:8" + "src": "4387:15:2" } ], - "id": 1162, + "id": 938, "name": "Block", - "src": "4918:34:8" + "src": "4377:34:2" } ], - "id": 1163, + "id": 939, "name": "IfStatement", - "src": "4884:68:8" + "src": "4343:68:2" } ], - "id": 1164, + "id": 940, "name": "Block", - "src": "4876:82:8" + "src": "4335:82:2" } ], - "id": 1165, + "id": 941, "name": "ForStatement", - "src": "4826:132:8" + "src": "4285:132:2" } ], - "id": 1166, + "id": 942, "name": "Block", - "src": "4771:191:8" + "src": "4230:191:2" } ], - "id": 1167, + "id": 943, "name": "FunctionDefinition", - "src": "4669:293:8" + "src": "4128:293:2" }, { "attributes": { @@ -8290,7 +8831,7 @@ "isConstructor": false, "kind": "function", "name": "updateVerifier", - "scope": 1194, + "scope": 970, "stateMutability": "nonpayable", "superFunction": null, "visibility": "external" @@ -8302,7 +8843,7 @@ "attributes": { "constant": false, "name": "_newVerifier", - "scope": 1181, + "scope": 957, "stateVariable": false, "storageLocation": "default", "type": "address", @@ -8316,19 +8857,19 @@ "stateMutability": "nonpayable", "type": "address" }, - "id": 1168, + "id": 944, "name": "ElementaryTypeName", - "src": "5216:7:8" + "src": "4675:7:2" } ], - "id": 1169, + "id": 945, "name": "VariableDeclaration", - "src": "5216:20:8" + "src": "4675:20:2" } ], - "id": 1170, + "id": 946, "name": "ParameterList", - "src": "5215:22:8" + "src": "4674:22:2" }, { "attributes": { @@ -8337,9 +8878,9 @@ ] }, "children": [], - "id": 1173, + "id": 949, "name": "ParameterList", - "src": "5260:0:8" + "src": "4719:0:2" }, { "attributes": { @@ -8352,18 +8893,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 921, + "referencedDeclaration": 686, "type": "modifier ()", "value": "onlyOperator" }, - "id": 1171, + "id": 947, "name": "Identifier", - "src": "5247:12:8" + "src": "4706:12:2" } ], - "id": 1172, + "id": 948, "name": "ModifierInvocation", - "src": "5247:12:8" + "src": "4706:12:2" }, { "children": [ @@ -8386,13 +8927,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 907, + "referencedDeclaration": 670, "type": "contract IVerifier", "value": "verifier" }, - "id": 1174, + "id": 950, "name": "Identifier", - "src": "5266:8:8" + "src": "4725:8:2" }, { "attributes": { @@ -8420,13 +8961,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 891, + "referencedDeclaration": 648, "type": "type(contract IVerifier)", "value": "IVerifier" }, - "id": 1175, + "id": 951, "name": "Identifier", - "src": "5277:9:8" + "src": "4736:9:2" }, { "attributes": { @@ -8434,38 +8975,38 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1169, + "referencedDeclaration": 945, "type": "address", "value": "_newVerifier" }, - "id": 1176, + "id": 952, "name": "Identifier", - "src": "5287:12:8" + "src": "4746:12:2" } ], - "id": 1177, + "id": 953, "name": "FunctionCall", - "src": "5277:23:8" + "src": "4736:23:2" } ], - "id": 1178, + "id": 954, "name": "Assignment", - "src": "5266:34:8" + "src": "4725:34:2" } ], - "id": 1179, + "id": 955, "name": "ExpressionStatement", - "src": "5266:34:8" + "src": "4725:34:2" } ], - "id": 1180, + "id": 956, "name": "Block", - "src": "5260:45:8" + "src": "4719:45:2" } ], - "id": 1181, + "id": 957, "name": "FunctionDefinition", - "src": "5192:113:8" + "src": "4651:113:2" }, { "attributes": { @@ -8474,7 +9015,7 @@ "isConstructor": false, "kind": "function", "name": "changeOperator", - "scope": 1194, + "scope": 970, "stateMutability": "nonpayable", "superFunction": null, "visibility": "external" @@ -8486,7 +9027,7 @@ "attributes": { "constant": false, "name": "_newOperator", - "scope": 1193, + "scope": 969, "stateVariable": false, "storageLocation": "default", "type": "address", @@ -8500,19 +9041,19 @@ "stateMutability": "nonpayable", "type": "address" }, - "id": 1182, + "id": 958, "name": "ElementaryTypeName", - "src": "5379:7:8" + "src": "4838:7:2" } ], - "id": 1183, + "id": 959, "name": "VariableDeclaration", - "src": "5379:20:8" + "src": "4838:20:2" } ], - "id": 1184, + "id": 960, "name": "ParameterList", - "src": "5378:22:8" + "src": "4837:22:2" }, { "attributes": { @@ -8521,9 +9062,9 @@ ] }, "children": [], - "id": 1187, + "id": 963, "name": "ParameterList", - "src": "5423:0:8" + "src": "4882:0:2" }, { "attributes": { @@ -8536,18 +9077,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 921, + "referencedDeclaration": 686, "type": "modifier ()", "value": "onlyOperator" }, - "id": 1185, + "id": 961, "name": "Identifier", - "src": "5410:12:8" + "src": "4869:12:2" } ], - "id": 1186, + "id": 962, "name": "ModifierInvocation", - "src": "5410:12:8" + "src": "4869:12:2" }, { "children": [ @@ -8570,13 +9111,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 909, + "referencedDeclaration": 674, "type": "address", "value": "operator" }, - "id": 1188, + "id": 964, "name": "Identifier", - "src": "5429:8:8" + "src": "4888:8:2" }, { "attributes": { @@ -8584,43 +9125,43 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1183, + "referencedDeclaration": 959, "type": "address", "value": "_newOperator" }, - "id": 1189, + "id": 965, "name": "Identifier", - "src": "5440:12:8" + "src": "4899:12:2" } ], - "id": 1190, + "id": 966, "name": "Assignment", - "src": "5429:23:8" + "src": "4888:23:2" } ], - "id": 1191, + "id": 967, "name": "ExpressionStatement", - "src": "5429:23:8" + "src": "4888:23:2" } ], - "id": 1192, + "id": 968, "name": "Block", - "src": "5423:34:8" + "src": "4882:34:2" } ], - "id": 1193, + "id": 969, "name": "FunctionDefinition", - "src": "5355:102:8" + "src": "4814:102:2" } ], - "id": 1194, + "id": 970, "name": "ContractDefinition", - "src": "995:4464:8" + "src": "318:4600:2" } ], - "id": 1195, + "id": 971, "name": "SourceUnit", - "src": "755:4705:8" + "src": "0:4919:2" }, "compiler": { "name": "solc", @@ -8628,7 +9169,7 @@ }, "networks": {}, "schemaVersion": "3.3.4", - "updatedAt": "2021-03-14T02:18:33.089Z", + "updatedAt": "2021-04-02T22:21:29.535Z", "devdoc": { "methods": {} }, diff --git a/client/contracts/Pairing.json b/client/contracts/Pairing.json index 5ceacd1..e227088 100644 --- a/client/contracts/Pairing.json +++ b/client/contracts/Pairing.json @@ -1,28 +1,28 @@ { "contractName": "Pairing", "abi": [], - "metadata": "{\"compiler\":{\"version\":\"0.5.17+commit.d19bba13\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/Users/brianli/dotfiles/tornado-core/contracts/Verifier.sol\":\"Pairing\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/Users/brianli/dotfiles/tornado-core/contracts/Verifier.sol\":{\"keccak256\":\"0x1a5bad09fb4c93745d267b5ab910714daf90c73c613b99680b56ffa3b156e04f\",\"urls\":[\"bzz-raw://7c8ee2390aeba638e2f5269ef68f9dc271717a1fd376cdd41841033c4fe30eed\",\"dweb:/ipfs/QmRRxaeV9rMHb85onzMvCRkQLpEYgzqLDNuDhauH8Jxa3k\"]}},\"version\":1}", - "bytecode": "0x60556023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea265627a7a7231582065358e35dbd3def299b4c4630b147a07c6ed69c47d2f9aacd93324e59b74cca464736f6c63430005110032", - "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea265627a7a7231582065358e35dbd3def299b4c4630b147a07c6ed69c47d2f9aacd93324e59b74cca464736f6c63430005110032", - "sourceMap": "1217:5849:0:-;;132:2:-1;166:7;155:9;146:7;137:37;255:7;249:14;246:1;241:23;235:4;232:33;222:2;;269:9;222:2;293:9;290:1;283:20;323:4;314:7;306:22;347:7;338;331:24", - "deployedSourceMap": "1217:5849:0:-;;;;;;;;", - "source": "//\n// Copyright 2017 Christian Reitwiessner\n// Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \"Software\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:\n// The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n//\n// 2019 OKIMS\n// ported to solidity 0.5\n// fixed linter warnings\n// added requiere error messages\n//\npragma solidity ^0.5.0;\nlibrary Pairing {\n struct G1Point {\n uint X;\n uint Y;\n }\n // Encoding of field elements is: X[0] * z + X[1]\n struct G2Point {\n uint[2] X;\n uint[2] Y;\n }\n /// @return the generator of G1\n function P1() internal pure returns (G1Point memory) {\n return G1Point(1, 2);\n }\n /// @return the generator of G2\n function P2() internal pure returns (G2Point memory) {\n // Original code point\n return G2Point(\n [11559732032986387107991004021392285783925812861821192530917403151452391805634,\n 10857046999023057135944570762232829481370756359578518086990519993285655852781],\n [4082367875863433681332203403145435568316851327593401208105741076214120093531,\n 8495653923123431417604973247489272438418190587263600148770280649306958101930]\n );\n\n/*\n // Changed by Jordi point\n return G2Point(\n [10857046999023057135944570762232829481370756359578518086990519993285655852781,\n 11559732032986387107991004021392285783925812861821192530917403151452391805634],\n [8495653923123431417604973247489272438418190587263600148770280649306958101930,\n 4082367875863433681332203403145435568316851327593401208105741076214120093531]\n );\n*/\n }\n /// @return the negation of p, i.e. p.addition(p.negate()) should be zero.\n function negate(G1Point memory p) internal pure returns (G1Point memory) {\n // The prime q in the base field F_q for G1\n uint q = 21888242871839275222246405745257275088696311157297823662689037894645226208583;\n if (p.X == 0 && p.Y == 0)\n return G1Point(0, 0);\n return G1Point(p.X, q - (p.Y % q));\n }\n /// @return the sum of two points of G1\n function addition(G1Point memory p1, G1Point memory p2) internal view returns (G1Point memory r) {\n uint[4] memory input;\n input[0] = p1.X;\n input[1] = p1.Y;\n input[2] = p2.X;\n input[3] = p2.Y;\n bool success;\n // solium-disable-next-line security/no-inline-assembly\n assembly {\n success := staticcall(sub(gas, 2000), 6, input, 0xc0, r, 0x60)\n // Use \"invalid\" to make gas estimation work\n switch success case 0 { invalid() }\n }\n require(success,\"pairing-add-failed\");\n }\n /// @return the product of a point on G1 and a scalar, i.e.\n /// p == p.scalar_mul(1) and p.addition(p) == p.scalar_mul(2) for all points p.\n function scalar_mul(G1Point memory p, uint s) internal view returns (G1Point memory r) {\n uint[3] memory input;\n input[0] = p.X;\n input[1] = p.Y;\n input[2] = s;\n bool success;\n // solium-disable-next-line security/no-inline-assembly\n assembly {\n success := staticcall(sub(gas, 2000), 7, input, 0x80, r, 0x60)\n // Use \"invalid\" to make gas estimation work\n switch success case 0 { invalid() }\n }\n require (success,\"pairing-mul-failed\");\n }\n /// @return the result of computing the pairing check\n /// e(p1[0], p2[0]) * .... * e(p1[n], p2[n]) == 1\n /// For example pairing([P1(), P1().negate()], [P2(), P2()]) should\n /// return true.\n function pairing(G1Point[] memory p1, G2Point[] memory p2) internal view returns (bool) {\n require(p1.length == p2.length,\"pairing-lengths-failed\");\n uint elements = p1.length;\n uint inputSize = elements * 6;\n uint[] memory input = new uint[](inputSize);\n for (uint i = 0; i < elements; i++)\n {\n input[i * 6 + 0] = p1[i].X;\n input[i * 6 + 1] = p1[i].Y;\n input[i * 6 + 2] = p2[i].X[0];\n input[i * 6 + 3] = p2[i].X[1];\n input[i * 6 + 4] = p2[i].Y[0];\n input[i * 6 + 5] = p2[i].Y[1];\n }\n uint[1] memory out;\n bool success;\n // solium-disable-next-line security/no-inline-assembly\n assembly {\n success := staticcall(sub(gas, 2000), 8, add(input, 0x20), mul(inputSize, 0x20), out, 0x20)\n // Use \"invalid\" to make gas estimation work\n switch success case 0 { invalid() }\n }\n require(success,\"pairing-opcode-failed\");\n return out[0] != 0;\n }\n /// Convenience method for a pairing check for two pairs.\n function pairingProd2(G1Point memory a1, G2Point memory a2, G1Point memory b1, G2Point memory b2) internal view returns (bool) {\n G1Point[] memory p1 = new G1Point[](2);\n G2Point[] memory p2 = new G2Point[](2);\n p1[0] = a1;\n p1[1] = b1;\n p2[0] = a2;\n p2[1] = b2;\n return pairing(p1, p2);\n }\n /// Convenience method for a pairing check for three pairs.\n function pairingProd3(\n G1Point memory a1, G2Point memory a2,\n G1Point memory b1, G2Point memory b2,\n G1Point memory c1, G2Point memory c2\n ) internal view returns (bool) {\n G1Point[] memory p1 = new G1Point[](3);\n G2Point[] memory p2 = new G2Point[](3);\n p1[0] = a1;\n p1[1] = b1;\n p1[2] = c1;\n p2[0] = a2;\n p2[1] = b2;\n p2[2] = c2;\n return pairing(p1, p2);\n }\n /// Convenience method for a pairing check for four pairs.\n function pairingProd4(\n G1Point memory a1, G2Point memory a2,\n G1Point memory b1, G2Point memory b2,\n G1Point memory c1, G2Point memory c2,\n G1Point memory d1, G2Point memory d2\n ) internal view returns (bool) {\n G1Point[] memory p1 = new G1Point[](4);\n G2Point[] memory p2 = new G2Point[](4);\n p1[0] = a1;\n p1[1] = b1;\n p1[2] = c1;\n p1[3] = d1;\n p2[0] = a2;\n p2[1] = b2;\n p2[2] = c2;\n p2[3] = d2;\n return pairing(p1, p2);\n }\n}\ncontract Verifier {\n using Pairing for *;\n struct VerifyingKey {\n Pairing.G1Point alfa1;\n Pairing.G2Point beta2;\n Pairing.G2Point gamma2;\n Pairing.G2Point delta2;\n Pairing.G1Point[] IC;\n }\n struct Proof {\n Pairing.G1Point A;\n Pairing.G2Point B;\n Pairing.G1Point C;\n }\n function verifyingKey() internal pure returns (VerifyingKey memory vk) {\n vk.alfa1 = Pairing.G1Point(7151775474753074349603912814830808112682320561937812962620439914534956067331,682377702098595391270027270967757538763707619874081511951624062082325519674);\n vk.beta2 = Pairing.G2Point([20474272456110192496490825760486544109357124721531445873939145313433733824220,13252888896085562774867675229114787891631643770424400324246247076229386049501], [14784379610034634187204423718356693090071689376688584624280291017164379006233,13046591222454305887136715197273759391534286065861464467946061993683867256434]);\n vk.gamma2 = Pairing.G2Point([21042795335361435922334910932602603279284038519849328824162118789496209240642,19908252351547958567549699620020851168966078981120922100188901935428234335244], [12375358201929679940055095151469821879988088967898472545435218684203421378511,12223694718671561908305426624445745497890095643689160030471238966053469140475]);\n vk.delta2 = Pairing.G2Point([3886441844303543781124707154850574092604010586329691630765567103769412517931,2632754659934557755551959824654540259945663642639362309737823288379077804332], [8991509635806059221905008777597794339790670060173258089443909278982396490577,4691171071997919797132027201833073068514914502335649997511830613929126660128]);\n vk.IC = new Pairing.G1Point[](7);\n vk.IC[0] = Pairing.G1Point(15493342410434936755631579473464409083923770306563815758480953489390186887772,7753995649714900666208266146509870606782015660111458217253018284907299910898);\n vk.IC[1] = Pairing.G1Point(19296011005264714033718351493537172463570687861720373272007918735071429075746,16204599863540013761774674626905638065591212224511845646247942294147714652783);\n vk.IC[2] = Pairing.G1Point(6800131163095851761624472656381537016631915980579513643476302966123639982936,6187553643615591777064477778372210442801186703705175334343813412283817723258);\n vk.IC[3] = Pairing.G1Point(4587236276877759665317431125194154795602571890982244289024831299326384396122,11965403480957802226918942425420027101347015982012757991262803217462830457988);\n vk.IC[4] = Pairing.G1Point(6424577348595355116274404126261845824928373631359383206779835056684747287432,5068925343739685487841387431671860275036721147250958866048951387840854681489);\n vk.IC[5] = Pairing.G1Point(3415843548574565829319442408676813522319941059565646881086034695645515873064,5883489158379442339980761211460192605180893997876253461080527033851992047395);\n vk.IC[6] = Pairing.G1Point(20644165802587991582826647132535920964743533681089204673978388434999038955024,8998916039073087523772804621208137737037769156523190942078025903730975741357);\n\n }\n function verify(uint[] memory input, Proof memory proof) internal view returns (uint) {\n uint256 snark_scalar_field = 21888242871839275222246405745257275088548364400416034343698204186575808495617;\n VerifyingKey memory vk = verifyingKey();\n require(input.length + 1 == vk.IC.length,\"verifier-bad-input\");\n // Compute the linear combination vk_x\n Pairing.G1Point memory vk_x = Pairing.G1Point(0, 0);\n for (uint i = 0; i < input.length; i++) {\n require(input[i] < snark_scalar_field,\"verifier-gte-snark-scalar-field\");\n vk_x = Pairing.addition(vk_x, Pairing.scalar_mul(vk.IC[i + 1], input[i]));\n }\n vk_x = Pairing.addition(vk_x, vk.IC[0]);\n if (!Pairing.pairingProd4(\n Pairing.negate(proof.A), proof.B,\n vk.alfa1, vk.beta2,\n vk_x, vk.gamma2,\n proof.C, vk.delta2\n )) return 1;\n return 0;\n }\n function verifyProof(\n uint[2] memory a,\n uint[2][2] memory b,\n uint[2] memory c,\n uint[6] memory input\n ) public view returns (bool r) {\n Proof memory proof;\n proof.A = Pairing.G1Point(a[0], a[1]);\n proof.B = Pairing.G2Point([b[0][0], b[0][1]], [b[1][0], b[1][1]]);\n proof.C = Pairing.G1Point(c[0], c[1]);\n uint[] memory inputValues = new uint[](input.length);\n for(uint i = 0; i < input.length; i++){\n inputValues[i] = input[i];\n }\n if (verify(inputValues, proof) == 0) {\n return true;\n } else {\n return false;\n }\n }\n function verifyProof(bytes calldata proof, uint[6] calldata inputs) external view returns (bool r) {\n // solidity does not support decoding uint[2][2] yet\n (uint[2] memory a, uint[2] memory b1, uint[2] memory b2, uint[2] memory c) = abi.decode(proof, (uint[2], uint[2], uint[2], uint[2]));\n return verifyProof(a, [b1, b2], c, inputs);\n }\n}\n", + "metadata": "{\"compiler\":{\"version\":\"0.5.17+commit.d19bba13\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/Users/brianli/dotfiles/tornado-core/contracts/Verifier.sol\":\"Pairing\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/Users/brianli/dotfiles/tornado-core/contracts/Verifier.sol\":{\"keccak256\":\"0x2d2106b71c711cca4104f3461070179aaf8be85b69fda7c8dfcd76814485c881\",\"urls\":[\"bzz-raw://7474a6137fdc929a57f92915260c8a3844afba69851cd58dc914b805a959ad5c\",\"dweb:/ipfs/QmRXy5mfEjqEJizefADC5GHC2o7TMD7ZDq2N55WZbSnUwi\"]}},\"version\":1}", + "bytecode": "0x60556023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea265627a7a72315820e8894d6530d5c11645c33663626e06d063ecc27b83867c410b44b13374b07f8b64736f6c63430005110032", + "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea265627a7a72315820e8894d6530d5c11645c33663626e06d063ecc27b83867c410b44b13374b07f8b64736f6c63430005110032", + "sourceMap": "1217:5849:4:-;;132:2:-1;166:7;155:9;146:7;137:37;255:7;249:14;246:1;241:23;235:4;232:33;222:2;;269:9;222:2;293:9;290:1;283:20;323:4;314:7;306:22;347:7;338;331:24", + "deployedSourceMap": "1217:5849:4:-;;;;;;;;", + "source": "//\n// Copyright 2017 Christian Reitwiessner\n// Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \"Software\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:\n// The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n//\n// 2019 OKIMS\n// ported to solidity 0.5\n// fixed linter warnings\n// added requiere error messages\n//\npragma solidity ^0.5.0;\nlibrary Pairing {\n struct G1Point {\n uint X;\n uint Y;\n }\n // Encoding of field elements is: X[0] * z + X[1]\n struct G2Point {\n uint[2] X;\n uint[2] Y;\n }\n /// @return the generator of G1\n function P1() internal pure returns (G1Point memory) {\n return G1Point(1, 2);\n }\n /// @return the generator of G2\n function P2() internal pure returns (G2Point memory) {\n // Original code point\n return G2Point(\n [11559732032986387107991004021392285783925812861821192530917403151452391805634,\n 10857046999023057135944570762232829481370756359578518086990519993285655852781],\n [4082367875863433681332203403145435568316851327593401208105741076214120093531,\n 8495653923123431417604973247489272438418190587263600148770280649306958101930]\n );\n\n/*\n // Changed by Jordi point\n return G2Point(\n [10857046999023057135944570762232829481370756359578518086990519993285655852781,\n 11559732032986387107991004021392285783925812861821192530917403151452391805634],\n [8495653923123431417604973247489272438418190587263600148770280649306958101930,\n 4082367875863433681332203403145435568316851327593401208105741076214120093531]\n );\n*/\n }\n /// @return the negation of p, i.e. p.addition(p.negate()) should be zero.\n function negate(G1Point memory p) internal pure returns (G1Point memory) {\n // The prime q in the base field F_q for G1\n uint q = 21888242871839275222246405745257275088696311157297823662689037894645226208583;\n if (p.X == 0 && p.Y == 0)\n return G1Point(0, 0);\n return G1Point(p.X, q - (p.Y % q));\n }\n /// @return the sum of two points of G1\n function addition(G1Point memory p1, G1Point memory p2) internal view returns (G1Point memory r) {\n uint[4] memory input;\n input[0] = p1.X;\n input[1] = p1.Y;\n input[2] = p2.X;\n input[3] = p2.Y;\n bool success;\n // solium-disable-next-line security/no-inline-assembly\n assembly {\n success := staticcall(sub(gas, 2000), 6, input, 0xc0, r, 0x60)\n // Use \"invalid\" to make gas estimation work\n switch success case 0 { invalid() }\n }\n require(success,\"pairing-add-failed\");\n }\n /// @return the product of a point on G1 and a scalar, i.e.\n /// p == p.scalar_mul(1) and p.addition(p) == p.scalar_mul(2) for all points p.\n function scalar_mul(G1Point memory p, uint s) internal view returns (G1Point memory r) {\n uint[3] memory input;\n input[0] = p.X;\n input[1] = p.Y;\n input[2] = s;\n bool success;\n // solium-disable-next-line security/no-inline-assembly\n assembly {\n success := staticcall(sub(gas, 2000), 7, input, 0x80, r, 0x60)\n // Use \"invalid\" to make gas estimation work\n switch success case 0 { invalid() }\n }\n require (success,\"pairing-mul-failed\");\n }\n /// @return the result of computing the pairing check\n /// e(p1[0], p2[0]) * .... * e(p1[n], p2[n]) == 1\n /// For example pairing([P1(), P1().negate()], [P2(), P2()]) should\n /// return true.\n function pairing(G1Point[] memory p1, G2Point[] memory p2) internal view returns (bool) {\n require(p1.length == p2.length,\"pairing-lengths-failed\");\n uint elements = p1.length;\n uint inputSize = elements * 6;\n uint[] memory input = new uint[](inputSize);\n for (uint i = 0; i < elements; i++)\n {\n input[i * 6 + 0] = p1[i].X;\n input[i * 6 + 1] = p1[i].Y;\n input[i * 6 + 2] = p2[i].X[0];\n input[i * 6 + 3] = p2[i].X[1];\n input[i * 6 + 4] = p2[i].Y[0];\n input[i * 6 + 5] = p2[i].Y[1];\n }\n uint[1] memory out;\n bool success;\n // solium-disable-next-line security/no-inline-assembly\n assembly {\n success := staticcall(sub(gas, 2000), 8, add(input, 0x20), mul(inputSize, 0x20), out, 0x20)\n // Use \"invalid\" to make gas estimation work\n switch success case 0 { invalid() }\n }\n require(success,\"pairing-opcode-failed\");\n return out[0] != 0;\n }\n /// Convenience method for a pairing check for two pairs.\n function pairingProd2(G1Point memory a1, G2Point memory a2, G1Point memory b1, G2Point memory b2) internal view returns (bool) {\n G1Point[] memory p1 = new G1Point[](2);\n G2Point[] memory p2 = new G2Point[](2);\n p1[0] = a1;\n p1[1] = b1;\n p2[0] = a2;\n p2[1] = b2;\n return pairing(p1, p2);\n }\n /// Convenience method for a pairing check for three pairs.\n function pairingProd3(\n G1Point memory a1, G2Point memory a2,\n G1Point memory b1, G2Point memory b2,\n G1Point memory c1, G2Point memory c2\n ) internal view returns (bool) {\n G1Point[] memory p1 = new G1Point[](3);\n G2Point[] memory p2 = new G2Point[](3);\n p1[0] = a1;\n p1[1] = b1;\n p1[2] = c1;\n p2[0] = a2;\n p2[1] = b2;\n p2[2] = c2;\n return pairing(p1, p2);\n }\n /// Convenience method for a pairing check for four pairs.\n function pairingProd4(\n G1Point memory a1, G2Point memory a2,\n G1Point memory b1, G2Point memory b2,\n G1Point memory c1, G2Point memory c2,\n G1Point memory d1, G2Point memory d2\n ) internal view returns (bool) {\n G1Point[] memory p1 = new G1Point[](4);\n G2Point[] memory p2 = new G2Point[](4);\n p1[0] = a1;\n p1[1] = b1;\n p1[2] = c1;\n p1[3] = d1;\n p2[0] = a2;\n p2[1] = b2;\n p2[2] = c2;\n p2[3] = d2;\n return pairing(p1, p2);\n }\n}\ncontract Verifier {\n using Pairing for *;\n struct VerifyingKey {\n Pairing.G1Point alfa1;\n Pairing.G2Point beta2;\n Pairing.G2Point gamma2;\n Pairing.G2Point delta2;\n Pairing.G1Point[] IC;\n }\n struct Proof {\n Pairing.G1Point A;\n Pairing.G2Point B;\n Pairing.G1Point C;\n }\n function verifyingKey() internal pure returns (VerifyingKey memory vk) {\n vk.alfa1 = Pairing.G1Point(12460490708279467301202778391127510537683948258096796922127174268009168016746,2044073673724661651577421329709273081857081212805872863635504960509226496242);\n vk.beta2 = Pairing.G2Point([16087490193876161637448045704887923394070749301729401042528207780307353148754,4047315548230716670792711364149480628046544638739431946110837410403922953302], [14263157589925503025528792522444100058771414693273945149032889920775598241518,2403089822051858644985808169464757375250302755592994009294110237616552595758]);\n vk.gamma2 = Pairing.G2Point([18123276304127160438393801088717318781198132961398793760812749257186063014337,17607423105313335525432869667679352624924066595757032717782399822257020503137], [11025581329650047651679757086388724167475219406913114270498430888483526010684,17223042113062030556278816694661970331697234922696012013177194723549528474201]);\n vk.delta2 = Pairing.G2Point([6037623448512168987260566201688122245791371525028098505952259164431847775491,458336575433998506016458017218111862879186139304654606381372583914446959617], [15074747331456849121041477998068795341356504164554362922885862289027940900480,4551717338615761726884555729815737240947234262038677985956844189240908695656]);\n vk.IC = new Pairing.G1Point[](7);\n vk.IC[0] = Pairing.G1Point(3280151354857701104805815107342927006881561188181486049350149056802788902277,4096205864284246892786942491620896521544938058951378408773174891322097316913);\n vk.IC[1] = Pairing.G1Point(886075252733300330869950498066252804027245332188737089899561929180698930798,15570234229151758134113005312914035073446975470656183090215346868677091213005);\n vk.IC[2] = Pairing.G1Point(4803911529229921243819115938814624698011704327571816657368259655263810910424,9421521138574274245916449596797669329387046444348355383899676800456202039055);\n vk.IC[3] = Pairing.G1Point(8556536154095961870679484985871880561903552891231663801453118433906208208634,3050601476829943501968050336923012297384352890508269063303888737139486918441);\n vk.IC[4] = Pairing.G1Point(300970557484518070492531175714788912131243344262805477266806064126958929035,7398530781379870905922247634738956356372326243016843550426084862881205863447);\n vk.IC[5] = Pairing.G1Point(19920099237792867409693124415022100529487012962841642820676567509262507193107,20219544009593389298713776672148908906084007300789292168389787721741450912038);\n vk.IC[6] = Pairing.G1Point(19738468465658587453371819831578835676337686216736310076443477948701915541203,17051611336678940832594719954268295083764993921610290255520015002513439413943);\n\n }\n function verify(uint[] memory input, Proof memory proof) internal view returns (uint) {\n uint256 snark_scalar_field = 21888242871839275222246405745257275088548364400416034343698204186575808495617;\n VerifyingKey memory vk = verifyingKey();\n require(input.length + 1 == vk.IC.length,\"verifier-bad-input\");\n // Compute the linear combination vk_x\n Pairing.G1Point memory vk_x = Pairing.G1Point(0, 0);\n for (uint i = 0; i < input.length; i++) {\n require(input[i] < snark_scalar_field,\"verifier-gte-snark-scalar-field\");\n vk_x = Pairing.addition(vk_x, Pairing.scalar_mul(vk.IC[i + 1], input[i]));\n }\n vk_x = Pairing.addition(vk_x, vk.IC[0]);\n if (!Pairing.pairingProd4(\n Pairing.negate(proof.A), proof.B,\n vk.alfa1, vk.beta2,\n vk_x, vk.gamma2,\n proof.C, vk.delta2\n )) return 1;\n return 0;\n }\n function verifyProof(\n uint[2] memory a,\n uint[2][2] memory b,\n uint[2] memory c,\n uint[6] memory input\n ) public view returns (bool r) {\n Proof memory proof;\n proof.A = Pairing.G1Point(a[0], a[1]);\n proof.B = Pairing.G2Point([b[0][0], b[0][1]], [b[1][0], b[1][1]]);\n proof.C = Pairing.G1Point(c[0], c[1]);\n uint[] memory inputValues = new uint[](input.length);\n for(uint i = 0; i < input.length; i++){\n inputValues[i] = input[i];\n }\n if (verify(inputValues, proof) == 0) {\n return true;\n } else {\n return false;\n }\n }\n function verifyProof(bytes calldata proof, uint[6] calldata inputs) external view returns (bool r) {\n // solidity does not support decoding uint[2][2] yet\n (uint[2] memory a, uint[2] memory b1, uint[2] memory b2, uint[2] memory c) = abi.decode(proof, (uint[2], uint[2], uint[2], uint[2]));\n return verifyProof(a, [b1, b2], c, inputs);\n }\n}\n", "sourcePath": "/Users/brianli/dotfiles/tornado-core/contracts/Verifier.sol", "ast": { "absolutePath": "/Users/brianli/dotfiles/tornado-core/contracts/Verifier.sol", "exportedSymbols": { "Pairing": [ - 577 + 1605 ], "Verifier": [ - 1058 + 2086 ] }, - "id": 1059, + "id": 2087, "nodeType": "SourceUnit", "nodes": [ { - "id": 1, + "id": 1029, "literals": [ "solidity", "^", @@ -30,7 +30,7 @@ ".0" ], "nodeType": "PragmaDirective", - "src": "1193:23:0" + "src": "1193:23:4" }, { "baseContracts": [], @@ -38,24 +38,24 @@ "contractKind": "library", "documentation": null, "fullyImplemented": true, - "id": 577, + "id": 1605, "linearizedBaseContracts": [ - 577 + 1605 ], "name": "Pairing", "nodeType": "ContractDefinition", "nodes": [ { "canonicalName": "Pairing.G1Point", - "id": 6, + "id": 1034, "members": [ { "constant": false, - "id": 3, + "id": 1031, "name": "X", "nodeType": "VariableDeclaration", - "scope": 6, - "src": "1264:6:0", + "scope": 1034, + "src": "1264:6:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -63,10 +63,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2, + "id": 1030, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1264:4:0", + "src": "1264:4:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -77,11 +77,11 @@ }, { "constant": false, - "id": 5, + "id": 1033, "name": "Y", "nodeType": "VariableDeclaration", - "scope": 6, - "src": "1280:6:0", + "scope": 1034, + "src": "1280:6:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -89,10 +89,10 @@ "typeString": "uint256" }, "typeName": { - "id": 4, + "id": 1032, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1280:4:0", + "src": "1280:4:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -104,21 +104,21 @@ ], "name": "G1Point", "nodeType": "StructDefinition", - "scope": 577, - "src": "1239:54:0", + "scope": 1605, + "src": "1239:54:4", "visibility": "public" }, { "canonicalName": "Pairing.G2Point", - "id": 15, + "id": 1043, "members": [ { "constant": false, - "id": 10, + "id": 1038, "name": "X", "nodeType": "VariableDeclaration", - "scope": 15, - "src": "1377:9:0", + "scope": 1043, + "src": "1377:9:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -127,27 +127,27 @@ }, "typeName": { "baseType": { - "id": 7, + "id": 1035, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1377:4:0", + "src": "1377:4:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 9, + "id": 1037, "length": { "argumentTypes": null, "hexValue": "32", - "id": 8, + "id": 1036, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1382:1:0", + "src": "1382:1:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_2_by_1", @@ -156,7 +156,7 @@ "value": "2" }, "nodeType": "ArrayTypeName", - "src": "1377:7:0", + "src": "1377:7:4", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$2_storage_ptr", "typeString": "uint256[2]" @@ -167,11 +167,11 @@ }, { "constant": false, - "id": 14, + "id": 1042, "name": "Y", "nodeType": "VariableDeclaration", - "scope": 15, - "src": "1396:9:0", + "scope": 1043, + "src": "1396:9:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -180,27 +180,27 @@ }, "typeName": { "baseType": { - "id": 11, + "id": 1039, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1396:4:0", + "src": "1396:4:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 13, + "id": 1041, "length": { "argumentTypes": null, "hexValue": "32", - "id": 12, + "id": 1040, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1401:1:0", + "src": "1401:1:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_2_by_1", @@ -209,7 +209,7 @@ "value": "2" }, "nodeType": "ArrayTypeName", - "src": "1396:7:0", + "src": "1396:7:4", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$2_storage_ptr", "typeString": "uint256[2]" @@ -221,15 +221,15 @@ ], "name": "G2Point", "nodeType": "StructDefinition", - "scope": 577, - "src": "1352:60:0", + "scope": 1605, + "src": "1352:60:4", "visibility": "public" }, { "body": { - "id": 25, + "id": 1053, "nodeType": "Block", - "src": "1506:37:0", + "src": "1506:37:4", "statements": [ { "expression": { @@ -238,14 +238,14 @@ { "argumentTypes": null, "hexValue": "31", - "id": 21, + "id": 1049, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1531:1:0", + "src": "1531:1:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -256,14 +256,14 @@ { "argumentTypes": null, "hexValue": "32", - "id": 22, + "id": 1050, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1534:1:0", + "src": "1534:1:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_2_by_1", @@ -283,18 +283,18 @@ "typeString": "int_const 2" } ], - "id": 20, + "id": 1048, "name": "G1Point", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6, - "src": "1523:7:0", + "referencedDeclaration": 1034, + "src": "1523:7:4", "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_G1Point_$6_storage_ptr_$", + "typeIdentifier": "t_type$_t_struct$_G1Point_$1034_storage_ptr_$", "typeString": "type(struct Pairing.G1Point storage pointer)" } }, - "id": 23, + "id": 1051, "isConstant": false, "isLValue": false, "isPure": true, @@ -302,58 +302,58 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1523:13:0", + "src": "1523:13:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_memory", + "typeIdentifier": "t_struct$_G1Point_$1034_memory", "typeString": "struct Pairing.G1Point memory" } }, - "functionReturnParameters": 19, - "id": 24, + "functionReturnParameters": 1047, + "id": 1052, "nodeType": "Return", - "src": "1516:20:0" + "src": "1516:20:4" } ] }, "documentation": "@return the generator of G1", - "id": 26, + "id": 1054, "implemented": true, "kind": "function", "modifiers": [], "name": "P1", "nodeType": "FunctionDefinition", "parameters": { - "id": 16, + "id": 1044, "nodeType": "ParameterList", "parameters": [], - "src": "1464:2:0" + "src": "1464:2:4" }, "returnParameters": { - "id": 19, + "id": 1047, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 18, + "id": 1046, "name": "", "nodeType": "VariableDeclaration", - "scope": 26, - "src": "1490:14:0", + "scope": 1054, + "src": "1490:14:4", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_memory_ptr", + "typeIdentifier": "t_struct$_G1Point_$1034_memory_ptr", "typeString": "struct Pairing.G1Point" }, "typeName": { "contractScope": null, - "id": 17, + "id": 1045, "name": "G1Point", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 6, - "src": "1490:7:0", + "referencedDeclaration": 1034, + "src": "1490:7:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_storage_ptr", + "typeIdentifier": "t_struct$_G1Point_$1034_storage_ptr", "typeString": "struct Pairing.G1Point" } }, @@ -361,19 +361,19 @@ "visibility": "internal" } ], - "src": "1489:16:0" + "src": "1489:16:4" }, - "scope": 577, - "src": "1453:90:0", + "scope": 1605, + "src": "1453:90:4", "stateMutability": "pure", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 40, + "id": 1068, "nodeType": "Block", - "src": "1637:883:0", + "src": "1637:883:4", "statements": [ { "expression": { @@ -385,14 +385,14 @@ { "argumentTypes": null, "hexValue": "3131353539373332303332393836333837313037393931303034303231333932323835373833393235383132383631383231313932353330393137343033313531343532333931383035363334", - "id": 32, + "id": 1060, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1707:77:0", + "src": "1707:77:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_11559732032986387107991004021392285783925812861821192530917403151452391805634_by_1", @@ -403,14 +403,14 @@ { "argumentTypes": null, "hexValue": "3130383537303436393939303233303537313335393434353730373632323332383239343831333730373536333539353738353138303836393930353139393933323835363535383532373831", - "id": 33, + "id": 1061, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1799:77:0", + "src": "1799:77:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_10857046999023057135944570762232829481370756359578518086990519993285655852781_by_1", @@ -419,14 +419,14 @@ "value": "10857046999023057135944570762232829481370756359578518086990519993285655852781" } ], - "id": 34, + "id": 1062, "isConstant": false, "isInlineArray": true, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "1706:171:0", + "src": "1706:171:4", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", "typeString": "uint256[2] memory" @@ -438,14 +438,14 @@ { "argumentTypes": null, "hexValue": "34303832333637383735383633343333363831333332323033343033313435343335353638333136383531333237353933343031323038313035373431303736323134313230303933353331", - "id": 35, + "id": 1063, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1892:76:0", + "src": "1892:76:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_4082367875863433681332203403145435568316851327593401208105741076214120093531_by_1", @@ -456,14 +456,14 @@ { "argumentTypes": null, "hexValue": "38343935363533393233313233343331343137363034393733323437343839323732343338343138313930353837323633363030313438373730323830363439333036393538313031393330", - "id": 36, + "id": 1064, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1983:76:0", + "src": "1983:76:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_8495653923123431417604973247489272438418190587263600148770280649306958101930_by_1", @@ -472,14 +472,14 @@ "value": "8495653923123431417604973247489272438418190587263600148770280649306958101930" } ], - "id": 37, + "id": 1065, "isConstant": false, "isInlineArray": true, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "1891:169:0", + "src": "1891:169:4", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", "typeString": "uint256[2] memory" @@ -497,18 +497,18 @@ "typeString": "uint256[2] memory" } ], - "id": 31, + "id": 1059, "name": "G2Point", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 15, - "src": "1685:7:0", + "referencedDeclaration": 1043, + "src": "1685:7:4", "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_G2Point_$15_storage_ptr_$", + "typeIdentifier": "t_type$_t_struct$_G2Point_$1043_storage_ptr_$", "typeString": "type(struct Pairing.G2Point storage pointer)" } }, - "id": 38, + "id": 1066, "isConstant": false, "isLValue": false, "isPure": true, @@ -516,58 +516,58 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1685:385:0", + "src": "1685:385:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G2Point_$15_memory", + "typeIdentifier": "t_struct$_G2Point_$1043_memory", "typeString": "struct Pairing.G2Point memory" } }, - "functionReturnParameters": 30, - "id": 39, + "functionReturnParameters": 1058, + "id": 1067, "nodeType": "Return", - "src": "1678:392:0" + "src": "1678:392:4" } ] }, "documentation": "@return the generator of G2", - "id": 41, + "id": 1069, "implemented": true, "kind": "function", "modifiers": [], "name": "P2", "nodeType": "FunctionDefinition", "parameters": { - "id": 27, + "id": 1055, "nodeType": "ParameterList", "parameters": [], - "src": "1595:2:0" + "src": "1595:2:4" }, "returnParameters": { - "id": 30, + "id": 1058, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 29, + "id": 1057, "name": "", "nodeType": "VariableDeclaration", - "scope": 41, - "src": "1621:14:0", + "scope": 1069, + "src": "1621:14:4", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_struct$_G2Point_$15_memory_ptr", + "typeIdentifier": "t_struct$_G2Point_$1043_memory_ptr", "typeString": "struct Pairing.G2Point" }, "typeName": { "contractScope": null, - "id": 28, + "id": 1056, "name": "G2Point", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 15, - "src": "1621:7:0", + "referencedDeclaration": 1043, + "src": "1621:7:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G2Point_$15_storage_ptr", + "typeIdentifier": "t_struct$_G2Point_$1043_storage_ptr", "typeString": "struct Pairing.G2Point" } }, @@ -575,32 +575,32 @@ "visibility": "internal" } ], - "src": "1620:16:0" + "src": "1620:16:4" }, - "scope": 577, - "src": "1584:936:0", + "scope": 1605, + "src": "1584:936:4", "stateMutability": "pure", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 79, + "id": 1107, "nodeType": "Block", - "src": "2677:267:0", + "src": "2677:267:4", "statements": [ { "assignments": [ - 49 + 1077 ], "declarations": [ { "constant": false, - "id": 49, + "id": 1077, "name": "q", "nodeType": "VariableDeclaration", - "scope": 79, - "src": "2739:6:0", + "scope": 1107, + "src": "2739:6:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -608,10 +608,10 @@ "typeString": "uint256" }, "typeName": { - "id": 48, + "id": 1076, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "2739:4:0", + "src": "2739:4:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -621,18 +621,18 @@ "visibility": "internal" } ], - "id": 51, + "id": 1079, "initialValue": { "argumentTypes": null, "hexValue": "3231383838323432383731383339323735323232323436343035373435323537323735303838363936333131313537323937383233363632363839303337383934363435323236323038353833", - "id": 50, + "id": 1078, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2748:77:0", + "src": "2748:77:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_21888242871839275222246405745257275088696311157297823662689037894645226208583_by_1", @@ -641,7 +641,7 @@ "value": "21888242871839275222246405745257275088696311157297823662689037894645226208583" }, "nodeType": "VariableDeclarationStatement", - "src": "2739:86:0" + "src": "2739:86:4" }, { "condition": { @@ -650,7 +650,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 60, + "id": 1088, "isConstant": false, "isLValue": false, "isPure": false, @@ -661,7 +661,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 55, + "id": 1083, "isConstant": false, "isLValue": false, "isPure": false, @@ -670,26 +670,26 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 52, + "id": 1080, "name": "p", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 43, - "src": "2839:1:0", + "referencedDeclaration": 1071, + "src": "2839:1:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_memory_ptr", + "typeIdentifier": "t_struct$_G1Point_$1034_memory_ptr", "typeString": "struct Pairing.G1Point memory" } }, - "id": 53, + "id": 1081, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "X", "nodeType": "MemberAccess", - "referencedDeclaration": 3, - "src": "2839:3:0", + "referencedDeclaration": 1031, + "src": "2839:3:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -700,14 +700,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 54, + "id": 1082, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2846:1:0", + "src": "2846:1:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -715,7 +715,7 @@ }, "value": "0" }, - "src": "2839:8:0", + "src": "2839:8:4", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -729,7 +729,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 59, + "id": 1087, "isConstant": false, "isLValue": false, "isPure": false, @@ -738,26 +738,26 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 56, + "id": 1084, "name": "p", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 43, - "src": "2851:1:0", + "referencedDeclaration": 1071, + "src": "2851:1:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_memory_ptr", + "typeIdentifier": "t_struct$_G1Point_$1034_memory_ptr", "typeString": "struct Pairing.G1Point memory" } }, - "id": 57, + "id": 1085, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "Y", "nodeType": "MemberAccess", - "referencedDeclaration": 5, - "src": "2851:3:0", + "referencedDeclaration": 1033, + "src": "2851:3:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -768,14 +768,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 58, + "id": 1086, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2858:1:0", + "src": "2858:1:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -783,22 +783,22 @@ }, "value": "0" }, - "src": "2851:8:0", + "src": "2851:8:4", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "2839:20:0", + "src": "2839:20:4", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 66, + "id": 1094, "nodeType": "IfStatement", - "src": "2835:58:0", + "src": "2835:58:4", "trueBody": { "expression": { "argumentTypes": null, @@ -806,14 +806,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 62, + "id": 1090, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2888:1:0", + "src": "2888:1:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -824,14 +824,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 63, + "id": 1091, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2891:1:0", + "src": "2891:1:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -851,18 +851,18 @@ "typeString": "int_const 0" } ], - "id": 61, + "id": 1089, "name": "G1Point", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6, - "src": "2880:7:0", + "referencedDeclaration": 1034, + "src": "2880:7:4", "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_G1Point_$6_storage_ptr_$", + "typeIdentifier": "t_type$_t_struct$_G1Point_$1034_storage_ptr_$", "typeString": "type(struct Pairing.G1Point storage pointer)" } }, - "id": 64, + "id": 1092, "isConstant": false, "isLValue": false, "isPure": true, @@ -870,16 +870,16 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2880:13:0", + "src": "2880:13:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_memory", + "typeIdentifier": "t_struct$_G1Point_$1034_memory", "typeString": "struct Pairing.G1Point memory" } }, - "functionReturnParameters": 47, - "id": 65, + "functionReturnParameters": 1075, + "id": 1093, "nodeType": "Return", - "src": "2873:20:0" + "src": "2873:20:4" } }, { @@ -890,26 +890,26 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 68, + "id": 1096, "name": "p", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 43, - "src": "2918:1:0", + "referencedDeclaration": 1071, + "src": "2918:1:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_memory_ptr", + "typeIdentifier": "t_struct$_G1Point_$1034_memory_ptr", "typeString": "struct Pairing.G1Point memory" } }, - "id": 69, + "id": 1097, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "X", "nodeType": "MemberAccess", - "referencedDeclaration": 3, - "src": "2918:3:0", + "referencedDeclaration": 1031, + "src": "2918:3:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -921,19 +921,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 76, + "id": 1104, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 70, + "id": 1098, "name": "q", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 49, - "src": "2923:1:0", + "referencedDeclaration": 1077, + "src": "2923:1:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -950,7 +950,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 74, + "id": 1102, "isConstant": false, "isLValue": false, "isPure": false, @@ -959,26 +959,26 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 71, + "id": 1099, "name": "p", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 43, - "src": "2928:1:0", + "referencedDeclaration": 1071, + "src": "2928:1:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_memory_ptr", + "typeIdentifier": "t_struct$_G1Point_$1034_memory_ptr", "typeString": "struct Pairing.G1Point memory" } }, - "id": 72, + "id": 1100, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "Y", "nodeType": "MemberAccess", - "referencedDeclaration": 5, - "src": "2928:3:0", + "referencedDeclaration": 1033, + "src": "2928:3:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -988,38 +988,38 @@ "operator": "%", "rightExpression": { "argumentTypes": null, - "id": 73, + "id": 1101, "name": "q", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 49, - "src": "2934:1:0", + "referencedDeclaration": 1077, + "src": "2934:1:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "2928:7:0", + "src": "2928:7:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], - "id": 75, + "id": 1103, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "2927:9:0", + "src": "2927:9:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "2923:13:0", + "src": "2923:13:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1037,18 +1037,18 @@ "typeString": "uint256" } ], - "id": 67, + "id": 1095, "name": "G1Point", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6, - "src": "2910:7:0", + "referencedDeclaration": 1034, + "src": "2910:7:4", "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_G1Point_$6_storage_ptr_$", + "typeIdentifier": "t_type$_t_struct$_G1Point_$1034_storage_ptr_$", "typeString": "type(struct Pairing.G1Point storage pointer)" } }, - "id": 77, + "id": 1105, "isConstant": false, "isLValue": false, "isPure": false, @@ -1056,52 +1056,52 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2910:27:0", + "src": "2910:27:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_memory", + "typeIdentifier": "t_struct$_G1Point_$1034_memory", "typeString": "struct Pairing.G1Point memory" } }, - "functionReturnParameters": 47, - "id": 78, + "functionReturnParameters": 1075, + "id": 1106, "nodeType": "Return", - "src": "2903:34:0" + "src": "2903:34:4" } ] }, "documentation": "@return the negation of p, i.e. p.addition(p.negate()) should be zero.", - "id": 80, + "id": 1108, "implemented": true, "kind": "function", "modifiers": [], "name": "negate", "nodeType": "FunctionDefinition", "parameters": { - "id": 44, + "id": 1072, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 43, + "id": 1071, "name": "p", "nodeType": "VariableDeclaration", - "scope": 80, - "src": "2620:16:0", + "scope": 1108, + "src": "2620:16:4", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_memory_ptr", + "typeIdentifier": "t_struct$_G1Point_$1034_memory_ptr", "typeString": "struct Pairing.G1Point" }, "typeName": { "contractScope": null, - "id": 42, + "id": 1070, "name": "G1Point", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 6, - "src": "2620:7:0", + "referencedDeclaration": 1034, + "src": "2620:7:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_storage_ptr", + "typeIdentifier": "t_struct$_G1Point_$1034_storage_ptr", "typeString": "struct Pairing.G1Point" } }, @@ -1109,34 +1109,34 @@ "visibility": "internal" } ], - "src": "2619:18:0" + "src": "2619:18:4" }, "returnParameters": { - "id": 47, + "id": 1075, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 46, + "id": 1074, "name": "", "nodeType": "VariableDeclaration", - "scope": 80, - "src": "2661:14:0", + "scope": 1108, + "src": "2661:14:4", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_memory_ptr", + "typeIdentifier": "t_struct$_G1Point_$1034_memory_ptr", "typeString": "struct Pairing.G1Point" }, "typeName": { "contractScope": null, - "id": 45, + "id": 1073, "name": "G1Point", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 6, - "src": "2661:7:0", + "referencedDeclaration": 1034, + "src": "2661:7:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_storage_ptr", + "typeIdentifier": "t_struct$_G1Point_$1034_storage_ptr", "typeString": "struct Pairing.G1Point" } }, @@ -1144,32 +1144,32 @@ "visibility": "internal" } ], - "src": "2660:16:0" + "src": "2660:16:4" }, - "scope": 577, - "src": "2604:340:0", + "scope": 1605, + "src": "2604:340:4", "stateMutability": "pure", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 132, + "id": 1160, "nodeType": "Block", - "src": "3090:479:0", + "src": "3090:479:4", "statements": [ { "assignments": [ - 93 + 1121 ], "declarations": [ { "constant": false, - "id": 93, + "id": 1121, "name": "input", "nodeType": "VariableDeclaration", - "scope": 132, - "src": "3100:20:0", + "scope": 1160, + "src": "3100:20:4", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -1178,27 +1178,27 @@ }, "typeName": { "baseType": { - "id": 91, + "id": 1119, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "3100:4:0", + "src": "3100:4:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 92, + "id": 1120, "length": { "argumentTypes": null, "hexValue": "34", - "id": 90, + "id": 1118, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3105:1:0", + "src": "3105:1:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_4_by_1", @@ -1207,7 +1207,7 @@ "value": "4" }, "nodeType": "ArrayTypeName", - "src": "3100:7:0", + "src": "3100:7:4", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$4_storage_ptr", "typeString": "uint256[4]" @@ -1217,15 +1217,15 @@ "visibility": "internal" } ], - "id": 94, + "id": 1122, "initialValue": null, "nodeType": "VariableDeclarationStatement", - "src": "3100:20:0" + "src": "3100:20:4" }, { "expression": { "argumentTypes": null, - "id": 100, + "id": 1128, "isConstant": false, "isLValue": false, "isPure": false, @@ -1234,29 +1234,29 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 95, + "id": 1123, "name": "input", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 93, - "src": "3130:5:0", + "referencedDeclaration": 1121, + "src": "3130:5:4", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$4_memory_ptr", "typeString": "uint256[4] memory" } }, - "id": 97, + "id": 1125, "indexExpression": { "argumentTypes": null, "hexValue": "30", - "id": 96, + "id": 1124, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3136:1:0", + "src": "3136:1:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -1269,7 +1269,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "3130:8:0", + "src": "3130:8:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1281,45 +1281,45 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 98, + "id": 1126, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 82, - "src": "3141:2:0", + "referencedDeclaration": 1110, + "src": "3141:2:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_memory_ptr", + "typeIdentifier": "t_struct$_G1Point_$1034_memory_ptr", "typeString": "struct Pairing.G1Point memory" } }, - "id": 99, + "id": 1127, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "X", "nodeType": "MemberAccess", - "referencedDeclaration": 3, - "src": "3141:4:0", + "referencedDeclaration": 1031, + "src": "3141:4:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3130:15:0", + "src": "3130:15:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 101, + "id": 1129, "nodeType": "ExpressionStatement", - "src": "3130:15:0" + "src": "3130:15:4" }, { "expression": { "argumentTypes": null, - "id": 107, + "id": 1135, "isConstant": false, "isLValue": false, "isPure": false, @@ -1328,29 +1328,29 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 102, + "id": 1130, "name": "input", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 93, - "src": "3155:5:0", + "referencedDeclaration": 1121, + "src": "3155:5:4", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$4_memory_ptr", "typeString": "uint256[4] memory" } }, - "id": 104, + "id": 1132, "indexExpression": { "argumentTypes": null, "hexValue": "31", - "id": 103, + "id": 1131, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3161:1:0", + "src": "3161:1:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -1363,7 +1363,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "3155:8:0", + "src": "3155:8:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1375,45 +1375,45 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 105, + "id": 1133, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 82, - "src": "3166:2:0", + "referencedDeclaration": 1110, + "src": "3166:2:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_memory_ptr", + "typeIdentifier": "t_struct$_G1Point_$1034_memory_ptr", "typeString": "struct Pairing.G1Point memory" } }, - "id": 106, + "id": 1134, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "Y", "nodeType": "MemberAccess", - "referencedDeclaration": 5, - "src": "3166:4:0", + "referencedDeclaration": 1033, + "src": "3166:4:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3155:15:0", + "src": "3155:15:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 108, + "id": 1136, "nodeType": "ExpressionStatement", - "src": "3155:15:0" + "src": "3155:15:4" }, { "expression": { "argumentTypes": null, - "id": 114, + "id": 1142, "isConstant": false, "isLValue": false, "isPure": false, @@ -1422,29 +1422,29 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 109, + "id": 1137, "name": "input", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 93, - "src": "3180:5:0", + "referencedDeclaration": 1121, + "src": "3180:5:4", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$4_memory_ptr", "typeString": "uint256[4] memory" } }, - "id": 111, + "id": 1139, "indexExpression": { "argumentTypes": null, "hexValue": "32", - "id": 110, + "id": 1138, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3186:1:0", + "src": "3186:1:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_2_by_1", @@ -1457,7 +1457,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "3180:8:0", + "src": "3180:8:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1469,45 +1469,45 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 112, + "id": 1140, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 84, - "src": "3191:2:0", + "referencedDeclaration": 1112, + "src": "3191:2:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_memory_ptr", + "typeIdentifier": "t_struct$_G1Point_$1034_memory_ptr", "typeString": "struct Pairing.G1Point memory" } }, - "id": 113, + "id": 1141, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "X", "nodeType": "MemberAccess", - "referencedDeclaration": 3, - "src": "3191:4:0", + "referencedDeclaration": 1031, + "src": "3191:4:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3180:15:0", + "src": "3180:15:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 115, + "id": 1143, "nodeType": "ExpressionStatement", - "src": "3180:15:0" + "src": "3180:15:4" }, { "expression": { "argumentTypes": null, - "id": 121, + "id": 1149, "isConstant": false, "isLValue": false, "isPure": false, @@ -1516,29 +1516,29 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 116, + "id": 1144, "name": "input", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 93, - "src": "3205:5:0", + "referencedDeclaration": 1121, + "src": "3205:5:4", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$4_memory_ptr", "typeString": "uint256[4] memory" } }, - "id": 118, + "id": 1146, "indexExpression": { "argumentTypes": null, "hexValue": "33", - "id": 117, + "id": 1145, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3211:1:0", + "src": "3211:1:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_3_by_1", @@ -1551,7 +1551,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "3205:8:0", + "src": "3205:8:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1563,53 +1563,53 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 119, + "id": 1147, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 84, - "src": "3216:2:0", + "referencedDeclaration": 1112, + "src": "3216:2:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_memory_ptr", + "typeIdentifier": "t_struct$_G1Point_$1034_memory_ptr", "typeString": "struct Pairing.G1Point memory" } }, - "id": 120, + "id": 1148, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "Y", "nodeType": "MemberAccess", - "referencedDeclaration": 5, - "src": "3216:4:0", + "referencedDeclaration": 1033, + "src": "3216:4:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3205:15:0", + "src": "3205:15:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 122, + "id": 1150, "nodeType": "ExpressionStatement", - "src": "3205:15:0" + "src": "3205:15:4" }, { "assignments": [ - 124 + 1152 ], "declarations": [ { "constant": false, - "id": 124, + "id": 1152, "name": "success", "nodeType": "VariableDeclaration", - "scope": 132, - "src": "3230:12:0", + "scope": 1160, + "src": "3230:12:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1617,10 +1617,10 @@ "typeString": "bool" }, "typeName": { - "id": 123, + "id": 1151, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "3230:4:0", + "src": "3230:4:4", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1630,54 +1630,54 @@ "visibility": "internal" } ], - "id": 125, + "id": 1153, "initialValue": null, "nodeType": "VariableDeclarationStatement", - "src": "3230:12:0" + "src": "3230:12:4" }, { "externalReferences": [ { "success": { - "declaration": 124, + "declaration": 1152, "isOffset": false, "isSlot": false, - "src": "3339:7:0", + "src": "3339:7:4", "valueSize": 1 } }, { "input": { - "declaration": 93, + "declaration": 1121, "isOffset": false, "isSlot": false, - "src": "3380:5:0", + "src": "3380:5:4", "valueSize": 1 } }, { "r": { - "declaration": 87, + "declaration": 1115, "isOffset": false, "isSlot": false, - "src": "3393:1:0", + "src": "3393:1:4", "valueSize": 1 } }, { "success": { - "declaration": 124, + "declaration": 1152, "isOffset": false, "isSlot": false, - "src": "3478:7:0", + "src": "3478:7:4", "valueSize": 1 } } ], - "id": 126, + "id": 1154, "nodeType": "InlineAssembly", "operations": "{\n success := staticcall(sub(gas(), 2000), 6, input, 0xc0, r, 0x60)\n switch success\n case 0 { invalid() }\n}", - "src": "3316:200:0" + "src": "3316:200:4" }, { "expression": { @@ -1685,12 +1685,12 @@ "arguments": [ { "argumentTypes": null, - "id": 128, + "id": 1156, "name": "success", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 124, - "src": "3533:7:0", + "referencedDeclaration": 1152, + "src": "3533:7:4", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1699,14 +1699,14 @@ { "argumentTypes": null, "hexValue": "70616972696e672d6164642d6661696c6564", - "id": 129, + "id": 1157, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "3541:20:0", + "src": "3541:20:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_e428a53e578d13ee2fc3b8849114332d6a94afed893fa747a37e281039728688", @@ -1726,21 +1726,21 @@ "typeString": "literal_string \"pairing-add-failed\"" } ], - "id": 127, + "id": 1155, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1076, - 1077 + 2134, + 2135 ], - "referencedDeclaration": 1077, - "src": "3525:7:0", + "referencedDeclaration": 2135, + "src": "3525:7:4", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 130, + "id": 1158, "isConstant": false, "isLValue": false, "isPure": false, @@ -1748,51 +1748,51 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3525:37:0", + "src": "3525:37:4", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 131, + "id": 1159, "nodeType": "ExpressionStatement", - "src": "3525:37:0" + "src": "3525:37:4" } ] }, "documentation": "@return the sum of two points of G1", - "id": 133, + "id": 1161, "implemented": true, "kind": "function", "modifiers": [], "name": "addition", "nodeType": "FunctionDefinition", "parameters": { - "id": 85, + "id": 1113, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 82, + "id": 1110, "name": "p1", "nodeType": "VariableDeclaration", - "scope": 133, - "src": "3011:17:0", + "scope": 1161, + "src": "3011:17:4", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_memory_ptr", + "typeIdentifier": "t_struct$_G1Point_$1034_memory_ptr", "typeString": "struct Pairing.G1Point" }, "typeName": { "contractScope": null, - "id": 81, + "id": 1109, "name": "G1Point", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 6, - "src": "3011:7:0", + "referencedDeclaration": 1034, + "src": "3011:7:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_storage_ptr", + "typeIdentifier": "t_struct$_G1Point_$1034_storage_ptr", "typeString": "struct Pairing.G1Point" } }, @@ -1801,26 +1801,26 @@ }, { "constant": false, - "id": 84, + "id": 1112, "name": "p2", "nodeType": "VariableDeclaration", - "scope": 133, - "src": "3030:17:0", + "scope": 1161, + "src": "3030:17:4", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_memory_ptr", + "typeIdentifier": "t_struct$_G1Point_$1034_memory_ptr", "typeString": "struct Pairing.G1Point" }, "typeName": { "contractScope": null, - "id": 83, + "id": 1111, "name": "G1Point", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 6, - "src": "3030:7:0", + "referencedDeclaration": 1034, + "src": "3030:7:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_storage_ptr", + "typeIdentifier": "t_struct$_G1Point_$1034_storage_ptr", "typeString": "struct Pairing.G1Point" } }, @@ -1828,34 +1828,34 @@ "visibility": "internal" } ], - "src": "3010:38:0" + "src": "3010:38:4" }, "returnParameters": { - "id": 88, + "id": 1116, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 87, + "id": 1115, "name": "r", "nodeType": "VariableDeclaration", - "scope": 133, - "src": "3072:16:0", + "scope": 1161, + "src": "3072:16:4", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_memory_ptr", + "typeIdentifier": "t_struct$_G1Point_$1034_memory_ptr", "typeString": "struct Pairing.G1Point" }, "typeName": { "contractScope": null, - "id": 86, + "id": 1114, "name": "G1Point", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 6, - "src": "3072:7:0", + "referencedDeclaration": 1034, + "src": "3072:7:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_storage_ptr", + "typeIdentifier": "t_struct$_G1Point_$1034_storage_ptr", "typeString": "struct Pairing.G1Point" } }, @@ -1863,32 +1863,32 @@ "visibility": "internal" } ], - "src": "3071:18:0" + "src": "3071:18:4" }, - "scope": 577, - "src": "2993:576:0", + "scope": 1605, + "src": "2993:576:4", "stateMutability": "view", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 177, + "id": 1205, "nodeType": "Block", - "src": "3809:450:0", + "src": "3809:450:4", "statements": [ { "assignments": [ - 146 + 1174 ], "declarations": [ { "constant": false, - "id": 146, + "id": 1174, "name": "input", "nodeType": "VariableDeclaration", - "scope": 177, - "src": "3819:20:0", + "scope": 1205, + "src": "3819:20:4", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -1897,27 +1897,27 @@ }, "typeName": { "baseType": { - "id": 144, + "id": 1172, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "3819:4:0", + "src": "3819:4:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 145, + "id": 1173, "length": { "argumentTypes": null, "hexValue": "33", - "id": 143, + "id": 1171, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3824:1:0", + "src": "3824:1:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_3_by_1", @@ -1926,7 +1926,7 @@ "value": "3" }, "nodeType": "ArrayTypeName", - "src": "3819:7:0", + "src": "3819:7:4", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$3_storage_ptr", "typeString": "uint256[3]" @@ -1936,15 +1936,15 @@ "visibility": "internal" } ], - "id": 147, + "id": 1175, "initialValue": null, "nodeType": "VariableDeclarationStatement", - "src": "3819:20:0" + "src": "3819:20:4" }, { "expression": { "argumentTypes": null, - "id": 153, + "id": 1181, "isConstant": false, "isLValue": false, "isPure": false, @@ -1953,29 +1953,29 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 148, + "id": 1176, "name": "input", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 146, - "src": "3849:5:0", + "referencedDeclaration": 1174, + "src": "3849:5:4", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$3_memory_ptr", "typeString": "uint256[3] memory" } }, - "id": 150, + "id": 1178, "indexExpression": { "argumentTypes": null, "hexValue": "30", - "id": 149, + "id": 1177, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3855:1:0", + "src": "3855:1:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -1988,7 +1988,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "3849:8:0", + "src": "3849:8:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2000,45 +2000,45 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 151, + "id": 1179, "name": "p", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 135, - "src": "3860:1:0", + "referencedDeclaration": 1163, + "src": "3860:1:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_memory_ptr", + "typeIdentifier": "t_struct$_G1Point_$1034_memory_ptr", "typeString": "struct Pairing.G1Point memory" } }, - "id": 152, + "id": 1180, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "X", "nodeType": "MemberAccess", - "referencedDeclaration": 3, - "src": "3860:3:0", + "referencedDeclaration": 1031, + "src": "3860:3:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3849:14:0", + "src": "3849:14:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 154, + "id": 1182, "nodeType": "ExpressionStatement", - "src": "3849:14:0" + "src": "3849:14:4" }, { "expression": { "argumentTypes": null, - "id": 160, + "id": 1188, "isConstant": false, "isLValue": false, "isPure": false, @@ -2047,29 +2047,29 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 155, + "id": 1183, "name": "input", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 146, - "src": "3873:5:0", + "referencedDeclaration": 1174, + "src": "3873:5:4", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$3_memory_ptr", "typeString": "uint256[3] memory" } }, - "id": 157, + "id": 1185, "indexExpression": { "argumentTypes": null, "hexValue": "31", - "id": 156, + "id": 1184, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3879:1:0", + "src": "3879:1:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -2082,7 +2082,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "3873:8:0", + "src": "3873:8:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2094,45 +2094,45 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 158, + "id": 1186, "name": "p", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 135, - "src": "3884:1:0", + "referencedDeclaration": 1163, + "src": "3884:1:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_memory_ptr", + "typeIdentifier": "t_struct$_G1Point_$1034_memory_ptr", "typeString": "struct Pairing.G1Point memory" } }, - "id": 159, + "id": 1187, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "Y", "nodeType": "MemberAccess", - "referencedDeclaration": 5, - "src": "3884:3:0", + "referencedDeclaration": 1033, + "src": "3884:3:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3873:14:0", + "src": "3873:14:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 161, + "id": 1189, "nodeType": "ExpressionStatement", - "src": "3873:14:0" + "src": "3873:14:4" }, { "expression": { "argumentTypes": null, - "id": 166, + "id": 1194, "isConstant": false, "isLValue": false, "isPure": false, @@ -2141,29 +2141,29 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 162, + "id": 1190, "name": "input", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 146, - "src": "3897:5:0", + "referencedDeclaration": 1174, + "src": "3897:5:4", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$3_memory_ptr", "typeString": "uint256[3] memory" } }, - "id": 164, + "id": 1192, "indexExpression": { "argumentTypes": null, "hexValue": "32", - "id": 163, + "id": 1191, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3903:1:0", + "src": "3903:1:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_2_by_1", @@ -2176,7 +2176,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "3897:8:0", + "src": "3897:8:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2186,39 +2186,39 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 165, + "id": 1193, "name": "s", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 137, - "src": "3908:1:0", + "referencedDeclaration": 1165, + "src": "3908:1:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3897:12:0", + "src": "3897:12:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 167, + "id": 1195, "nodeType": "ExpressionStatement", - "src": "3897:12:0" + "src": "3897:12:4" }, { "assignments": [ - 169 + 1197 ], "declarations": [ { "constant": false, - "id": 169, + "id": 1197, "name": "success", "nodeType": "VariableDeclaration", - "scope": 177, - "src": "3919:12:0", + "scope": 1205, + "src": "3919:12:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2226,10 +2226,10 @@ "typeString": "bool" }, "typeName": { - "id": 168, + "id": 1196, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "3919:4:0", + "src": "3919:4:4", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2239,54 +2239,54 @@ "visibility": "internal" } ], - "id": 170, + "id": 1198, "initialValue": null, "nodeType": "VariableDeclarationStatement", - "src": "3919:12:0" + "src": "3919:12:4" }, { "externalReferences": [ { "success": { - "declaration": 169, + "declaration": 1197, "isOffset": false, "isSlot": false, - "src": "4028:7:0", - "valueSize": 1 - } - }, - { - "input": { - "declaration": 146, - "isOffset": false, - "isSlot": false, - "src": "4069:5:0", - "valueSize": 1 - } - }, - { - "r": { - "declaration": 140, - "isOffset": false, - "isSlot": false, - "src": "4082:1:0", + "src": "4028:7:4", "valueSize": 1 } }, { "success": { - "declaration": 169, + "declaration": 1197, "isOffset": false, "isSlot": false, - "src": "4167:7:0", + "src": "4167:7:4", + "valueSize": 1 + } + }, + { + "input": { + "declaration": 1174, + "isOffset": false, + "isSlot": false, + "src": "4069:5:4", + "valueSize": 1 + } + }, + { + "r": { + "declaration": 1168, + "isOffset": false, + "isSlot": false, + "src": "4082:1:4", "valueSize": 1 } } ], - "id": 171, + "id": 1199, "nodeType": "InlineAssembly", "operations": "{\n success := staticcall(sub(gas(), 2000), 7, input, 0x80, r, 0x60)\n switch success\n case 0 { invalid() }\n}", - "src": "4005:200:0" + "src": "4005:200:4" }, { "expression": { @@ -2294,12 +2294,12 @@ "arguments": [ { "argumentTypes": null, - "id": 173, + "id": 1201, "name": "success", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 169, - "src": "4223:7:0", + "referencedDeclaration": 1197, + "src": "4223:7:4", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2308,14 +2308,14 @@ { "argumentTypes": null, "hexValue": "70616972696e672d6d756c2d6661696c6564", - "id": 174, + "id": 1202, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "4231:20:0", + "src": "4231:20:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_63b4943691e0891cf5adcfe6e3eb490783b718accceadc0166bc4e56cf1df5de", @@ -2335,21 +2335,21 @@ "typeString": "literal_string \"pairing-mul-failed\"" } ], - "id": 172, + "id": 1200, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1076, - 1077 + 2134, + 2135 ], - "referencedDeclaration": 1077, - "src": "4214:7:0", + "referencedDeclaration": 2135, + "src": "4214:7:4", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 175, + "id": 1203, "isConstant": false, "isLValue": false, "isPure": false, @@ -2357,51 +2357,51 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4214:38:0", + "src": "4214:38:4", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 176, + "id": 1204, "nodeType": "ExpressionStatement", - "src": "4214:38:0" + "src": "4214:38:4" } ] }, "documentation": "@return the product of a point on G1 and a scalar, i.e.\n p == p.scalar_mul(1) and p.addition(p) == p.scalar_mul(2) for all points p.", - "id": 178, + "id": 1206, "implemented": true, "kind": "function", "modifiers": [], "name": "scalar_mul", "nodeType": "FunctionDefinition", "parameters": { - "id": 138, + "id": 1166, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 135, + "id": 1163, "name": "p", "nodeType": "VariableDeclaration", - "scope": 178, - "src": "3742:16:0", + "scope": 1206, + "src": "3742:16:4", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_memory_ptr", + "typeIdentifier": "t_struct$_G1Point_$1034_memory_ptr", "typeString": "struct Pairing.G1Point" }, "typeName": { "contractScope": null, - "id": 134, + "id": 1162, "name": "G1Point", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 6, - "src": "3742:7:0", + "referencedDeclaration": 1034, + "src": "3742:7:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_storage_ptr", + "typeIdentifier": "t_struct$_G1Point_$1034_storage_ptr", "typeString": "struct Pairing.G1Point" } }, @@ -2410,11 +2410,11 @@ }, { "constant": false, - "id": 137, + "id": 1165, "name": "s", "nodeType": "VariableDeclaration", - "scope": 178, - "src": "3760:6:0", + "scope": 1206, + "src": "3760:6:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2422,10 +2422,10 @@ "typeString": "uint256" }, "typeName": { - "id": 136, + "id": 1164, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "3760:4:0", + "src": "3760:4:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2435,34 +2435,34 @@ "visibility": "internal" } ], - "src": "3741:26:0" + "src": "3741:26:4" }, "returnParameters": { - "id": 141, + "id": 1169, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 140, + "id": 1168, "name": "r", "nodeType": "VariableDeclaration", - "scope": 178, - "src": "3791:16:0", + "scope": 1206, + "src": "3791:16:4", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_memory_ptr", + "typeIdentifier": "t_struct$_G1Point_$1034_memory_ptr", "typeString": "struct Pairing.G1Point" }, "typeName": { "contractScope": null, - "id": 139, + "id": 1167, "name": "G1Point", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 6, - "src": "3791:7:0", + "referencedDeclaration": 1034, + "src": "3791:7:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_storage_ptr", + "typeIdentifier": "t_struct$_G1Point_$1034_storage_ptr", "typeString": "struct Pairing.G1Point" } }, @@ -2470,19 +2470,19 @@ "visibility": "internal" } ], - "src": "3790:18:0" + "src": "3790:18:4" }, - "scope": 577, - "src": "3722:537:0", + "scope": 1605, + "src": "3722:537:4", "stateMutability": "view", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 338, + "id": 1366, "nodeType": "Block", - "src": "4558:946:0", + "src": "4558:946:4", "statements": [ { "expression": { @@ -2494,7 +2494,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 194, + "id": 1222, "isConstant": false, "isLValue": false, "isPure": false, @@ -2503,18 +2503,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 190, + "id": 1218, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 181, - "src": "4576:2:0", + "referencedDeclaration": 1209, + "src": "4576:2:4", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_G1Point_$6_memory_$dyn_memory_ptr", + "typeIdentifier": "t_array$_t_struct$_G1Point_$1034_memory_$dyn_memory_ptr", "typeString": "struct Pairing.G1Point memory[] memory" } }, - "id": 191, + "id": 1219, "isConstant": false, "isLValue": false, "isPure": false, @@ -2522,7 +2522,7 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "4576:9:0", + "src": "4576:9:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2534,18 +2534,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 192, + "id": 1220, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 184, - "src": "4589:2:0", + "referencedDeclaration": 1212, + "src": "4589:2:4", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_G2Point_$15_memory_$dyn_memory_ptr", + "typeIdentifier": "t_array$_t_struct$_G2Point_$1043_memory_$dyn_memory_ptr", "typeString": "struct Pairing.G2Point memory[] memory" } }, - "id": 193, + "id": 1221, "isConstant": false, "isLValue": false, "isPure": false, @@ -2553,13 +2553,13 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "4589:9:0", + "src": "4589:9:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "4576:22:0", + "src": "4576:22:4", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2568,14 +2568,14 @@ { "argumentTypes": null, "hexValue": "70616972696e672d6c656e677468732d6661696c6564", - "id": 195, + "id": 1223, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "4599:24:0", + "src": "4599:24:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_d4c505601ed3bad1341fbb75434dd6541f91bae974d0b2bc28d5491a5c4a21cc", @@ -2595,21 +2595,21 @@ "typeString": "literal_string \"pairing-lengths-failed\"" } ], - "id": 189, + "id": 1217, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1076, - 1077 + 2134, + 2135 ], - "referencedDeclaration": 1077, - "src": "4568:7:0", + "referencedDeclaration": 2135, + "src": "4568:7:4", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 196, + "id": 1224, "isConstant": false, "isLValue": false, "isPure": false, @@ -2617,28 +2617,28 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4568:56:0", + "src": "4568:56:4", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 197, + "id": 1225, "nodeType": "ExpressionStatement", - "src": "4568:56:0" + "src": "4568:56:4" }, { "assignments": [ - 199 + 1227 ], "declarations": [ { "constant": false, - "id": 199, + "id": 1227, "name": "elements", "nodeType": "VariableDeclaration", - "scope": 338, - "src": "4634:13:0", + "scope": 1366, + "src": "4634:13:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2646,10 +2646,10 @@ "typeString": "uint256" }, "typeName": { - "id": 198, + "id": 1226, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "4634:4:0", + "src": "4634:4:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2659,23 +2659,23 @@ "visibility": "internal" } ], - "id": 202, + "id": 1230, "initialValue": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 200, + "id": 1228, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 181, - "src": "4650:2:0", + "referencedDeclaration": 1209, + "src": "4650:2:4", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_G1Point_$6_memory_$dyn_memory_ptr", + "typeIdentifier": "t_array$_t_struct$_G1Point_$1034_memory_$dyn_memory_ptr", "typeString": "struct Pairing.G1Point memory[] memory" } }, - "id": 201, + "id": 1229, "isConstant": false, "isLValue": false, "isPure": false, @@ -2683,27 +2683,27 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "4650:9:0", + "src": "4650:9:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", - "src": "4634:25:0" + "src": "4634:25:4" }, { "assignments": [ - 204 + 1232 ], "declarations": [ { "constant": false, - "id": 204, + "id": 1232, "name": "inputSize", "nodeType": "VariableDeclaration", - "scope": 338, - "src": "4669:14:0", + "scope": 1366, + "src": "4669:14:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2711,10 +2711,10 @@ "typeString": "uint256" }, "typeName": { - "id": 203, + "id": 1231, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "4669:4:0", + "src": "4669:4:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2724,26 +2724,26 @@ "visibility": "internal" } ], - "id": 208, + "id": 1236, "initialValue": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 207, + "id": 1235, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 205, + "id": 1233, "name": "elements", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 199, - "src": "4686:8:0", + "referencedDeclaration": 1227, + "src": "4686:8:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2754,14 +2754,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "36", - "id": 206, + "id": 1234, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4697:1:0", + "src": "4697:1:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_6_by_1", @@ -2769,27 +2769,27 @@ }, "value": "6" }, - "src": "4686:12:0", + "src": "4686:12:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", - "src": "4669:29:0" + "src": "4669:29:4" }, { "assignments": [ - 212 + 1240 ], "declarations": [ { "constant": false, - "id": 212, + "id": 1240, "name": "input", "nodeType": "VariableDeclaration", - "scope": 338, - "src": "4708:19:0", + "scope": 1366, + "src": "4708:19:4", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -2798,19 +2798,19 @@ }, "typeName": { "baseType": { - "id": 210, + "id": 1238, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "4708:4:0", + "src": "4708:4:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 211, + "id": 1239, "length": null, "nodeType": "ArrayTypeName", - "src": "4708:6:0", + "src": "4708:6:4", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", "typeString": "uint256[]" @@ -2820,18 +2820,18 @@ "visibility": "internal" } ], - "id": 218, + "id": 1246, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 216, + "id": 1244, "name": "inputSize", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 204, - "src": "4741:9:0", + "referencedDeclaration": 1232, + "src": "4741:9:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2845,39 +2845,39 @@ "typeString": "uint256" } ], - "id": 215, + "id": 1243, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "NewExpression", - "src": "4730:10:0", + "src": "4730:10:4", "typeDescriptions": { "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_$", "typeString": "function (uint256) pure returns (uint256[] memory)" }, "typeName": { "baseType": { - "id": 213, + "id": 1241, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "4734:4:0", + "src": "4734:4:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 214, + "id": 1242, "length": null, "nodeType": "ArrayTypeName", - "src": "4734:6:0", + "src": "4734:6:4", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", "typeString": "uint256[]" } } }, - "id": 217, + "id": 1245, "isConstant": false, "isLValue": false, "isPure": false, @@ -2885,25 +2885,25 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4730:21:0", + "src": "4730:21:4", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_memory", "typeString": "uint256[] memory" } }, "nodeType": "VariableDeclarationStatement", - "src": "4708:43:0" + "src": "4708:43:4" }, { "body": { - "id": 315, + "id": 1343, "nodeType": "Block", - "src": "4805:263:0", + "src": "4805:263:4", "statements": [ { "expression": { "argumentTypes": null, - "id": 240, + "id": 1268, "isConstant": false, "isLValue": false, "isPure": false, @@ -2912,25 +2912,25 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 229, + "id": 1257, "name": "input", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 212, - "src": "4819:5:0", + "referencedDeclaration": 1240, + "src": "4819:5:4", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", "typeString": "uint256[] memory" } }, - "id": 235, + "id": 1263, "indexExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 234, + "id": 1262, "isConstant": false, "isLValue": false, "isPure": false, @@ -2941,19 +2941,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 232, + "id": 1260, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 230, + "id": 1258, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 220, - "src": "4825:1:0", + "referencedDeclaration": 1248, + "src": "4825:1:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2964,14 +2964,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "36", - "id": 231, + "id": 1259, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4829:1:0", + "src": "4829:1:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_6_by_1", @@ -2979,7 +2979,7 @@ }, "value": "6" }, - "src": "4825:5:0", + "src": "4825:5:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2990,14 +2990,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 233, + "id": 1261, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4833:1:0", + "src": "4833:1:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -3005,7 +3005,7 @@ }, "value": "0" }, - "src": "4825:9:0", + "src": "4825:9:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3016,7 +3016,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "4819:16:0", + "src": "4819:16:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3030,26 +3030,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 236, + "id": 1264, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 181, - "src": "4838:2:0", + "referencedDeclaration": 1209, + "src": "4838:2:4", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_G1Point_$6_memory_$dyn_memory_ptr", + "typeIdentifier": "t_array$_t_struct$_G1Point_$1034_memory_$dyn_memory_ptr", "typeString": "struct Pairing.G1Point memory[] memory" } }, - "id": 238, + "id": 1266, "indexExpression": { "argumentTypes": null, - "id": 237, + "id": 1265, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 220, - "src": "4841:1:0", + "referencedDeclaration": 1248, + "src": "4841:1:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3060,40 +3060,40 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "4838:5:0", + "src": "4838:5:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_memory", + "typeIdentifier": "t_struct$_G1Point_$1034_memory", "typeString": "struct Pairing.G1Point memory" } }, - "id": 239, + "id": 1267, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "X", "nodeType": "MemberAccess", - "referencedDeclaration": 3, - "src": "4838:7:0", + "referencedDeclaration": 1031, + "src": "4838:7:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "4819:26:0", + "src": "4819:26:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 241, + "id": 1269, "nodeType": "ExpressionStatement", - "src": "4819:26:0" + "src": "4819:26:4" }, { "expression": { "argumentTypes": null, - "id": 253, + "id": 1281, "isConstant": false, "isLValue": false, "isPure": false, @@ -3102,25 +3102,25 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 242, + "id": 1270, "name": "input", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 212, - "src": "4859:5:0", + "referencedDeclaration": 1240, + "src": "4859:5:4", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", "typeString": "uint256[] memory" } }, - "id": 248, + "id": 1276, "indexExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 247, + "id": 1275, "isConstant": false, "isLValue": false, "isPure": false, @@ -3131,19 +3131,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 245, + "id": 1273, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 243, + "id": 1271, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 220, - "src": "4865:1:0", + "referencedDeclaration": 1248, + "src": "4865:1:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3154,14 +3154,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "36", - "id": 244, + "id": 1272, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4869:1:0", + "src": "4869:1:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_6_by_1", @@ -3169,7 +3169,7 @@ }, "value": "6" }, - "src": "4865:5:0", + "src": "4865:5:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3180,14 +3180,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "31", - "id": 246, + "id": 1274, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4873:1:0", + "src": "4873:1:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -3195,7 +3195,7 @@ }, "value": "1" }, - "src": "4865:9:0", + "src": "4865:9:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3206,7 +3206,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "4859:16:0", + "src": "4859:16:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3220,26 +3220,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 249, + "id": 1277, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 181, - "src": "4878:2:0", + "referencedDeclaration": 1209, + "src": "4878:2:4", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_G1Point_$6_memory_$dyn_memory_ptr", + "typeIdentifier": "t_array$_t_struct$_G1Point_$1034_memory_$dyn_memory_ptr", "typeString": "struct Pairing.G1Point memory[] memory" } }, - "id": 251, + "id": 1279, "indexExpression": { "argumentTypes": null, - "id": 250, + "id": 1278, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 220, - "src": "4881:1:0", + "referencedDeclaration": 1248, + "src": "4881:1:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3250,40 +3250,40 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "4878:5:0", + "src": "4878:5:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_memory", + "typeIdentifier": "t_struct$_G1Point_$1034_memory", "typeString": "struct Pairing.G1Point memory" } }, - "id": 252, + "id": 1280, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "Y", "nodeType": "MemberAccess", - "referencedDeclaration": 5, - "src": "4878:7:0", + "referencedDeclaration": 1033, + "src": "4878:7:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "4859:26:0", + "src": "4859:26:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 254, + "id": 1282, "nodeType": "ExpressionStatement", - "src": "4859:26:0" + "src": "4859:26:4" }, { "expression": { "argumentTypes": null, - "id": 268, + "id": 1296, "isConstant": false, "isLValue": false, "isPure": false, @@ -3292,25 +3292,25 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 255, + "id": 1283, "name": "input", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 212, - "src": "4899:5:0", + "referencedDeclaration": 1240, + "src": "4899:5:4", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", "typeString": "uint256[] memory" } }, - "id": 261, + "id": 1289, "indexExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 260, + "id": 1288, "isConstant": false, "isLValue": false, "isPure": false, @@ -3321,19 +3321,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 258, + "id": 1286, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 256, + "id": 1284, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 220, - "src": "4905:1:0", + "referencedDeclaration": 1248, + "src": "4905:1:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3344,14 +3344,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "36", - "id": 257, + "id": 1285, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4909:1:0", + "src": "4909:1:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_6_by_1", @@ -3359,7 +3359,7 @@ }, "value": "6" }, - "src": "4905:5:0", + "src": "4905:5:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3370,14 +3370,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "32", - "id": 259, + "id": 1287, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4913:1:0", + "src": "4913:1:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_2_by_1", @@ -3385,7 +3385,7 @@ }, "value": "2" }, - "src": "4905:9:0", + "src": "4905:9:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3396,7 +3396,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "4899:16:0", + "src": "4899:16:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3412,26 +3412,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 262, + "id": 1290, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 184, - "src": "4918:2:0", + "referencedDeclaration": 1212, + "src": "4918:2:4", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_G2Point_$15_memory_$dyn_memory_ptr", + "typeIdentifier": "t_array$_t_struct$_G2Point_$1043_memory_$dyn_memory_ptr", "typeString": "struct Pairing.G2Point memory[] memory" } }, - "id": 264, + "id": 1292, "indexExpression": { "argumentTypes": null, - "id": 263, + "id": 1291, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 220, - "src": "4921:1:0", + "referencedDeclaration": 1248, + "src": "4921:1:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3442,38 +3442,38 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "4918:5:0", + "src": "4918:5:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G2Point_$15_memory", + "typeIdentifier": "t_struct$_G2Point_$1043_memory", "typeString": "struct Pairing.G2Point memory" } }, - "id": 265, + "id": 1293, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "X", "nodeType": "MemberAccess", - "referencedDeclaration": 10, - "src": "4918:7:0", + "referencedDeclaration": 1038, + "src": "4918:7:4", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$2_memory", "typeString": "uint256[2] memory" } }, - "id": 267, + "id": 1295, "indexExpression": { "argumentTypes": null, "hexValue": "30", - "id": 266, + "id": 1294, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4926:1:0", + "src": "4926:1:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -3486,26 +3486,26 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "4918:10:0", + "src": "4918:10:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "4899:29:0", + "src": "4899:29:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 269, + "id": 1297, "nodeType": "ExpressionStatement", - "src": "4899:29:0" + "src": "4899:29:4" }, { "expression": { "argumentTypes": null, - "id": 283, + "id": 1311, "isConstant": false, "isLValue": false, "isPure": false, @@ -3514,25 +3514,25 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 270, + "id": 1298, "name": "input", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 212, - "src": "4942:5:0", + "referencedDeclaration": 1240, + "src": "4942:5:4", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", "typeString": "uint256[] memory" } }, - "id": 276, + "id": 1304, "indexExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 275, + "id": 1303, "isConstant": false, "isLValue": false, "isPure": false, @@ -3543,19 +3543,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 273, + "id": 1301, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 271, + "id": 1299, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 220, - "src": "4948:1:0", + "referencedDeclaration": 1248, + "src": "4948:1:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3566,14 +3566,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "36", - "id": 272, + "id": 1300, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4952:1:0", + "src": "4952:1:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_6_by_1", @@ -3581,7 +3581,7 @@ }, "value": "6" }, - "src": "4948:5:0", + "src": "4948:5:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3592,14 +3592,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "33", - "id": 274, + "id": 1302, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4956:1:0", + "src": "4956:1:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_3_by_1", @@ -3607,7 +3607,7 @@ }, "value": "3" }, - "src": "4948:9:0", + "src": "4948:9:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3618,7 +3618,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "4942:16:0", + "src": "4942:16:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3634,26 +3634,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 277, + "id": 1305, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 184, - "src": "4961:2:0", + "referencedDeclaration": 1212, + "src": "4961:2:4", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_G2Point_$15_memory_$dyn_memory_ptr", + "typeIdentifier": "t_array$_t_struct$_G2Point_$1043_memory_$dyn_memory_ptr", "typeString": "struct Pairing.G2Point memory[] memory" } }, - "id": 279, + "id": 1307, "indexExpression": { "argumentTypes": null, - "id": 278, + "id": 1306, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 220, - "src": "4964:1:0", + "referencedDeclaration": 1248, + "src": "4964:1:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3664,38 +3664,38 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "4961:5:0", + "src": "4961:5:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G2Point_$15_memory", + "typeIdentifier": "t_struct$_G2Point_$1043_memory", "typeString": "struct Pairing.G2Point memory" } }, - "id": 280, + "id": 1308, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "X", "nodeType": "MemberAccess", - "referencedDeclaration": 10, - "src": "4961:7:0", + "referencedDeclaration": 1038, + "src": "4961:7:4", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$2_memory", "typeString": "uint256[2] memory" } }, - "id": 282, + "id": 1310, "indexExpression": { "argumentTypes": null, "hexValue": "31", - "id": 281, + "id": 1309, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4969:1:0", + "src": "4969:1:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -3708,26 +3708,26 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "4961:10:0", + "src": "4961:10:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "4942:29:0", + "src": "4942:29:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 284, + "id": 1312, "nodeType": "ExpressionStatement", - "src": "4942:29:0" + "src": "4942:29:4" }, { "expression": { "argumentTypes": null, - "id": 298, + "id": 1326, "isConstant": false, "isLValue": false, "isPure": false, @@ -3736,25 +3736,25 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 285, + "id": 1313, "name": "input", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 212, - "src": "4985:5:0", + "referencedDeclaration": 1240, + "src": "4985:5:4", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", "typeString": "uint256[] memory" } }, - "id": 291, + "id": 1319, "indexExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 290, + "id": 1318, "isConstant": false, "isLValue": false, "isPure": false, @@ -3765,19 +3765,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 288, + "id": 1316, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 286, + "id": 1314, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 220, - "src": "4991:1:0", + "referencedDeclaration": 1248, + "src": "4991:1:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3788,14 +3788,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "36", - "id": 287, + "id": 1315, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4995:1:0", + "src": "4995:1:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_6_by_1", @@ -3803,7 +3803,7 @@ }, "value": "6" }, - "src": "4991:5:0", + "src": "4991:5:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3814,14 +3814,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "34", - "id": 289, + "id": 1317, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4999:1:0", + "src": "4999:1:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_4_by_1", @@ -3829,7 +3829,7 @@ }, "value": "4" }, - "src": "4991:9:0", + "src": "4991:9:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3840,7 +3840,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "4985:16:0", + "src": "4985:16:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3856,26 +3856,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 292, + "id": 1320, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 184, - "src": "5004:2:0", + "referencedDeclaration": 1212, + "src": "5004:2:4", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_G2Point_$15_memory_$dyn_memory_ptr", + "typeIdentifier": "t_array$_t_struct$_G2Point_$1043_memory_$dyn_memory_ptr", "typeString": "struct Pairing.G2Point memory[] memory" } }, - "id": 294, + "id": 1322, "indexExpression": { "argumentTypes": null, - "id": 293, + "id": 1321, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 220, - "src": "5007:1:0", + "referencedDeclaration": 1248, + "src": "5007:1:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3886,38 +3886,38 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "5004:5:0", + "src": "5004:5:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G2Point_$15_memory", + "typeIdentifier": "t_struct$_G2Point_$1043_memory", "typeString": "struct Pairing.G2Point memory" } }, - "id": 295, + "id": 1323, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "Y", "nodeType": "MemberAccess", - "referencedDeclaration": 14, - "src": "5004:7:0", + "referencedDeclaration": 1042, + "src": "5004:7:4", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$2_memory", "typeString": "uint256[2] memory" } }, - "id": 297, + "id": 1325, "indexExpression": { "argumentTypes": null, "hexValue": "30", - "id": 296, + "id": 1324, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "5012:1:0", + "src": "5012:1:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -3930,26 +3930,26 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "5004:10:0", + "src": "5004:10:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "4985:29:0", + "src": "4985:29:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 299, + "id": 1327, "nodeType": "ExpressionStatement", - "src": "4985:29:0" + "src": "4985:29:4" }, { "expression": { "argumentTypes": null, - "id": 313, + "id": 1341, "isConstant": false, "isLValue": false, "isPure": false, @@ -3958,25 +3958,25 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 300, + "id": 1328, "name": "input", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 212, - "src": "5028:5:0", + "referencedDeclaration": 1240, + "src": "5028:5:4", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", "typeString": "uint256[] memory" } }, - "id": 306, + "id": 1334, "indexExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 305, + "id": 1333, "isConstant": false, "isLValue": false, "isPure": false, @@ -3987,19 +3987,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 303, + "id": 1331, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 301, + "id": 1329, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 220, - "src": "5034:1:0", + "referencedDeclaration": 1248, + "src": "5034:1:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4010,14 +4010,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "36", - "id": 302, + "id": 1330, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "5038:1:0", + "src": "5038:1:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_6_by_1", @@ -4025,7 +4025,7 @@ }, "value": "6" }, - "src": "5034:5:0", + "src": "5034:5:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4036,14 +4036,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "35", - "id": 304, + "id": 1332, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "5042:1:0", + "src": "5042:1:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_5_by_1", @@ -4051,7 +4051,7 @@ }, "value": "5" }, - "src": "5034:9:0", + "src": "5034:9:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4062,7 +4062,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "5028:16:0", + "src": "5028:16:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4078,26 +4078,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 307, + "id": 1335, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 184, - "src": "5047:2:0", + "referencedDeclaration": 1212, + "src": "5047:2:4", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_G2Point_$15_memory_$dyn_memory_ptr", + "typeIdentifier": "t_array$_t_struct$_G2Point_$1043_memory_$dyn_memory_ptr", "typeString": "struct Pairing.G2Point memory[] memory" } }, - "id": 309, + "id": 1337, "indexExpression": { "argumentTypes": null, - "id": 308, + "id": 1336, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 220, - "src": "5050:1:0", + "referencedDeclaration": 1248, + "src": "5050:1:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4108,38 +4108,38 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "5047:5:0", + "src": "5047:5:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G2Point_$15_memory", + "typeIdentifier": "t_struct$_G2Point_$1043_memory", "typeString": "struct Pairing.G2Point memory" } }, - "id": 310, + "id": 1338, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "Y", "nodeType": "MemberAccess", - "referencedDeclaration": 14, - "src": "5047:7:0", + "referencedDeclaration": 1042, + "src": "5047:7:4", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$2_memory", "typeString": "uint256[2] memory" } }, - "id": 312, + "id": 1340, "indexExpression": { "argumentTypes": null, "hexValue": "31", - "id": 311, + "id": 1339, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "5055:1:0", + "src": "5055:1:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -4152,21 +4152,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "5047:10:0", + "src": "5047:10:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "5028:29:0", + "src": "5028:29:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 314, + "id": 1342, "nodeType": "ExpressionStatement", - "src": "5028:29:0" + "src": "5028:29:4" } ] }, @@ -4176,19 +4176,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 225, + "id": 1253, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 223, + "id": 1251, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 220, - "src": "4778:1:0", + "referencedDeclaration": 1248, + "src": "4778:1:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4198,36 +4198,36 @@ "operator": "<", "rightExpression": { "argumentTypes": null, - "id": 224, + "id": 1252, "name": "elements", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 199, - "src": "4782:8:0", + "referencedDeclaration": 1227, + "src": "4782:8:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "4778:12:0", + "src": "4778:12:4", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 316, + "id": 1344, "initializationExpression": { "assignments": [ - 220 + 1248 ], "declarations": [ { "constant": false, - "id": 220, + "id": 1248, "name": "i", "nodeType": "VariableDeclaration", - "scope": 316, - "src": "4766:6:0", + "scope": 1344, + "src": "4766:6:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4235,10 +4235,10 @@ "typeString": "uint256" }, "typeName": { - "id": 219, + "id": 1247, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "4766:4:0", + "src": "4766:4:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4248,18 +4248,18 @@ "visibility": "internal" } ], - "id": 222, + "id": 1250, "initialValue": { "argumentTypes": null, "hexValue": "30", - "id": 221, + "id": 1249, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4775:1:0", + "src": "4775:1:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -4268,12 +4268,12 @@ "value": "0" }, "nodeType": "VariableDeclarationStatement", - "src": "4766:10:0" + "src": "4766:10:4" }, "loopExpression": { "expression": { "argumentTypes": null, - "id": 227, + "id": 1255, "isConstant": false, "isLValue": false, "isPure": false, @@ -4281,15 +4281,15 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "4792:3:0", + "src": "4792:3:4", "subExpression": { "argumentTypes": null, - "id": 226, + "id": 1254, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 220, - "src": "4792:1:0", + "referencedDeclaration": 1248, + "src": "4792:1:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4300,25 +4300,25 @@ "typeString": "uint256" } }, - "id": 228, + "id": 1256, "nodeType": "ExpressionStatement", - "src": "4792:3:0" + "src": "4792:3:4" }, "nodeType": "ForStatement", - "src": "4761:307:0" + "src": "4761:307:4" }, { "assignments": [ - 321 + 1349 ], "declarations": [ { "constant": false, - "id": 321, + "id": 1349, "name": "out", "nodeType": "VariableDeclaration", - "scope": 338, - "src": "5077:18:0", + "scope": 1366, + "src": "5077:18:4", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -4327,27 +4327,27 @@ }, "typeName": { "baseType": { - "id": 319, + "id": 1347, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "5077:4:0", + "src": "5077:4:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 320, + "id": 1348, "length": { "argumentTypes": null, "hexValue": "31", - "id": 318, + "id": 1346, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "5082:1:0", + "src": "5082:1:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -4356,7 +4356,7 @@ "value": "1" }, "nodeType": "ArrayTypeName", - "src": "5077:7:0", + "src": "5077:7:4", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$1_storage_ptr", "typeString": "uint256[1]" @@ -4366,23 +4366,23 @@ "visibility": "internal" } ], - "id": 322, + "id": 1350, "initialValue": null, "nodeType": "VariableDeclarationStatement", - "src": "5077:18:0" + "src": "5077:18:4" }, { "assignments": [ - 324 + 1352 ], "declarations": [ { "constant": false, - "id": 324, + "id": 1352, "name": "success", "nodeType": "VariableDeclaration", - "scope": 338, - "src": "5105:12:0", + "scope": 1366, + "src": "5105:12:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4390,10 +4390,10 @@ "typeString": "bool" }, "typeName": { - "id": 323, + "id": 1351, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "5105:4:0", + "src": "5105:4:4", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -4403,63 +4403,63 @@ "visibility": "internal" } ], - "id": 325, + "id": 1353, "initialValue": null, "nodeType": "VariableDeclarationStatement", - "src": "5105:12:0" + "src": "5105:12:4" }, { "externalReferences": [ { "success": { - "declaration": 324, + "declaration": 1352, "isOffset": false, "isSlot": false, - "src": "5214:7:0", + "src": "5214:7:4", "valueSize": 1 } }, { "input": { - "declaration": 212, + "declaration": 1240, "isOffset": false, "isSlot": false, - "src": "5259:5:0", + "src": "5259:5:4", "valueSize": 1 } }, { "success": { - "declaration": 324, + "declaration": 1352, "isOffset": false, "isSlot": false, - "src": "5382:7:0", + "src": "5382:7:4", "valueSize": 1 } }, { "inputSize": { - "declaration": 204, + "declaration": 1232, "isOffset": false, "isSlot": false, - "src": "5277:9:0", + "src": "5277:9:4", "valueSize": 1 } }, { "out": { - "declaration": 321, + "declaration": 1349, "isOffset": false, "isSlot": false, - "src": "5295:3:0", + "src": "5295:3:4", "valueSize": 1 } } ], - "id": 326, + "id": 1354, "nodeType": "InlineAssembly", "operations": "{\n success := staticcall(sub(gas(), 2000), 8, add(input, 0x20), mul(inputSize, 0x20), out, 0x20)\n switch success\n case 0 { invalid() }\n}", - "src": "5191:229:0" + "src": "5191:229:4" }, { "expression": { @@ -4467,12 +4467,12 @@ "arguments": [ { "argumentTypes": null, - "id": 328, + "id": 1356, "name": "success", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 324, - "src": "5437:7:0", + "referencedDeclaration": 1352, + "src": "5437:7:4", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -4481,14 +4481,14 @@ { "argumentTypes": null, "hexValue": "70616972696e672d6f70636f64652d6661696c6564", - "id": 329, + "id": 1357, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "5445:23:0", + "src": "5445:23:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_f3220b3ef654fc0d9a13e2b6d8c956cb8fb22df61a3a050ded181d8902069fe5", @@ -4508,21 +4508,21 @@ "typeString": "literal_string \"pairing-opcode-failed\"" } ], - "id": 327, + "id": 1355, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1076, - 1077 + 2134, + 2135 ], - "referencedDeclaration": 1077, - "src": "5429:7:0", + "referencedDeclaration": 2135, + "src": "5429:7:4", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 330, + "id": 1358, "isConstant": false, "isLValue": false, "isPure": false, @@ -4530,15 +4530,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5429:40:0", + "src": "5429:40:4", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 331, + "id": 1359, "nodeType": "ExpressionStatement", - "src": "5429:40:0" + "src": "5429:40:4" }, { "expression": { @@ -4547,7 +4547,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 336, + "id": 1364, "isConstant": false, "isLValue": false, "isPure": false, @@ -4556,29 +4556,29 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 332, + "id": 1360, "name": "out", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 321, - "src": "5486:3:0", + "referencedDeclaration": 1349, + "src": "5486:3:4", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$1_memory_ptr", "typeString": "uint256[1] memory" } }, - "id": 334, + "id": 1362, "indexExpression": { "argumentTypes": null, "hexValue": "30", - "id": 333, + "id": 1361, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "5490:1:0", + "src": "5490:1:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -4591,7 +4591,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "5486:6:0", + "src": "5486:6:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4602,14 +4602,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 335, + "id": 1363, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "5496:1:0", + "src": "5496:1:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -4617,62 +4617,62 @@ }, "value": "0" }, - "src": "5486:11:0", + "src": "5486:11:4", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "functionReturnParameters": 188, - "id": 337, + "functionReturnParameters": 1216, + "id": 1365, "nodeType": "Return", - "src": "5479:18:0" + "src": "5479:18:4" } ] }, "documentation": "@return the result of computing the pairing check\n e(p1[0], p2[0]) * .... * e(p1[n], p2[n]) == 1\n For example pairing([P1(), P1().negate()], [P2(), P2()]) should\n return true.", - "id": 339, + "id": 1367, "implemented": true, "kind": "function", "modifiers": [], "name": "pairing", "nodeType": "FunctionDefinition", "parameters": { - "id": 185, + "id": 1213, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 181, + "id": 1209, "name": "p1", "nodeType": "VariableDeclaration", - "scope": 339, - "src": "4487:19:0", + "scope": 1367, + "src": "4487:19:4", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_G1Point_$6_memory_$dyn_memory_ptr", + "typeIdentifier": "t_array$_t_struct$_G1Point_$1034_memory_$dyn_memory_ptr", "typeString": "struct Pairing.G1Point[]" }, "typeName": { "baseType": { "contractScope": null, - "id": 179, + "id": 1207, "name": "G1Point", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 6, - "src": "4487:7:0", + "referencedDeclaration": 1034, + "src": "4487:7:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_storage_ptr", + "typeIdentifier": "t_struct$_G1Point_$1034_storage_ptr", "typeString": "struct Pairing.G1Point" } }, - "id": 180, + "id": 1208, "length": null, "nodeType": "ArrayTypeName", - "src": "4487:9:0", + "src": "4487:9:4", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_G1Point_$6_storage_$dyn_storage_ptr", + "typeIdentifier": "t_array$_t_struct$_G1Point_$1034_storage_$dyn_storage_ptr", "typeString": "struct Pairing.G1Point[]" } }, @@ -4681,36 +4681,36 @@ }, { "constant": false, - "id": 184, + "id": 1212, "name": "p2", "nodeType": "VariableDeclaration", - "scope": 339, - "src": "4508:19:0", + "scope": 1367, + "src": "4508:19:4", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_G2Point_$15_memory_$dyn_memory_ptr", + "typeIdentifier": "t_array$_t_struct$_G2Point_$1043_memory_$dyn_memory_ptr", "typeString": "struct Pairing.G2Point[]" }, "typeName": { "baseType": { "contractScope": null, - "id": 182, + "id": 1210, "name": "G2Point", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 15, - "src": "4508:7:0", + "referencedDeclaration": 1043, + "src": "4508:7:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G2Point_$15_storage_ptr", + "typeIdentifier": "t_struct$_G2Point_$1043_storage_ptr", "typeString": "struct Pairing.G2Point" } }, - "id": 183, + "id": 1211, "length": null, "nodeType": "ArrayTypeName", - "src": "4508:9:0", + "src": "4508:9:4", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_G2Point_$15_storage_$dyn_storage_ptr", + "typeIdentifier": "t_array$_t_struct$_G2Point_$1043_storage_$dyn_storage_ptr", "typeString": "struct Pairing.G2Point[]" } }, @@ -4718,19 +4718,19 @@ "visibility": "internal" } ], - "src": "4486:42:0" + "src": "4486:42:4" }, "returnParameters": { - "id": 188, + "id": 1216, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 187, + "id": 1215, "name": "", "nodeType": "VariableDeclaration", - "scope": 339, - "src": "4552:4:0", + "scope": 1367, + "src": "4552:4:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4738,10 +4738,10 @@ "typeString": "bool" }, "typeName": { - "id": 186, + "id": 1214, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "4552:4:0", + "src": "4552:4:4", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -4751,57 +4751,57 @@ "visibility": "internal" } ], - "src": "4551:6:0" + "src": "4551:6:4" }, - "scope": 577, - "src": "4470:1034:0", + "scope": 1605, + "src": "4470:1034:4", "stateMutability": "view", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 401, + "id": 1429, "nodeType": "Block", - "src": "5698:215:0", + "src": "5698:215:4", "statements": [ { "assignments": [ - 355 + 1383 ], "declarations": [ { "constant": false, - "id": 355, + "id": 1383, "name": "p1", "nodeType": "VariableDeclaration", - "scope": 401, - "src": "5708:19:0", + "scope": 1429, + "src": "5708:19:4", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_G1Point_$6_memory_$dyn_memory_ptr", + "typeIdentifier": "t_array$_t_struct$_G1Point_$1034_memory_$dyn_memory_ptr", "typeString": "struct Pairing.G1Point[]" }, "typeName": { "baseType": { "contractScope": null, - "id": 353, + "id": 1381, "name": "G1Point", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 6, - "src": "5708:7:0", + "referencedDeclaration": 1034, + "src": "5708:7:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_storage_ptr", + "typeIdentifier": "t_struct$_G1Point_$1034_storage_ptr", "typeString": "struct Pairing.G1Point" } }, - "id": 354, + "id": 1382, "length": null, "nodeType": "ArrayTypeName", - "src": "5708:9:0", + "src": "5708:9:4", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_G1Point_$6_storage_$dyn_storage_ptr", + "typeIdentifier": "t_array$_t_struct$_G1Point_$1034_storage_$dyn_storage_ptr", "typeString": "struct Pairing.G1Point[]" } }, @@ -4809,21 +4809,21 @@ "visibility": "internal" } ], - "id": 361, + "id": 1389, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "32", - "id": 359, + "id": 1387, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "5744:1:0", + "src": "5744:1:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_2_by_1", @@ -4839,41 +4839,41 @@ "typeString": "int_const 2" } ], - "id": 358, + "id": 1386, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "NewExpression", - "src": "5730:13:0", + "src": "5730:13:4", "typeDescriptions": { - "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_G1Point_$6_memory_$dyn_memory_$", + "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_G1Point_$1034_memory_$dyn_memory_$", "typeString": "function (uint256) pure returns (struct Pairing.G1Point memory[] memory)" }, "typeName": { "baseType": { "contractScope": null, - "id": 356, + "id": 1384, "name": "G1Point", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 6, - "src": "5734:7:0", + "referencedDeclaration": 1034, + "src": "5734:7:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_storage_ptr", + "typeIdentifier": "t_struct$_G1Point_$1034_storage_ptr", "typeString": "struct Pairing.G1Point" } }, - "id": 357, + "id": 1385, "length": null, "nodeType": "ArrayTypeName", - "src": "5734:9:0", + "src": "5734:9:4", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_G1Point_$6_storage_$dyn_storage_ptr", + "typeIdentifier": "t_array$_t_struct$_G1Point_$1034_storage_$dyn_storage_ptr", "typeString": "struct Pairing.G1Point[]" } } }, - "id": 360, + "id": 1388, "isConstant": false, "isLValue": false, "isPure": true, @@ -4881,52 +4881,52 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5730:16:0", + "src": "5730:16:4", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_G1Point_$6_memory_$dyn_memory", + "typeIdentifier": "t_array$_t_struct$_G1Point_$1034_memory_$dyn_memory", "typeString": "struct Pairing.G1Point memory[] memory" } }, "nodeType": "VariableDeclarationStatement", - "src": "5708:38:0" + "src": "5708:38:4" }, { "assignments": [ - 365 + 1393 ], "declarations": [ { "constant": false, - "id": 365, + "id": 1393, "name": "p2", "nodeType": "VariableDeclaration", - "scope": 401, - "src": "5756:19:0", + "scope": 1429, + "src": "5756:19:4", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_G2Point_$15_memory_$dyn_memory_ptr", + "typeIdentifier": "t_array$_t_struct$_G2Point_$1043_memory_$dyn_memory_ptr", "typeString": "struct Pairing.G2Point[]" }, "typeName": { "baseType": { "contractScope": null, - "id": 363, + "id": 1391, "name": "G2Point", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 15, - "src": "5756:7:0", + "referencedDeclaration": 1043, + "src": "5756:7:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G2Point_$15_storage_ptr", + "typeIdentifier": "t_struct$_G2Point_$1043_storage_ptr", "typeString": "struct Pairing.G2Point" } }, - "id": 364, + "id": 1392, "length": null, "nodeType": "ArrayTypeName", - "src": "5756:9:0", + "src": "5756:9:4", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_G2Point_$15_storage_$dyn_storage_ptr", + "typeIdentifier": "t_array$_t_struct$_G2Point_$1043_storage_$dyn_storage_ptr", "typeString": "struct Pairing.G2Point[]" } }, @@ -4934,21 +4934,21 @@ "visibility": "internal" } ], - "id": 371, + "id": 1399, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "32", - "id": 369, + "id": 1397, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "5792:1:0", + "src": "5792:1:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_2_by_1", @@ -4964,41 +4964,41 @@ "typeString": "int_const 2" } ], - "id": 368, + "id": 1396, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "NewExpression", - "src": "5778:13:0", + "src": "5778:13:4", "typeDescriptions": { - "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_G2Point_$15_memory_$dyn_memory_$", + "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_G2Point_$1043_memory_$dyn_memory_$", "typeString": "function (uint256) pure returns (struct Pairing.G2Point memory[] memory)" }, "typeName": { "baseType": { "contractScope": null, - "id": 366, + "id": 1394, "name": "G2Point", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 15, - "src": "5782:7:0", + "referencedDeclaration": 1043, + "src": "5782:7:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G2Point_$15_storage_ptr", + "typeIdentifier": "t_struct$_G2Point_$1043_storage_ptr", "typeString": "struct Pairing.G2Point" } }, - "id": 367, + "id": 1395, "length": null, "nodeType": "ArrayTypeName", - "src": "5782:9:0", + "src": "5782:9:4", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_G2Point_$15_storage_$dyn_storage_ptr", + "typeIdentifier": "t_array$_t_struct$_G2Point_$1043_storage_$dyn_storage_ptr", "typeString": "struct Pairing.G2Point[]" } } }, - "id": 370, + "id": 1398, "isConstant": false, "isLValue": false, "isPure": true, @@ -5006,19 +5006,19 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5778:16:0", + "src": "5778:16:4", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_G2Point_$15_memory_$dyn_memory", + "typeIdentifier": "t_array$_t_struct$_G2Point_$1043_memory_$dyn_memory", "typeString": "struct Pairing.G2Point memory[] memory" } }, "nodeType": "VariableDeclarationStatement", - "src": "5756:38:0" + "src": "5756:38:4" }, { "expression": { "argumentTypes": null, - "id": 376, + "id": 1404, "isConstant": false, "isLValue": false, "isPure": false, @@ -5027,29 +5027,29 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 372, + "id": 1400, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 355, - "src": "5804:2:0", + "referencedDeclaration": 1383, + "src": "5804:2:4", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_G1Point_$6_memory_$dyn_memory_ptr", + "typeIdentifier": "t_array$_t_struct$_G1Point_$1034_memory_$dyn_memory_ptr", "typeString": "struct Pairing.G1Point memory[] memory" } }, - "id": 374, + "id": 1402, "indexExpression": { "argumentTypes": null, "hexValue": "30", - "id": 373, + "id": 1401, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "5807:1:0", + "src": "5807:1:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -5062,9 +5062,9 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "5804:5:0", + "src": "5804:5:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_memory", + "typeIdentifier": "t_struct$_G1Point_$1034_memory", "typeString": "struct Pairing.G1Point memory" } }, @@ -5072,31 +5072,31 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 375, + "id": 1403, "name": "a1", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 341, - "src": "5812:2:0", + "referencedDeclaration": 1369, + "src": "5812:2:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_memory_ptr", + "typeIdentifier": "t_struct$_G1Point_$1034_memory_ptr", "typeString": "struct Pairing.G1Point memory" } }, - "src": "5804:10:0", + "src": "5804:10:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_memory", + "typeIdentifier": "t_struct$_G1Point_$1034_memory", "typeString": "struct Pairing.G1Point memory" } }, - "id": 377, + "id": 1405, "nodeType": "ExpressionStatement", - "src": "5804:10:0" + "src": "5804:10:4" }, { "expression": { "argumentTypes": null, - "id": 382, + "id": 1410, "isConstant": false, "isLValue": false, "isPure": false, @@ -5105,29 +5105,29 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 378, + "id": 1406, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 355, - "src": "5824:2:0", + "referencedDeclaration": 1383, + "src": "5824:2:4", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_G1Point_$6_memory_$dyn_memory_ptr", + "typeIdentifier": "t_array$_t_struct$_G1Point_$1034_memory_$dyn_memory_ptr", "typeString": "struct Pairing.G1Point memory[] memory" } }, - "id": 380, + "id": 1408, "indexExpression": { "argumentTypes": null, "hexValue": "31", - "id": 379, + "id": 1407, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "5827:1:0", + "src": "5827:1:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -5140,9 +5140,9 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "5824:5:0", + "src": "5824:5:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_memory", + "typeIdentifier": "t_struct$_G1Point_$1034_memory", "typeString": "struct Pairing.G1Point memory" } }, @@ -5150,31 +5150,31 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 381, + "id": 1409, "name": "b1", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 345, - "src": "5832:2:0", + "referencedDeclaration": 1373, + "src": "5832:2:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_memory_ptr", + "typeIdentifier": "t_struct$_G1Point_$1034_memory_ptr", "typeString": "struct Pairing.G1Point memory" } }, - "src": "5824:10:0", + "src": "5824:10:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_memory", + "typeIdentifier": "t_struct$_G1Point_$1034_memory", "typeString": "struct Pairing.G1Point memory" } }, - "id": 383, + "id": 1411, "nodeType": "ExpressionStatement", - "src": "5824:10:0" + "src": "5824:10:4" }, { "expression": { "argumentTypes": null, - "id": 388, + "id": 1416, "isConstant": false, "isLValue": false, "isPure": false, @@ -5183,29 +5183,29 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 384, + "id": 1412, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 365, - "src": "5844:2:0", + "referencedDeclaration": 1393, + "src": "5844:2:4", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_G2Point_$15_memory_$dyn_memory_ptr", + "typeIdentifier": "t_array$_t_struct$_G2Point_$1043_memory_$dyn_memory_ptr", "typeString": "struct Pairing.G2Point memory[] memory" } }, - "id": 386, + "id": 1414, "indexExpression": { "argumentTypes": null, "hexValue": "30", - "id": 385, + "id": 1413, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "5847:1:0", + "src": "5847:1:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -5218,9 +5218,9 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "5844:5:0", + "src": "5844:5:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G2Point_$15_memory", + "typeIdentifier": "t_struct$_G2Point_$1043_memory", "typeString": "struct Pairing.G2Point memory" } }, @@ -5228,31 +5228,31 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 387, + "id": 1415, "name": "a2", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 343, - "src": "5852:2:0", + "referencedDeclaration": 1371, + "src": "5852:2:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G2Point_$15_memory_ptr", + "typeIdentifier": "t_struct$_G2Point_$1043_memory_ptr", "typeString": "struct Pairing.G2Point memory" } }, - "src": "5844:10:0", + "src": "5844:10:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G2Point_$15_memory", + "typeIdentifier": "t_struct$_G2Point_$1043_memory", "typeString": "struct Pairing.G2Point memory" } }, - "id": 389, + "id": 1417, "nodeType": "ExpressionStatement", - "src": "5844:10:0" + "src": "5844:10:4" }, { "expression": { "argumentTypes": null, - "id": 394, + "id": 1422, "isConstant": false, "isLValue": false, "isPure": false, @@ -5261,29 +5261,29 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 390, + "id": 1418, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 365, - "src": "5864:2:0", + "referencedDeclaration": 1393, + "src": "5864:2:4", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_G2Point_$15_memory_$dyn_memory_ptr", + "typeIdentifier": "t_array$_t_struct$_G2Point_$1043_memory_$dyn_memory_ptr", "typeString": "struct Pairing.G2Point memory[] memory" } }, - "id": 392, + "id": 1420, "indexExpression": { "argumentTypes": null, "hexValue": "31", - "id": 391, + "id": 1419, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "5867:1:0", + "src": "5867:1:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -5296,9 +5296,9 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "5864:5:0", + "src": "5864:5:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G2Point_$15_memory", + "typeIdentifier": "t_struct$_G2Point_$1043_memory", "typeString": "struct Pairing.G2Point memory" } }, @@ -5306,26 +5306,26 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 393, + "id": 1421, "name": "b2", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 347, - "src": "5872:2:0", + "referencedDeclaration": 1375, + "src": "5872:2:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G2Point_$15_memory_ptr", + "typeIdentifier": "t_struct$_G2Point_$1043_memory_ptr", "typeString": "struct Pairing.G2Point memory" } }, - "src": "5864:10:0", + "src": "5864:10:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G2Point_$15_memory", + "typeIdentifier": "t_struct$_G2Point_$1043_memory", "typeString": "struct Pairing.G2Point memory" } }, - "id": 395, + "id": 1423, "nodeType": "ExpressionStatement", - "src": "5864:10:0" + "src": "5864:10:4" }, { "expression": { @@ -5333,27 +5333,27 @@ "arguments": [ { "argumentTypes": null, - "id": 397, + "id": 1425, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 355, - "src": "5899:2:0", + "referencedDeclaration": 1383, + "src": "5899:2:4", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_G1Point_$6_memory_$dyn_memory_ptr", + "typeIdentifier": "t_array$_t_struct$_G1Point_$1034_memory_$dyn_memory_ptr", "typeString": "struct Pairing.G1Point memory[] memory" } }, { "argumentTypes": null, - "id": 398, + "id": 1426, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 365, - "src": "5903:2:0", + "referencedDeclaration": 1393, + "src": "5903:2:4", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_G2Point_$15_memory_$dyn_memory_ptr", + "typeIdentifier": "t_array$_t_struct$_G2Point_$1043_memory_$dyn_memory_ptr", "typeString": "struct Pairing.G2Point memory[] memory" } } @@ -5361,26 +5361,26 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_array$_t_struct$_G1Point_$6_memory_$dyn_memory_ptr", + "typeIdentifier": "t_array$_t_struct$_G1Point_$1034_memory_$dyn_memory_ptr", "typeString": "struct Pairing.G1Point memory[] memory" }, { - "typeIdentifier": "t_array$_t_struct$_G2Point_$15_memory_$dyn_memory_ptr", + "typeIdentifier": "t_array$_t_struct$_G2Point_$1043_memory_$dyn_memory_ptr", "typeString": "struct Pairing.G2Point memory[] memory" } ], - "id": 396, + "id": 1424, "name": "pairing", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 339, - "src": "5891:7:0", + "referencedDeclaration": 1367, + "src": "5891:7:4", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_array$_t_struct$_G1Point_$6_memory_$dyn_memory_ptr_$_t_array$_t_struct$_G2Point_$15_memory_$dyn_memory_ptr_$returns$_t_bool_$", + "typeIdentifier": "t_function_internal_view$_t_array$_t_struct$_G1Point_$1034_memory_$dyn_memory_ptr_$_t_array$_t_struct$_G2Point_$1043_memory_$dyn_memory_ptr_$returns$_t_bool_$", "typeString": "function (struct Pairing.G1Point memory[] memory,struct Pairing.G2Point memory[] memory) view returns (bool)" } }, - "id": 399, + "id": 1427, "isConstant": false, "isLValue": false, "isPure": false, @@ -5388,52 +5388,52 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5891:15:0", + "src": "5891:15:4", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "functionReturnParameters": 351, - "id": 400, + "functionReturnParameters": 1379, + "id": 1428, "nodeType": "Return", - "src": "5884:22:0" + "src": "5884:22:4" } ] }, "documentation": "Convenience method for a pairing check for two pairs.", - "id": 402, + "id": 1430, "implemented": true, "kind": "function", "modifiers": [], "name": "pairingProd2", "nodeType": "FunctionDefinition", "parameters": { - "id": 348, + "id": 1376, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 341, + "id": 1369, "name": "a1", "nodeType": "VariableDeclaration", - "scope": 402, - "src": "5593:17:0", + "scope": 1430, + "src": "5593:17:4", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_memory_ptr", + "typeIdentifier": "t_struct$_G1Point_$1034_memory_ptr", "typeString": "struct Pairing.G1Point" }, "typeName": { "contractScope": null, - "id": 340, + "id": 1368, "name": "G1Point", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 6, - "src": "5593:7:0", + "referencedDeclaration": 1034, + "src": "5593:7:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_storage_ptr", + "typeIdentifier": "t_struct$_G1Point_$1034_storage_ptr", "typeString": "struct Pairing.G1Point" } }, @@ -5442,26 +5442,26 @@ }, { "constant": false, - "id": 343, + "id": 1371, "name": "a2", "nodeType": "VariableDeclaration", - "scope": 402, - "src": "5612:17:0", + "scope": 1430, + "src": "5612:17:4", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_struct$_G2Point_$15_memory_ptr", + "typeIdentifier": "t_struct$_G2Point_$1043_memory_ptr", "typeString": "struct Pairing.G2Point" }, "typeName": { "contractScope": null, - "id": 342, + "id": 1370, "name": "G2Point", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 15, - "src": "5612:7:0", + "referencedDeclaration": 1043, + "src": "5612:7:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G2Point_$15_storage_ptr", + "typeIdentifier": "t_struct$_G2Point_$1043_storage_ptr", "typeString": "struct Pairing.G2Point" } }, @@ -5470,26 +5470,26 @@ }, { "constant": false, - "id": 345, + "id": 1373, "name": "b1", "nodeType": "VariableDeclaration", - "scope": 402, - "src": "5631:17:0", + "scope": 1430, + "src": "5631:17:4", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_memory_ptr", + "typeIdentifier": "t_struct$_G1Point_$1034_memory_ptr", "typeString": "struct Pairing.G1Point" }, "typeName": { "contractScope": null, - "id": 344, + "id": 1372, "name": "G1Point", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 6, - "src": "5631:7:0", + "referencedDeclaration": 1034, + "src": "5631:7:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_storage_ptr", + "typeIdentifier": "t_struct$_G1Point_$1034_storage_ptr", "typeString": "struct Pairing.G1Point" } }, @@ -5498,26 +5498,26 @@ }, { "constant": false, - "id": 347, + "id": 1375, "name": "b2", "nodeType": "VariableDeclaration", - "scope": 402, - "src": "5650:17:0", + "scope": 1430, + "src": "5650:17:4", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_struct$_G2Point_$15_memory_ptr", + "typeIdentifier": "t_struct$_G2Point_$1043_memory_ptr", "typeString": "struct Pairing.G2Point" }, "typeName": { "contractScope": null, - "id": 346, + "id": 1374, "name": "G2Point", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 15, - "src": "5650:7:0", + "referencedDeclaration": 1043, + "src": "5650:7:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G2Point_$15_storage_ptr", + "typeIdentifier": "t_struct$_G2Point_$1043_storage_ptr", "typeString": "struct Pairing.G2Point" } }, @@ -5525,19 +5525,19 @@ "visibility": "internal" } ], - "src": "5592:76:0" + "src": "5592:76:4" }, "returnParameters": { - "id": 351, + "id": 1379, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 350, + "id": 1378, "name": "", "nodeType": "VariableDeclaration", - "scope": 402, - "src": "5692:4:0", + "scope": 1430, + "src": "5692:4:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5545,10 +5545,10 @@ "typeString": "bool" }, "typeName": { - "id": 349, + "id": 1377, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "5692:4:0", + "src": "5692:4:4", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -5558,57 +5558,57 @@ "visibility": "internal" } ], - "src": "5691:6:0" + "src": "5691:6:4" }, - "scope": 577, - "src": "5571:342:0", + "scope": 1605, + "src": "5571:342:4", "stateMutability": "view", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 480, + "id": 1508, "nodeType": "Block", - "src": "6189:255:0", + "src": "6189:255:4", "statements": [ { "assignments": [ - 422 + 1450 ], "declarations": [ { "constant": false, - "id": 422, + "id": 1450, "name": "p1", "nodeType": "VariableDeclaration", - "scope": 480, - "src": "6199:19:0", + "scope": 1508, + "src": "6199:19:4", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_G1Point_$6_memory_$dyn_memory_ptr", + "typeIdentifier": "t_array$_t_struct$_G1Point_$1034_memory_$dyn_memory_ptr", "typeString": "struct Pairing.G1Point[]" }, "typeName": { "baseType": { "contractScope": null, - "id": 420, + "id": 1448, "name": "G1Point", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 6, - "src": "6199:7:0", + "referencedDeclaration": 1034, + "src": "6199:7:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_storage_ptr", + "typeIdentifier": "t_struct$_G1Point_$1034_storage_ptr", "typeString": "struct Pairing.G1Point" } }, - "id": 421, + "id": 1449, "length": null, "nodeType": "ArrayTypeName", - "src": "6199:9:0", + "src": "6199:9:4", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_G1Point_$6_storage_$dyn_storage_ptr", + "typeIdentifier": "t_array$_t_struct$_G1Point_$1034_storage_$dyn_storage_ptr", "typeString": "struct Pairing.G1Point[]" } }, @@ -5616,21 +5616,21 @@ "visibility": "internal" } ], - "id": 428, + "id": 1456, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "33", - "id": 426, + "id": 1454, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "6235:1:0", + "src": "6235:1:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_3_by_1", @@ -5646,41 +5646,41 @@ "typeString": "int_const 3" } ], - "id": 425, + "id": 1453, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "NewExpression", - "src": "6221:13:0", + "src": "6221:13:4", "typeDescriptions": { - "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_G1Point_$6_memory_$dyn_memory_$", + "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_G1Point_$1034_memory_$dyn_memory_$", "typeString": "function (uint256) pure returns (struct Pairing.G1Point memory[] memory)" }, "typeName": { "baseType": { "contractScope": null, - "id": 423, + "id": 1451, "name": "G1Point", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 6, - "src": "6225:7:0", + "referencedDeclaration": 1034, + "src": "6225:7:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_storage_ptr", + "typeIdentifier": "t_struct$_G1Point_$1034_storage_ptr", "typeString": "struct Pairing.G1Point" } }, - "id": 424, + "id": 1452, "length": null, "nodeType": "ArrayTypeName", - "src": "6225:9:0", + "src": "6225:9:4", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_G1Point_$6_storage_$dyn_storage_ptr", + "typeIdentifier": "t_array$_t_struct$_G1Point_$1034_storage_$dyn_storage_ptr", "typeString": "struct Pairing.G1Point[]" } } }, - "id": 427, + "id": 1455, "isConstant": false, "isLValue": false, "isPure": true, @@ -5688,52 +5688,52 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6221:16:0", + "src": "6221:16:4", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_G1Point_$6_memory_$dyn_memory", + "typeIdentifier": "t_array$_t_struct$_G1Point_$1034_memory_$dyn_memory", "typeString": "struct Pairing.G1Point memory[] memory" } }, "nodeType": "VariableDeclarationStatement", - "src": "6199:38:0" + "src": "6199:38:4" }, { "assignments": [ - 432 + 1460 ], "declarations": [ { "constant": false, - "id": 432, + "id": 1460, "name": "p2", "nodeType": "VariableDeclaration", - "scope": 480, - "src": "6247:19:0", + "scope": 1508, + "src": "6247:19:4", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_G2Point_$15_memory_$dyn_memory_ptr", + "typeIdentifier": "t_array$_t_struct$_G2Point_$1043_memory_$dyn_memory_ptr", "typeString": "struct Pairing.G2Point[]" }, "typeName": { "baseType": { "contractScope": null, - "id": 430, + "id": 1458, "name": "G2Point", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 15, - "src": "6247:7:0", + "referencedDeclaration": 1043, + "src": "6247:7:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G2Point_$15_storage_ptr", + "typeIdentifier": "t_struct$_G2Point_$1043_storage_ptr", "typeString": "struct Pairing.G2Point" } }, - "id": 431, + "id": 1459, "length": null, "nodeType": "ArrayTypeName", - "src": "6247:9:0", + "src": "6247:9:4", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_G2Point_$15_storage_$dyn_storage_ptr", + "typeIdentifier": "t_array$_t_struct$_G2Point_$1043_storage_$dyn_storage_ptr", "typeString": "struct Pairing.G2Point[]" } }, @@ -5741,21 +5741,21 @@ "visibility": "internal" } ], - "id": 438, + "id": 1466, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "33", - "id": 436, + "id": 1464, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "6283:1:0", + "src": "6283:1:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_3_by_1", @@ -5771,41 +5771,41 @@ "typeString": "int_const 3" } ], - "id": 435, + "id": 1463, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "NewExpression", - "src": "6269:13:0", + "src": "6269:13:4", "typeDescriptions": { - "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_G2Point_$15_memory_$dyn_memory_$", + "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_G2Point_$1043_memory_$dyn_memory_$", "typeString": "function (uint256) pure returns (struct Pairing.G2Point memory[] memory)" }, "typeName": { "baseType": { "contractScope": null, - "id": 433, + "id": 1461, "name": "G2Point", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 15, - "src": "6273:7:0", + "referencedDeclaration": 1043, + "src": "6273:7:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G2Point_$15_storage_ptr", + "typeIdentifier": "t_struct$_G2Point_$1043_storage_ptr", "typeString": "struct Pairing.G2Point" } }, - "id": 434, + "id": 1462, "length": null, "nodeType": "ArrayTypeName", - "src": "6273:9:0", + "src": "6273:9:4", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_G2Point_$15_storage_$dyn_storage_ptr", + "typeIdentifier": "t_array$_t_struct$_G2Point_$1043_storage_$dyn_storage_ptr", "typeString": "struct Pairing.G2Point[]" } } }, - "id": 437, + "id": 1465, "isConstant": false, "isLValue": false, "isPure": true, @@ -5813,19 +5813,19 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6269:16:0", + "src": "6269:16:4", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_G2Point_$15_memory_$dyn_memory", + "typeIdentifier": "t_array$_t_struct$_G2Point_$1043_memory_$dyn_memory", "typeString": "struct Pairing.G2Point memory[] memory" } }, "nodeType": "VariableDeclarationStatement", - "src": "6247:38:0" + "src": "6247:38:4" }, { "expression": { "argumentTypes": null, - "id": 443, + "id": 1471, "isConstant": false, "isLValue": false, "isPure": false, @@ -5834,29 +5834,29 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 439, + "id": 1467, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 422, - "src": "6295:2:0", + "referencedDeclaration": 1450, + "src": "6295:2:4", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_G1Point_$6_memory_$dyn_memory_ptr", + "typeIdentifier": "t_array$_t_struct$_G1Point_$1034_memory_$dyn_memory_ptr", "typeString": "struct Pairing.G1Point memory[] memory" } }, - "id": 441, + "id": 1469, "indexExpression": { "argumentTypes": null, "hexValue": "30", - "id": 440, + "id": 1468, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "6298:1:0", + "src": "6298:1:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -5869,9 +5869,9 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "6295:5:0", + "src": "6295:5:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_memory", + "typeIdentifier": "t_struct$_G1Point_$1034_memory", "typeString": "struct Pairing.G1Point memory" } }, @@ -5879,31 +5879,31 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 442, + "id": 1470, "name": "a1", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 404, - "src": "6303:2:0", + "referencedDeclaration": 1432, + "src": "6303:2:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_memory_ptr", + "typeIdentifier": "t_struct$_G1Point_$1034_memory_ptr", "typeString": "struct Pairing.G1Point memory" } }, - "src": "6295:10:0", + "src": "6295:10:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_memory", + "typeIdentifier": "t_struct$_G1Point_$1034_memory", "typeString": "struct Pairing.G1Point memory" } }, - "id": 444, + "id": 1472, "nodeType": "ExpressionStatement", - "src": "6295:10:0" + "src": "6295:10:4" }, { "expression": { "argumentTypes": null, - "id": 449, + "id": 1477, "isConstant": false, "isLValue": false, "isPure": false, @@ -5912,29 +5912,29 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 445, + "id": 1473, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 422, - "src": "6315:2:0", + "referencedDeclaration": 1450, + "src": "6315:2:4", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_G1Point_$6_memory_$dyn_memory_ptr", + "typeIdentifier": "t_array$_t_struct$_G1Point_$1034_memory_$dyn_memory_ptr", "typeString": "struct Pairing.G1Point memory[] memory" } }, - "id": 447, + "id": 1475, "indexExpression": { "argumentTypes": null, "hexValue": "31", - "id": 446, + "id": 1474, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "6318:1:0", + "src": "6318:1:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -5947,9 +5947,9 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "6315:5:0", + "src": "6315:5:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_memory", + "typeIdentifier": "t_struct$_G1Point_$1034_memory", "typeString": "struct Pairing.G1Point memory" } }, @@ -5957,31 +5957,31 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 448, + "id": 1476, "name": "b1", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 408, - "src": "6323:2:0", + "referencedDeclaration": 1436, + "src": "6323:2:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_memory_ptr", + "typeIdentifier": "t_struct$_G1Point_$1034_memory_ptr", "typeString": "struct Pairing.G1Point memory" } }, - "src": "6315:10:0", + "src": "6315:10:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_memory", + "typeIdentifier": "t_struct$_G1Point_$1034_memory", "typeString": "struct Pairing.G1Point memory" } }, - "id": 450, + "id": 1478, "nodeType": "ExpressionStatement", - "src": "6315:10:0" + "src": "6315:10:4" }, { "expression": { "argumentTypes": null, - "id": 455, + "id": 1483, "isConstant": false, "isLValue": false, "isPure": false, @@ -5990,29 +5990,29 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 451, + "id": 1479, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 422, - "src": "6335:2:0", + "referencedDeclaration": 1450, + "src": "6335:2:4", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_G1Point_$6_memory_$dyn_memory_ptr", + "typeIdentifier": "t_array$_t_struct$_G1Point_$1034_memory_$dyn_memory_ptr", "typeString": "struct Pairing.G1Point memory[] memory" } }, - "id": 453, + "id": 1481, "indexExpression": { "argumentTypes": null, "hexValue": "32", - "id": 452, + "id": 1480, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "6338:1:0", + "src": "6338:1:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_2_by_1", @@ -6025,9 +6025,9 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "6335:5:0", + "src": "6335:5:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_memory", + "typeIdentifier": "t_struct$_G1Point_$1034_memory", "typeString": "struct Pairing.G1Point memory" } }, @@ -6035,31 +6035,31 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 454, + "id": 1482, "name": "c1", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 412, - "src": "6343:2:0", + "referencedDeclaration": 1440, + "src": "6343:2:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_memory_ptr", + "typeIdentifier": "t_struct$_G1Point_$1034_memory_ptr", "typeString": "struct Pairing.G1Point memory" } }, - "src": "6335:10:0", + "src": "6335:10:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_memory", + "typeIdentifier": "t_struct$_G1Point_$1034_memory", "typeString": "struct Pairing.G1Point memory" } }, - "id": 456, + "id": 1484, "nodeType": "ExpressionStatement", - "src": "6335:10:0" + "src": "6335:10:4" }, { "expression": { "argumentTypes": null, - "id": 461, + "id": 1489, "isConstant": false, "isLValue": false, "isPure": false, @@ -6068,29 +6068,29 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 457, + "id": 1485, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 432, - "src": "6355:2:0", + "referencedDeclaration": 1460, + "src": "6355:2:4", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_G2Point_$15_memory_$dyn_memory_ptr", + "typeIdentifier": "t_array$_t_struct$_G2Point_$1043_memory_$dyn_memory_ptr", "typeString": "struct Pairing.G2Point memory[] memory" } }, - "id": 459, + "id": 1487, "indexExpression": { "argumentTypes": null, "hexValue": "30", - "id": 458, + "id": 1486, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "6358:1:0", + "src": "6358:1:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -6103,9 +6103,9 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "6355:5:0", + "src": "6355:5:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G2Point_$15_memory", + "typeIdentifier": "t_struct$_G2Point_$1043_memory", "typeString": "struct Pairing.G2Point memory" } }, @@ -6113,31 +6113,31 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 460, + "id": 1488, "name": "a2", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 406, - "src": "6363:2:0", + "referencedDeclaration": 1434, + "src": "6363:2:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G2Point_$15_memory_ptr", + "typeIdentifier": "t_struct$_G2Point_$1043_memory_ptr", "typeString": "struct Pairing.G2Point memory" } }, - "src": "6355:10:0", + "src": "6355:10:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G2Point_$15_memory", + "typeIdentifier": "t_struct$_G2Point_$1043_memory", "typeString": "struct Pairing.G2Point memory" } }, - "id": 462, + "id": 1490, "nodeType": "ExpressionStatement", - "src": "6355:10:0" + "src": "6355:10:4" }, { "expression": { "argumentTypes": null, - "id": 467, + "id": 1495, "isConstant": false, "isLValue": false, "isPure": false, @@ -6146,29 +6146,29 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 463, + "id": 1491, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 432, - "src": "6375:2:0", + "referencedDeclaration": 1460, + "src": "6375:2:4", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_G2Point_$15_memory_$dyn_memory_ptr", + "typeIdentifier": "t_array$_t_struct$_G2Point_$1043_memory_$dyn_memory_ptr", "typeString": "struct Pairing.G2Point memory[] memory" } }, - "id": 465, + "id": 1493, "indexExpression": { "argumentTypes": null, "hexValue": "31", - "id": 464, + "id": 1492, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "6378:1:0", + "src": "6378:1:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -6181,9 +6181,9 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "6375:5:0", + "src": "6375:5:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G2Point_$15_memory", + "typeIdentifier": "t_struct$_G2Point_$1043_memory", "typeString": "struct Pairing.G2Point memory" } }, @@ -6191,31 +6191,31 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 466, + "id": 1494, "name": "b2", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 410, - "src": "6383:2:0", + "referencedDeclaration": 1438, + "src": "6383:2:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G2Point_$15_memory_ptr", + "typeIdentifier": "t_struct$_G2Point_$1043_memory_ptr", "typeString": "struct Pairing.G2Point memory" } }, - "src": "6375:10:0", + "src": "6375:10:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G2Point_$15_memory", + "typeIdentifier": "t_struct$_G2Point_$1043_memory", "typeString": "struct Pairing.G2Point memory" } }, - "id": 468, + "id": 1496, "nodeType": "ExpressionStatement", - "src": "6375:10:0" + "src": "6375:10:4" }, { "expression": { "argumentTypes": null, - "id": 473, + "id": 1501, "isConstant": false, "isLValue": false, "isPure": false, @@ -6224,29 +6224,29 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 469, + "id": 1497, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 432, - "src": "6395:2:0", + "referencedDeclaration": 1460, + "src": "6395:2:4", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_G2Point_$15_memory_$dyn_memory_ptr", + "typeIdentifier": "t_array$_t_struct$_G2Point_$1043_memory_$dyn_memory_ptr", "typeString": "struct Pairing.G2Point memory[] memory" } }, - "id": 471, + "id": 1499, "indexExpression": { "argumentTypes": null, "hexValue": "32", - "id": 470, + "id": 1498, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "6398:1:0", + "src": "6398:1:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_2_by_1", @@ -6259,9 +6259,9 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "6395:5:0", + "src": "6395:5:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G2Point_$15_memory", + "typeIdentifier": "t_struct$_G2Point_$1043_memory", "typeString": "struct Pairing.G2Point memory" } }, @@ -6269,26 +6269,26 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 472, + "id": 1500, "name": "c2", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 414, - "src": "6403:2:0", + "referencedDeclaration": 1442, + "src": "6403:2:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G2Point_$15_memory_ptr", + "typeIdentifier": "t_struct$_G2Point_$1043_memory_ptr", "typeString": "struct Pairing.G2Point memory" } }, - "src": "6395:10:0", + "src": "6395:10:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G2Point_$15_memory", + "typeIdentifier": "t_struct$_G2Point_$1043_memory", "typeString": "struct Pairing.G2Point memory" } }, - "id": 474, + "id": 1502, "nodeType": "ExpressionStatement", - "src": "6395:10:0" + "src": "6395:10:4" }, { "expression": { @@ -6296,27 +6296,27 @@ "arguments": [ { "argumentTypes": null, - "id": 476, + "id": 1504, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 422, - "src": "6430:2:0", + "referencedDeclaration": 1450, + "src": "6430:2:4", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_G1Point_$6_memory_$dyn_memory_ptr", + "typeIdentifier": "t_array$_t_struct$_G1Point_$1034_memory_$dyn_memory_ptr", "typeString": "struct Pairing.G1Point memory[] memory" } }, { "argumentTypes": null, - "id": 477, + "id": 1505, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 432, - "src": "6434:2:0", + "referencedDeclaration": 1460, + "src": "6434:2:4", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_G2Point_$15_memory_$dyn_memory_ptr", + "typeIdentifier": "t_array$_t_struct$_G2Point_$1043_memory_$dyn_memory_ptr", "typeString": "struct Pairing.G2Point memory[] memory" } } @@ -6324,26 +6324,26 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_array$_t_struct$_G1Point_$6_memory_$dyn_memory_ptr", + "typeIdentifier": "t_array$_t_struct$_G1Point_$1034_memory_$dyn_memory_ptr", "typeString": "struct Pairing.G1Point memory[] memory" }, { - "typeIdentifier": "t_array$_t_struct$_G2Point_$15_memory_$dyn_memory_ptr", + "typeIdentifier": "t_array$_t_struct$_G2Point_$1043_memory_$dyn_memory_ptr", "typeString": "struct Pairing.G2Point memory[] memory" } ], - "id": 475, + "id": 1503, "name": "pairing", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 339, - "src": "6422:7:0", + "referencedDeclaration": 1367, + "src": "6422:7:4", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_array$_t_struct$_G1Point_$6_memory_$dyn_memory_ptr_$_t_array$_t_struct$_G2Point_$15_memory_$dyn_memory_ptr_$returns$_t_bool_$", + "typeIdentifier": "t_function_internal_view$_t_array$_t_struct$_G1Point_$1034_memory_$dyn_memory_ptr_$_t_array$_t_struct$_G2Point_$1043_memory_$dyn_memory_ptr_$returns$_t_bool_$", "typeString": "function (struct Pairing.G1Point memory[] memory,struct Pairing.G2Point memory[] memory) view returns (bool)" } }, - "id": 478, + "id": 1506, "isConstant": false, "isLValue": false, "isPure": false, @@ -6351,52 +6351,52 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6422:15:0", + "src": "6422:15:4", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "functionReturnParameters": 418, - "id": 479, + "functionReturnParameters": 1446, + "id": 1507, "nodeType": "Return", - "src": "6415:22:0" + "src": "6415:22:4" } ] }, "documentation": "Convenience method for a pairing check for three pairs.", - "id": 481, + "id": 1509, "implemented": true, "kind": "function", "modifiers": [], "name": "pairingProd3", "nodeType": "FunctionDefinition", "parameters": { - "id": 415, + "id": 1443, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 404, + "id": 1432, "name": "a1", "nodeType": "VariableDeclaration", - "scope": 481, - "src": "6017:17:0", + "scope": 1509, + "src": "6017:17:4", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_memory_ptr", + "typeIdentifier": "t_struct$_G1Point_$1034_memory_ptr", "typeString": "struct Pairing.G1Point" }, "typeName": { "contractScope": null, - "id": 403, + "id": 1431, "name": "G1Point", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 6, - "src": "6017:7:0", + "referencedDeclaration": 1034, + "src": "6017:7:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_storage_ptr", + "typeIdentifier": "t_struct$_G1Point_$1034_storage_ptr", "typeString": "struct Pairing.G1Point" } }, @@ -6405,26 +6405,26 @@ }, { "constant": false, - "id": 406, + "id": 1434, "name": "a2", "nodeType": "VariableDeclaration", - "scope": 481, - "src": "6036:17:0", + "scope": 1509, + "src": "6036:17:4", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_struct$_G2Point_$15_memory_ptr", + "typeIdentifier": "t_struct$_G2Point_$1043_memory_ptr", "typeString": "struct Pairing.G2Point" }, "typeName": { "contractScope": null, - "id": 405, + "id": 1433, "name": "G2Point", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 15, - "src": "6036:7:0", + "referencedDeclaration": 1043, + "src": "6036:7:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G2Point_$15_storage_ptr", + "typeIdentifier": "t_struct$_G2Point_$1043_storage_ptr", "typeString": "struct Pairing.G2Point" } }, @@ -6433,26 +6433,26 @@ }, { "constant": false, - "id": 408, + "id": 1436, "name": "b1", "nodeType": "VariableDeclaration", - "scope": 481, - "src": "6067:17:0", + "scope": 1509, + "src": "6067:17:4", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_memory_ptr", + "typeIdentifier": "t_struct$_G1Point_$1034_memory_ptr", "typeString": "struct Pairing.G1Point" }, "typeName": { "contractScope": null, - "id": 407, + "id": 1435, "name": "G1Point", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 6, - "src": "6067:7:0", + "referencedDeclaration": 1034, + "src": "6067:7:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_storage_ptr", + "typeIdentifier": "t_struct$_G1Point_$1034_storage_ptr", "typeString": "struct Pairing.G1Point" } }, @@ -6461,26 +6461,26 @@ }, { "constant": false, - "id": 410, + "id": 1438, "name": "b2", "nodeType": "VariableDeclaration", - "scope": 481, - "src": "6086:17:0", + "scope": 1509, + "src": "6086:17:4", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_struct$_G2Point_$15_memory_ptr", + "typeIdentifier": "t_struct$_G2Point_$1043_memory_ptr", "typeString": "struct Pairing.G2Point" }, "typeName": { "contractScope": null, - "id": 409, + "id": 1437, "name": "G2Point", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 15, - "src": "6086:7:0", + "referencedDeclaration": 1043, + "src": "6086:7:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G2Point_$15_storage_ptr", + "typeIdentifier": "t_struct$_G2Point_$1043_storage_ptr", "typeString": "struct Pairing.G2Point" } }, @@ -6489,26 +6489,26 @@ }, { "constant": false, - "id": 412, + "id": 1440, "name": "c1", "nodeType": "VariableDeclaration", - "scope": 481, - "src": "6117:17:0", + "scope": 1509, + "src": "6117:17:4", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_memory_ptr", + "typeIdentifier": "t_struct$_G1Point_$1034_memory_ptr", "typeString": "struct Pairing.G1Point" }, "typeName": { "contractScope": null, - "id": 411, + "id": 1439, "name": "G1Point", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 6, - "src": "6117:7:0", + "referencedDeclaration": 1034, + "src": "6117:7:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_storage_ptr", + "typeIdentifier": "t_struct$_G1Point_$1034_storage_ptr", "typeString": "struct Pairing.G1Point" } }, @@ -6517,26 +6517,26 @@ }, { "constant": false, - "id": 414, + "id": 1442, "name": "c2", "nodeType": "VariableDeclaration", - "scope": 481, - "src": "6136:17:0", + "scope": 1509, + "src": "6136:17:4", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_struct$_G2Point_$15_memory_ptr", + "typeIdentifier": "t_struct$_G2Point_$1043_memory_ptr", "typeString": "struct Pairing.G2Point" }, "typeName": { "contractScope": null, - "id": 413, + "id": 1441, "name": "G2Point", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 15, - "src": "6136:7:0", + "referencedDeclaration": 1043, + "src": "6136:7:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G2Point_$15_storage_ptr", + "typeIdentifier": "t_struct$_G2Point_$1043_storage_ptr", "typeString": "struct Pairing.G2Point" } }, @@ -6544,19 +6544,19 @@ "visibility": "internal" } ], - "src": "6003:156:0" + "src": "6003:156:4" }, "returnParameters": { - "id": 418, + "id": 1446, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 417, + "id": 1445, "name": "", "nodeType": "VariableDeclaration", - "scope": 481, - "src": "6183:4:0", + "scope": 1509, + "src": "6183:4:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6564,10 +6564,10 @@ "typeString": "bool" }, "typeName": { - "id": 416, + "id": 1444, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "6183:4:0", + "src": "6183:4:4", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -6577,57 +6577,57 @@ "visibility": "internal" } ], - "src": "6182:6:0" + "src": "6182:6:4" }, - "scope": 577, - "src": "5982:462:0", + "scope": 1605, + "src": "5982:462:4", "stateMutability": "view", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 575, + "id": 1603, "nodeType": "Block", - "src": "6769:295:0", + "src": "6769:295:4", "statements": [ { "assignments": [ - 505 + 1533 ], "declarations": [ { "constant": false, - "id": 505, + "id": 1533, "name": "p1", "nodeType": "VariableDeclaration", - "scope": 575, - "src": "6779:19:0", + "scope": 1603, + "src": "6779:19:4", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_G1Point_$6_memory_$dyn_memory_ptr", + "typeIdentifier": "t_array$_t_struct$_G1Point_$1034_memory_$dyn_memory_ptr", "typeString": "struct Pairing.G1Point[]" }, "typeName": { "baseType": { "contractScope": null, - "id": 503, + "id": 1531, "name": "G1Point", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 6, - "src": "6779:7:0", + "referencedDeclaration": 1034, + "src": "6779:7:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_storage_ptr", + "typeIdentifier": "t_struct$_G1Point_$1034_storage_ptr", "typeString": "struct Pairing.G1Point" } }, - "id": 504, + "id": 1532, "length": null, "nodeType": "ArrayTypeName", - "src": "6779:9:0", + "src": "6779:9:4", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_G1Point_$6_storage_$dyn_storage_ptr", + "typeIdentifier": "t_array$_t_struct$_G1Point_$1034_storage_$dyn_storage_ptr", "typeString": "struct Pairing.G1Point[]" } }, @@ -6635,21 +6635,21 @@ "visibility": "internal" } ], - "id": 511, + "id": 1539, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "34", - "id": 509, + "id": 1537, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "6815:1:0", + "src": "6815:1:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_4_by_1", @@ -6665,41 +6665,41 @@ "typeString": "int_const 4" } ], - "id": 508, + "id": 1536, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "NewExpression", - "src": "6801:13:0", + "src": "6801:13:4", "typeDescriptions": { - "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_G1Point_$6_memory_$dyn_memory_$", + "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_G1Point_$1034_memory_$dyn_memory_$", "typeString": "function (uint256) pure returns (struct Pairing.G1Point memory[] memory)" }, "typeName": { "baseType": { "contractScope": null, - "id": 506, + "id": 1534, "name": "G1Point", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 6, - "src": "6805:7:0", + "referencedDeclaration": 1034, + "src": "6805:7:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_storage_ptr", + "typeIdentifier": "t_struct$_G1Point_$1034_storage_ptr", "typeString": "struct Pairing.G1Point" } }, - "id": 507, + "id": 1535, "length": null, "nodeType": "ArrayTypeName", - "src": "6805:9:0", + "src": "6805:9:4", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_G1Point_$6_storage_$dyn_storage_ptr", + "typeIdentifier": "t_array$_t_struct$_G1Point_$1034_storage_$dyn_storage_ptr", "typeString": "struct Pairing.G1Point[]" } } }, - "id": 510, + "id": 1538, "isConstant": false, "isLValue": false, "isPure": true, @@ -6707,52 +6707,52 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6801:16:0", + "src": "6801:16:4", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_G1Point_$6_memory_$dyn_memory", + "typeIdentifier": "t_array$_t_struct$_G1Point_$1034_memory_$dyn_memory", "typeString": "struct Pairing.G1Point memory[] memory" } }, "nodeType": "VariableDeclarationStatement", - "src": "6779:38:0" + "src": "6779:38:4" }, { "assignments": [ - 515 + 1543 ], "declarations": [ { "constant": false, - "id": 515, + "id": 1543, "name": "p2", "nodeType": "VariableDeclaration", - "scope": 575, - "src": "6827:19:0", + "scope": 1603, + "src": "6827:19:4", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_G2Point_$15_memory_$dyn_memory_ptr", + "typeIdentifier": "t_array$_t_struct$_G2Point_$1043_memory_$dyn_memory_ptr", "typeString": "struct Pairing.G2Point[]" }, "typeName": { "baseType": { "contractScope": null, - "id": 513, + "id": 1541, "name": "G2Point", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 15, - "src": "6827:7:0", + "referencedDeclaration": 1043, + "src": "6827:7:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G2Point_$15_storage_ptr", + "typeIdentifier": "t_struct$_G2Point_$1043_storage_ptr", "typeString": "struct Pairing.G2Point" } }, - "id": 514, + "id": 1542, "length": null, "nodeType": "ArrayTypeName", - "src": "6827:9:0", + "src": "6827:9:4", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_G2Point_$15_storage_$dyn_storage_ptr", + "typeIdentifier": "t_array$_t_struct$_G2Point_$1043_storage_$dyn_storage_ptr", "typeString": "struct Pairing.G2Point[]" } }, @@ -6760,21 +6760,21 @@ "visibility": "internal" } ], - "id": 521, + "id": 1549, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "34", - "id": 519, + "id": 1547, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "6863:1:0", + "src": "6863:1:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_4_by_1", @@ -6790,41 +6790,41 @@ "typeString": "int_const 4" } ], - "id": 518, + "id": 1546, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "NewExpression", - "src": "6849:13:0", + "src": "6849:13:4", "typeDescriptions": { - "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_G2Point_$15_memory_$dyn_memory_$", + "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_G2Point_$1043_memory_$dyn_memory_$", "typeString": "function (uint256) pure returns (struct Pairing.G2Point memory[] memory)" }, "typeName": { "baseType": { "contractScope": null, - "id": 516, + "id": 1544, "name": "G2Point", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 15, - "src": "6853:7:0", + "referencedDeclaration": 1043, + "src": "6853:7:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G2Point_$15_storage_ptr", + "typeIdentifier": "t_struct$_G2Point_$1043_storage_ptr", "typeString": "struct Pairing.G2Point" } }, - "id": 517, + "id": 1545, "length": null, "nodeType": "ArrayTypeName", - "src": "6853:9:0", + "src": "6853:9:4", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_G2Point_$15_storage_$dyn_storage_ptr", + "typeIdentifier": "t_array$_t_struct$_G2Point_$1043_storage_$dyn_storage_ptr", "typeString": "struct Pairing.G2Point[]" } } }, - "id": 520, + "id": 1548, "isConstant": false, "isLValue": false, "isPure": true, @@ -6832,19 +6832,19 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6849:16:0", + "src": "6849:16:4", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_G2Point_$15_memory_$dyn_memory", + "typeIdentifier": "t_array$_t_struct$_G2Point_$1043_memory_$dyn_memory", "typeString": "struct Pairing.G2Point memory[] memory" } }, "nodeType": "VariableDeclarationStatement", - "src": "6827:38:0" + "src": "6827:38:4" }, { "expression": { "argumentTypes": null, - "id": 526, + "id": 1554, "isConstant": false, "isLValue": false, "isPure": false, @@ -6853,29 +6853,29 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 522, + "id": 1550, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 505, - "src": "6875:2:0", + "referencedDeclaration": 1533, + "src": "6875:2:4", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_G1Point_$6_memory_$dyn_memory_ptr", + "typeIdentifier": "t_array$_t_struct$_G1Point_$1034_memory_$dyn_memory_ptr", "typeString": "struct Pairing.G1Point memory[] memory" } }, - "id": 524, + "id": 1552, "indexExpression": { "argumentTypes": null, "hexValue": "30", - "id": 523, + "id": 1551, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "6878:1:0", + "src": "6878:1:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -6888,9 +6888,9 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "6875:5:0", + "src": "6875:5:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_memory", + "typeIdentifier": "t_struct$_G1Point_$1034_memory", "typeString": "struct Pairing.G1Point memory" } }, @@ -6898,31 +6898,31 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 525, + "id": 1553, "name": "a1", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 483, - "src": "6883:2:0", + "referencedDeclaration": 1511, + "src": "6883:2:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_memory_ptr", + "typeIdentifier": "t_struct$_G1Point_$1034_memory_ptr", "typeString": "struct Pairing.G1Point memory" } }, - "src": "6875:10:0", + "src": "6875:10:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_memory", + "typeIdentifier": "t_struct$_G1Point_$1034_memory", "typeString": "struct Pairing.G1Point memory" } }, - "id": 527, + "id": 1555, "nodeType": "ExpressionStatement", - "src": "6875:10:0" + "src": "6875:10:4" }, { "expression": { "argumentTypes": null, - "id": 532, + "id": 1560, "isConstant": false, "isLValue": false, "isPure": false, @@ -6931,29 +6931,29 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 528, + "id": 1556, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 505, - "src": "6895:2:0", + "referencedDeclaration": 1533, + "src": "6895:2:4", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_G1Point_$6_memory_$dyn_memory_ptr", + "typeIdentifier": "t_array$_t_struct$_G1Point_$1034_memory_$dyn_memory_ptr", "typeString": "struct Pairing.G1Point memory[] memory" } }, - "id": 530, + "id": 1558, "indexExpression": { "argumentTypes": null, "hexValue": "31", - "id": 529, + "id": 1557, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "6898:1:0", + "src": "6898:1:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -6966,9 +6966,9 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "6895:5:0", + "src": "6895:5:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_memory", + "typeIdentifier": "t_struct$_G1Point_$1034_memory", "typeString": "struct Pairing.G1Point memory" } }, @@ -6976,31 +6976,31 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 531, + "id": 1559, "name": "b1", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 487, - "src": "6903:2:0", + "referencedDeclaration": 1515, + "src": "6903:2:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_memory_ptr", + "typeIdentifier": "t_struct$_G1Point_$1034_memory_ptr", "typeString": "struct Pairing.G1Point memory" } }, - "src": "6895:10:0", + "src": "6895:10:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_memory", + "typeIdentifier": "t_struct$_G1Point_$1034_memory", "typeString": "struct Pairing.G1Point memory" } }, - "id": 533, + "id": 1561, "nodeType": "ExpressionStatement", - "src": "6895:10:0" + "src": "6895:10:4" }, { "expression": { "argumentTypes": null, - "id": 538, + "id": 1566, "isConstant": false, "isLValue": false, "isPure": false, @@ -7009,29 +7009,29 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 534, + "id": 1562, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 505, - "src": "6915:2:0", + "referencedDeclaration": 1533, + "src": "6915:2:4", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_G1Point_$6_memory_$dyn_memory_ptr", + "typeIdentifier": "t_array$_t_struct$_G1Point_$1034_memory_$dyn_memory_ptr", "typeString": "struct Pairing.G1Point memory[] memory" } }, - "id": 536, + "id": 1564, "indexExpression": { "argumentTypes": null, "hexValue": "32", - "id": 535, + "id": 1563, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "6918:1:0", + "src": "6918:1:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_2_by_1", @@ -7044,9 +7044,9 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "6915:5:0", + "src": "6915:5:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_memory", + "typeIdentifier": "t_struct$_G1Point_$1034_memory", "typeString": "struct Pairing.G1Point memory" } }, @@ -7054,31 +7054,31 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 537, + "id": 1565, "name": "c1", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 491, - "src": "6923:2:0", + "referencedDeclaration": 1519, + "src": "6923:2:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_memory_ptr", + "typeIdentifier": "t_struct$_G1Point_$1034_memory_ptr", "typeString": "struct Pairing.G1Point memory" } }, - "src": "6915:10:0", + "src": "6915:10:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_memory", + "typeIdentifier": "t_struct$_G1Point_$1034_memory", "typeString": "struct Pairing.G1Point memory" } }, - "id": 539, + "id": 1567, "nodeType": "ExpressionStatement", - "src": "6915:10:0" + "src": "6915:10:4" }, { "expression": { "argumentTypes": null, - "id": 544, + "id": 1572, "isConstant": false, "isLValue": false, "isPure": false, @@ -7087,29 +7087,29 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 540, + "id": 1568, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 505, - "src": "6935:2:0", + "referencedDeclaration": 1533, + "src": "6935:2:4", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_G1Point_$6_memory_$dyn_memory_ptr", + "typeIdentifier": "t_array$_t_struct$_G1Point_$1034_memory_$dyn_memory_ptr", "typeString": "struct Pairing.G1Point memory[] memory" } }, - "id": 542, + "id": 1570, "indexExpression": { "argumentTypes": null, "hexValue": "33", - "id": 541, + "id": 1569, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "6938:1:0", + "src": "6938:1:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_3_by_1", @@ -7122,9 +7122,9 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "6935:5:0", + "src": "6935:5:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_memory", + "typeIdentifier": "t_struct$_G1Point_$1034_memory", "typeString": "struct Pairing.G1Point memory" } }, @@ -7132,31 +7132,31 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 543, + "id": 1571, "name": "d1", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 495, - "src": "6943:2:0", + "referencedDeclaration": 1523, + "src": "6943:2:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_memory_ptr", + "typeIdentifier": "t_struct$_G1Point_$1034_memory_ptr", "typeString": "struct Pairing.G1Point memory" } }, - "src": "6935:10:0", + "src": "6935:10:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_memory", + "typeIdentifier": "t_struct$_G1Point_$1034_memory", "typeString": "struct Pairing.G1Point memory" } }, - "id": 545, + "id": 1573, "nodeType": "ExpressionStatement", - "src": "6935:10:0" + "src": "6935:10:4" }, { "expression": { "argumentTypes": null, - "id": 550, + "id": 1578, "isConstant": false, "isLValue": false, "isPure": false, @@ -7165,29 +7165,29 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 546, + "id": 1574, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 515, - "src": "6955:2:0", + "referencedDeclaration": 1543, + "src": "6955:2:4", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_G2Point_$15_memory_$dyn_memory_ptr", + "typeIdentifier": "t_array$_t_struct$_G2Point_$1043_memory_$dyn_memory_ptr", "typeString": "struct Pairing.G2Point memory[] memory" } }, - "id": 548, + "id": 1576, "indexExpression": { "argumentTypes": null, "hexValue": "30", - "id": 547, + "id": 1575, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "6958:1:0", + "src": "6958:1:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -7200,9 +7200,9 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "6955:5:0", + "src": "6955:5:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G2Point_$15_memory", + "typeIdentifier": "t_struct$_G2Point_$1043_memory", "typeString": "struct Pairing.G2Point memory" } }, @@ -7210,31 +7210,31 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 549, + "id": 1577, "name": "a2", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 485, - "src": "6963:2:0", + "referencedDeclaration": 1513, + "src": "6963:2:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G2Point_$15_memory_ptr", + "typeIdentifier": "t_struct$_G2Point_$1043_memory_ptr", "typeString": "struct Pairing.G2Point memory" } }, - "src": "6955:10:0", + "src": "6955:10:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G2Point_$15_memory", + "typeIdentifier": "t_struct$_G2Point_$1043_memory", "typeString": "struct Pairing.G2Point memory" } }, - "id": 551, + "id": 1579, "nodeType": "ExpressionStatement", - "src": "6955:10:0" + "src": "6955:10:4" }, { "expression": { "argumentTypes": null, - "id": 556, + "id": 1584, "isConstant": false, "isLValue": false, "isPure": false, @@ -7243,29 +7243,29 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 552, + "id": 1580, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 515, - "src": "6975:2:0", + "referencedDeclaration": 1543, + "src": "6975:2:4", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_G2Point_$15_memory_$dyn_memory_ptr", + "typeIdentifier": "t_array$_t_struct$_G2Point_$1043_memory_$dyn_memory_ptr", "typeString": "struct Pairing.G2Point memory[] memory" } }, - "id": 554, + "id": 1582, "indexExpression": { "argumentTypes": null, "hexValue": "31", - "id": 553, + "id": 1581, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "6978:1:0", + "src": "6978:1:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -7278,9 +7278,9 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "6975:5:0", + "src": "6975:5:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G2Point_$15_memory", + "typeIdentifier": "t_struct$_G2Point_$1043_memory", "typeString": "struct Pairing.G2Point memory" } }, @@ -7288,31 +7288,31 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 555, + "id": 1583, "name": "b2", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 489, - "src": "6983:2:0", + "referencedDeclaration": 1517, + "src": "6983:2:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G2Point_$15_memory_ptr", + "typeIdentifier": "t_struct$_G2Point_$1043_memory_ptr", "typeString": "struct Pairing.G2Point memory" } }, - "src": "6975:10:0", + "src": "6975:10:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G2Point_$15_memory", + "typeIdentifier": "t_struct$_G2Point_$1043_memory", "typeString": "struct Pairing.G2Point memory" } }, - "id": 557, + "id": 1585, "nodeType": "ExpressionStatement", - "src": "6975:10:0" + "src": "6975:10:4" }, { "expression": { "argumentTypes": null, - "id": 562, + "id": 1590, "isConstant": false, "isLValue": false, "isPure": false, @@ -7321,29 +7321,29 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 558, + "id": 1586, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 515, - "src": "6995:2:0", + "referencedDeclaration": 1543, + "src": "6995:2:4", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_G2Point_$15_memory_$dyn_memory_ptr", + "typeIdentifier": "t_array$_t_struct$_G2Point_$1043_memory_$dyn_memory_ptr", "typeString": "struct Pairing.G2Point memory[] memory" } }, - "id": 560, + "id": 1588, "indexExpression": { "argumentTypes": null, "hexValue": "32", - "id": 559, + "id": 1587, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "6998:1:0", + "src": "6998:1:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_2_by_1", @@ -7356,9 +7356,9 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "6995:5:0", + "src": "6995:5:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G2Point_$15_memory", + "typeIdentifier": "t_struct$_G2Point_$1043_memory", "typeString": "struct Pairing.G2Point memory" } }, @@ -7366,31 +7366,31 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 561, + "id": 1589, "name": "c2", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 493, - "src": "7003:2:0", + "referencedDeclaration": 1521, + "src": "7003:2:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G2Point_$15_memory_ptr", + "typeIdentifier": "t_struct$_G2Point_$1043_memory_ptr", "typeString": "struct Pairing.G2Point memory" } }, - "src": "6995:10:0", + "src": "6995:10:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G2Point_$15_memory", + "typeIdentifier": "t_struct$_G2Point_$1043_memory", "typeString": "struct Pairing.G2Point memory" } }, - "id": 563, + "id": 1591, "nodeType": "ExpressionStatement", - "src": "6995:10:0" + "src": "6995:10:4" }, { "expression": { "argumentTypes": null, - "id": 568, + "id": 1596, "isConstant": false, "isLValue": false, "isPure": false, @@ -7399,29 +7399,29 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 564, + "id": 1592, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 515, - "src": "7015:2:0", + "referencedDeclaration": 1543, + "src": "7015:2:4", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_G2Point_$15_memory_$dyn_memory_ptr", + "typeIdentifier": "t_array$_t_struct$_G2Point_$1043_memory_$dyn_memory_ptr", "typeString": "struct Pairing.G2Point memory[] memory" } }, - "id": 566, + "id": 1594, "indexExpression": { "argumentTypes": null, "hexValue": "33", - "id": 565, + "id": 1593, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "7018:1:0", + "src": "7018:1:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_3_by_1", @@ -7434,9 +7434,9 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "7015:5:0", + "src": "7015:5:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G2Point_$15_memory", + "typeIdentifier": "t_struct$_G2Point_$1043_memory", "typeString": "struct Pairing.G2Point memory" } }, @@ -7444,26 +7444,26 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 567, + "id": 1595, "name": "d2", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 497, - "src": "7023:2:0", + "referencedDeclaration": 1525, + "src": "7023:2:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G2Point_$15_memory_ptr", + "typeIdentifier": "t_struct$_G2Point_$1043_memory_ptr", "typeString": "struct Pairing.G2Point memory" } }, - "src": "7015:10:0", + "src": "7015:10:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G2Point_$15_memory", + "typeIdentifier": "t_struct$_G2Point_$1043_memory", "typeString": "struct Pairing.G2Point memory" } }, - "id": 569, + "id": 1597, "nodeType": "ExpressionStatement", - "src": "7015:10:0" + "src": "7015:10:4" }, { "expression": { @@ -7471,27 +7471,27 @@ "arguments": [ { "argumentTypes": null, - "id": 571, + "id": 1599, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 505, - "src": "7050:2:0", + "referencedDeclaration": 1533, + "src": "7050:2:4", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_G1Point_$6_memory_$dyn_memory_ptr", + "typeIdentifier": "t_array$_t_struct$_G1Point_$1034_memory_$dyn_memory_ptr", "typeString": "struct Pairing.G1Point memory[] memory" } }, { "argumentTypes": null, - "id": 572, + "id": 1600, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 515, - "src": "7054:2:0", + "referencedDeclaration": 1543, + "src": "7054:2:4", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_G2Point_$15_memory_$dyn_memory_ptr", + "typeIdentifier": "t_array$_t_struct$_G2Point_$1043_memory_$dyn_memory_ptr", "typeString": "struct Pairing.G2Point memory[] memory" } } @@ -7499,26 +7499,26 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_array$_t_struct$_G1Point_$6_memory_$dyn_memory_ptr", + "typeIdentifier": "t_array$_t_struct$_G1Point_$1034_memory_$dyn_memory_ptr", "typeString": "struct Pairing.G1Point memory[] memory" }, { - "typeIdentifier": "t_array$_t_struct$_G2Point_$15_memory_$dyn_memory_ptr", + "typeIdentifier": "t_array$_t_struct$_G2Point_$1043_memory_$dyn_memory_ptr", "typeString": "struct Pairing.G2Point memory[] memory" } ], - "id": 570, + "id": 1598, "name": "pairing", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 339, - "src": "7042:7:0", + "referencedDeclaration": 1367, + "src": "7042:7:4", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_array$_t_struct$_G1Point_$6_memory_$dyn_memory_ptr_$_t_array$_t_struct$_G2Point_$15_memory_$dyn_memory_ptr_$returns$_t_bool_$", + "typeIdentifier": "t_function_internal_view$_t_array$_t_struct$_G1Point_$1034_memory_$dyn_memory_ptr_$_t_array$_t_struct$_G2Point_$1043_memory_$dyn_memory_ptr_$returns$_t_bool_$", "typeString": "function (struct Pairing.G1Point memory[] memory,struct Pairing.G2Point memory[] memory) view returns (bool)" } }, - "id": 573, + "id": 1601, "isConstant": false, "isLValue": false, "isPure": false, @@ -7526,52 +7526,52 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7042:15:0", + "src": "7042:15:4", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "functionReturnParameters": 501, - "id": 574, + "functionReturnParameters": 1529, + "id": 1602, "nodeType": "Return", - "src": "7035:22:0" + "src": "7035:22:4" } ] }, "documentation": "Convenience method for a pairing check for four pairs.", - "id": 576, + "id": 1604, "implemented": true, "kind": "function", "modifiers": [], "name": "pairingProd4", "nodeType": "FunctionDefinition", "parameters": { - "id": 498, + "id": 1526, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 483, + "id": 1511, "name": "a1", "nodeType": "VariableDeclaration", - "scope": 576, - "src": "6547:17:0", + "scope": 1604, + "src": "6547:17:4", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_memory_ptr", + "typeIdentifier": "t_struct$_G1Point_$1034_memory_ptr", "typeString": "struct Pairing.G1Point" }, "typeName": { "contractScope": null, - "id": 482, + "id": 1510, "name": "G1Point", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 6, - "src": "6547:7:0", + "referencedDeclaration": 1034, + "src": "6547:7:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_storage_ptr", + "typeIdentifier": "t_struct$_G1Point_$1034_storage_ptr", "typeString": "struct Pairing.G1Point" } }, @@ -7580,26 +7580,26 @@ }, { "constant": false, - "id": 485, + "id": 1513, "name": "a2", "nodeType": "VariableDeclaration", - "scope": 576, - "src": "6566:17:0", + "scope": 1604, + "src": "6566:17:4", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_struct$_G2Point_$15_memory_ptr", + "typeIdentifier": "t_struct$_G2Point_$1043_memory_ptr", "typeString": "struct Pairing.G2Point" }, "typeName": { "contractScope": null, - "id": 484, + "id": 1512, "name": "G2Point", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 15, - "src": "6566:7:0", + "referencedDeclaration": 1043, + "src": "6566:7:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G2Point_$15_storage_ptr", + "typeIdentifier": "t_struct$_G2Point_$1043_storage_ptr", "typeString": "struct Pairing.G2Point" } }, @@ -7608,26 +7608,26 @@ }, { "constant": false, - "id": 487, + "id": 1515, "name": "b1", "nodeType": "VariableDeclaration", - "scope": 576, - "src": "6597:17:0", + "scope": 1604, + "src": "6597:17:4", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_memory_ptr", + "typeIdentifier": "t_struct$_G1Point_$1034_memory_ptr", "typeString": "struct Pairing.G1Point" }, "typeName": { "contractScope": null, - "id": 486, + "id": 1514, "name": "G1Point", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 6, - "src": "6597:7:0", + "referencedDeclaration": 1034, + "src": "6597:7:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_storage_ptr", + "typeIdentifier": "t_struct$_G1Point_$1034_storage_ptr", "typeString": "struct Pairing.G1Point" } }, @@ -7636,26 +7636,26 @@ }, { "constant": false, - "id": 489, + "id": 1517, "name": "b2", "nodeType": "VariableDeclaration", - "scope": 576, - "src": "6616:17:0", + "scope": 1604, + "src": "6616:17:4", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_struct$_G2Point_$15_memory_ptr", + "typeIdentifier": "t_struct$_G2Point_$1043_memory_ptr", "typeString": "struct Pairing.G2Point" }, "typeName": { "contractScope": null, - "id": 488, + "id": 1516, "name": "G2Point", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 15, - "src": "6616:7:0", + "referencedDeclaration": 1043, + "src": "6616:7:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G2Point_$15_storage_ptr", + "typeIdentifier": "t_struct$_G2Point_$1043_storage_ptr", "typeString": "struct Pairing.G2Point" } }, @@ -7664,26 +7664,26 @@ }, { "constant": false, - "id": 491, + "id": 1519, "name": "c1", "nodeType": "VariableDeclaration", - "scope": 576, - "src": "6647:17:0", + "scope": 1604, + "src": "6647:17:4", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_memory_ptr", + "typeIdentifier": "t_struct$_G1Point_$1034_memory_ptr", "typeString": "struct Pairing.G1Point" }, "typeName": { "contractScope": null, - "id": 490, + "id": 1518, "name": "G1Point", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 6, - "src": "6647:7:0", + "referencedDeclaration": 1034, + "src": "6647:7:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_storage_ptr", + "typeIdentifier": "t_struct$_G1Point_$1034_storage_ptr", "typeString": "struct Pairing.G1Point" } }, @@ -7692,26 +7692,26 @@ }, { "constant": false, - "id": 493, + "id": 1521, "name": "c2", "nodeType": "VariableDeclaration", - "scope": 576, - "src": "6666:17:0", + "scope": 1604, + "src": "6666:17:4", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_struct$_G2Point_$15_memory_ptr", + "typeIdentifier": "t_struct$_G2Point_$1043_memory_ptr", "typeString": "struct Pairing.G2Point" }, "typeName": { "contractScope": null, - "id": 492, + "id": 1520, "name": "G2Point", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 15, - "src": "6666:7:0", + "referencedDeclaration": 1043, + "src": "6666:7:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G2Point_$15_storage_ptr", + "typeIdentifier": "t_struct$_G2Point_$1043_storage_ptr", "typeString": "struct Pairing.G2Point" } }, @@ -7720,26 +7720,26 @@ }, { "constant": false, - "id": 495, + "id": 1523, "name": "d1", "nodeType": "VariableDeclaration", - "scope": 576, - "src": "6697:17:0", + "scope": 1604, + "src": "6697:17:4", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_memory_ptr", + "typeIdentifier": "t_struct$_G1Point_$1034_memory_ptr", "typeString": "struct Pairing.G1Point" }, "typeName": { "contractScope": null, - "id": 494, + "id": 1522, "name": "G1Point", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 6, - "src": "6697:7:0", + "referencedDeclaration": 1034, + "src": "6697:7:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_storage_ptr", + "typeIdentifier": "t_struct$_G1Point_$1034_storage_ptr", "typeString": "struct Pairing.G1Point" } }, @@ -7748,26 +7748,26 @@ }, { "constant": false, - "id": 497, + "id": 1525, "name": "d2", "nodeType": "VariableDeclaration", - "scope": 576, - "src": "6716:17:0", + "scope": 1604, + "src": "6716:17:4", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_struct$_G2Point_$15_memory_ptr", + "typeIdentifier": "t_struct$_G2Point_$1043_memory_ptr", "typeString": "struct Pairing.G2Point" }, "typeName": { "contractScope": null, - "id": 496, + "id": 1524, "name": "G2Point", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 15, - "src": "6716:7:0", + "referencedDeclaration": 1043, + "src": "6716:7:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G2Point_$15_storage_ptr", + "typeIdentifier": "t_struct$_G2Point_$1043_storage_ptr", "typeString": "struct Pairing.G2Point" } }, @@ -7775,19 +7775,19 @@ "visibility": "internal" } ], - "src": "6533:206:0" + "src": "6533:206:4" }, "returnParameters": { - "id": 501, + "id": 1529, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 500, + "id": 1528, "name": "", "nodeType": "VariableDeclaration", - "scope": 576, - "src": "6763:4:0", + "scope": 1604, + "src": "6763:4:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7795,10 +7795,10 @@ "typeString": "bool" }, "typeName": { - "id": 499, + "id": 1527, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "6763:4:0", + "src": "6763:4:4", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -7808,17 +7808,17 @@ "visibility": "internal" } ], - "src": "6762:6:0" + "src": "6762:6:4" }, - "scope": 577, - "src": "6512:552:0", + "scope": 1605, + "src": "6512:552:4", "stateMutability": "view", "superFunction": null, "visibility": "internal" } ], - "scope": 1059, - "src": "1217:5849:0" + "scope": 2087, + "src": "1217:5849:4" }, { "baseContracts": [], @@ -7826,57 +7826,57 @@ "contractKind": "contract", "documentation": null, "fullyImplemented": true, - "id": 1058, + "id": 2086, "linearizedBaseContracts": [ - 1058 + 2086 ], "name": "Verifier", "nodeType": "ContractDefinition", "nodes": [ { - "id": 579, + "id": 1607, "libraryName": { "contractScope": null, - "id": 578, + "id": 1606, "name": "Pairing", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 577, - "src": "7097:7:0", + "referencedDeclaration": 1605, + "src": "7097:7:4", "typeDescriptions": { - "typeIdentifier": "t_contract$_Pairing_$577", + "typeIdentifier": "t_contract$_Pairing_$1605", "typeString": "library Pairing" } }, "nodeType": "UsingForDirective", - "src": "7091:20:0", + "src": "7091:20:4", "typeName": null }, { "canonicalName": "Verifier.VerifyingKey", - "id": 591, + "id": 1619, "members": [ { "constant": false, - "id": 581, + "id": 1609, "name": "alfa1", "nodeType": "VariableDeclaration", - "scope": 591, - "src": "7146:21:0", + "scope": 1619, + "src": "7146:21:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_storage_ptr", + "typeIdentifier": "t_struct$_G1Point_$1034_storage_ptr", "typeString": "struct Pairing.G1Point" }, "typeName": { "contractScope": null, - "id": 580, + "id": 1608, "name": "Pairing.G1Point", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 6, - "src": "7146:15:0", + "referencedDeclaration": 1034, + "src": "7146:15:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_storage_ptr", + "typeIdentifier": "t_struct$_G1Point_$1034_storage_ptr", "typeString": "struct Pairing.G1Point" } }, @@ -7885,26 +7885,26 @@ }, { "constant": false, - "id": 583, + "id": 1611, "name": "beta2", "nodeType": "VariableDeclaration", - "scope": 591, - "src": "7177:21:0", + "scope": 1619, + "src": "7177:21:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_struct$_G2Point_$15_storage_ptr", + "typeIdentifier": "t_struct$_G2Point_$1043_storage_ptr", "typeString": "struct Pairing.G2Point" }, "typeName": { "contractScope": null, - "id": 582, + "id": 1610, "name": "Pairing.G2Point", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 15, - "src": "7177:15:0", + "referencedDeclaration": 1043, + "src": "7177:15:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G2Point_$15_storage_ptr", + "typeIdentifier": "t_struct$_G2Point_$1043_storage_ptr", "typeString": "struct Pairing.G2Point" } }, @@ -7913,26 +7913,26 @@ }, { "constant": false, - "id": 585, + "id": 1613, "name": "gamma2", "nodeType": "VariableDeclaration", - "scope": 591, - "src": "7208:22:0", + "scope": 1619, + "src": "7208:22:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_struct$_G2Point_$15_storage_ptr", + "typeIdentifier": "t_struct$_G2Point_$1043_storage_ptr", "typeString": "struct Pairing.G2Point" }, "typeName": { "contractScope": null, - "id": 584, + "id": 1612, "name": "Pairing.G2Point", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 15, - "src": "7208:15:0", + "referencedDeclaration": 1043, + "src": "7208:15:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G2Point_$15_storage_ptr", + "typeIdentifier": "t_struct$_G2Point_$1043_storage_ptr", "typeString": "struct Pairing.G2Point" } }, @@ -7941,26 +7941,26 @@ }, { "constant": false, - "id": 587, + "id": 1615, "name": "delta2", "nodeType": "VariableDeclaration", - "scope": 591, - "src": "7240:22:0", + "scope": 1619, + "src": "7240:22:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_struct$_G2Point_$15_storage_ptr", + "typeIdentifier": "t_struct$_G2Point_$1043_storage_ptr", "typeString": "struct Pairing.G2Point" }, "typeName": { "contractScope": null, - "id": 586, + "id": 1614, "name": "Pairing.G2Point", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 15, - "src": "7240:15:0", + "referencedDeclaration": 1043, + "src": "7240:15:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G2Point_$15_storage_ptr", + "typeIdentifier": "t_struct$_G2Point_$1043_storage_ptr", "typeString": "struct Pairing.G2Point" } }, @@ -7969,36 +7969,36 @@ }, { "constant": false, - "id": 590, + "id": 1618, "name": "IC", "nodeType": "VariableDeclaration", - "scope": 591, - "src": "7272:20:0", + "scope": 1619, + "src": "7272:20:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_G1Point_$6_storage_$dyn_storage_ptr", + "typeIdentifier": "t_array$_t_struct$_G1Point_$1034_storage_$dyn_storage_ptr", "typeString": "struct Pairing.G1Point[]" }, "typeName": { "baseType": { "contractScope": null, - "id": 588, + "id": 1616, "name": "Pairing.G1Point", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 6, - "src": "7272:15:0", + "referencedDeclaration": 1034, + "src": "7272:15:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_storage_ptr", + "typeIdentifier": "t_struct$_G1Point_$1034_storage_ptr", "typeString": "struct Pairing.G1Point" } }, - "id": 589, + "id": 1617, "length": null, "nodeType": "ArrayTypeName", - "src": "7272:17:0", + "src": "7272:17:4", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_G1Point_$6_storage_$dyn_storage_ptr", + "typeIdentifier": "t_array$_t_struct$_G1Point_$1034_storage_$dyn_storage_ptr", "typeString": "struct Pairing.G1Point[]" } }, @@ -8008,36 +8008,36 @@ ], "name": "VerifyingKey", "nodeType": "StructDefinition", - "scope": 1058, - "src": "7116:183:0", + "scope": 2086, + "src": "7116:183:4", "visibility": "public" }, { "canonicalName": "Verifier.Proof", - "id": 598, + "id": 1626, "members": [ { "constant": false, - "id": 593, + "id": 1621, "name": "A", "nodeType": "VariableDeclaration", - "scope": 598, - "src": "7327:17:0", + "scope": 1626, + "src": "7327:17:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_storage_ptr", + "typeIdentifier": "t_struct$_G1Point_$1034_storage_ptr", "typeString": "struct Pairing.G1Point" }, "typeName": { "contractScope": null, - "id": 592, + "id": 1620, "name": "Pairing.G1Point", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 6, - "src": "7327:15:0", + "referencedDeclaration": 1034, + "src": "7327:15:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_storage_ptr", + "typeIdentifier": "t_struct$_G1Point_$1034_storage_ptr", "typeString": "struct Pairing.G1Point" } }, @@ -8046,26 +8046,26 @@ }, { "constant": false, - "id": 595, + "id": 1623, "name": "B", "nodeType": "VariableDeclaration", - "scope": 598, - "src": "7354:17:0", + "scope": 1626, + "src": "7354:17:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_struct$_G2Point_$15_storage_ptr", + "typeIdentifier": "t_struct$_G2Point_$1043_storage_ptr", "typeString": "struct Pairing.G2Point" }, "typeName": { "contractScope": null, - "id": 594, + "id": 1622, "name": "Pairing.G2Point", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 15, - "src": "7354:15:0", + "referencedDeclaration": 1043, + "src": "7354:15:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G2Point_$15_storage_ptr", + "typeIdentifier": "t_struct$_G2Point_$1043_storage_ptr", "typeString": "struct Pairing.G2Point" } }, @@ -8074,26 +8074,26 @@ }, { "constant": false, - "id": 597, + "id": 1625, "name": "C", "nodeType": "VariableDeclaration", - "scope": 598, - "src": "7381:17:0", + "scope": 1626, + "src": "7381:17:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_storage_ptr", + "typeIdentifier": "t_struct$_G1Point_$1034_storage_ptr", "typeString": "struct Pairing.G1Point" }, "typeName": { "contractScope": null, - "id": 596, + "id": 1624, "name": "Pairing.G1Point", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 6, - "src": "7381:15:0", + "referencedDeclaration": 1034, + "src": "7381:15:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_storage_ptr", + "typeIdentifier": "t_struct$_G1Point_$1034_storage_ptr", "typeString": "struct Pairing.G1Point" } }, @@ -8103,20 +8103,20 @@ ], "name": "Proof", "nodeType": "StructDefinition", - "scope": 1058, - "src": "7304:101:0", + "scope": 2086, + "src": "7304:101:4", "visibility": "public" }, { "body": { - "id": 749, + "id": 1777, "nodeType": "Block", - "src": "7481:2642:0", + "src": "7481:2640:4", "statements": [ { "expression": { "argumentTypes": null, - "id": 611, + "id": 1639, "isConstant": false, "isLValue": false, "isPure": false, @@ -8125,28 +8125,28 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 603, + "id": 1631, "name": "vk", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 601, - "src": "7491:2:0", + "referencedDeclaration": 1629, + "src": "7491:2:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_VerifyingKey_$591_memory_ptr", + "typeIdentifier": "t_struct$_VerifyingKey_$1619_memory_ptr", "typeString": "struct Verifier.VerifyingKey memory" } }, - "id": 605, + "id": 1633, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberName": "alfa1", "nodeType": "MemberAccess", - "referencedDeclaration": 581, - "src": "7491:8:0", + "referencedDeclaration": 1609, + "src": "7491:8:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_memory", + "typeIdentifier": "t_struct$_G1Point_$1034_memory", "typeString": "struct Pairing.G1Point memory" } }, @@ -8157,80 +8157,80 @@ "arguments": [ { "argumentTypes": null, - "hexValue": "37313531373735343734373533303734333439363033393132383134383330383038313132363832333230353631393337383132393632363230343339393134353334393536303637333331", - "id": 608, + "hexValue": "3132343630343930373038323739343637333031323032373738333931313237353130353337363833393438323538303936373936393232313237313734323638303039313638303136373436", + "id": 1636, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "7518:76:0", + "src": "7518:77:4", "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_rational_7151775474753074349603912814830808112682320561937812962620439914534956067331_by_1", - "typeString": "int_const 7151...(68 digits omitted)...7331" + "typeIdentifier": "t_rational_12460490708279467301202778391127510537683948258096796922127174268009168016746_by_1", + "typeString": "int_const 1246...(69 digits omitted)...6746" }, - "value": "7151775474753074349603912814830808112682320561937812962620439914534956067331" + "value": "12460490708279467301202778391127510537683948258096796922127174268009168016746" }, { "argumentTypes": null, - "hexValue": "363832333737373032303938353935333931323730303237323730393637373537353338373633373037363139383734303831353131393531363234303632303832333235353139363734", - "id": 609, + "hexValue": "32303434303733363733373234363631363531353737343231333239373039323733303831383537303831323132383035383732383633363335353034393630353039323236343936323432", + "id": 1637, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "7595:75:0", + "src": "7596:76:4", "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_rational_682377702098595391270027270967757538763707619874081511951624062082325519674_by_1", - "typeString": "int_const 6823...(67 digits omitted)...9674" + "typeIdentifier": "t_rational_2044073673724661651577421329709273081857081212805872863635504960509226496242_by_1", + "typeString": "int_const 2044...(68 digits omitted)...6242" }, - "value": "682377702098595391270027270967757538763707619874081511951624062082325519674" + "value": "2044073673724661651577421329709273081857081212805872863635504960509226496242" } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_rational_7151775474753074349603912814830808112682320561937812962620439914534956067331_by_1", - "typeString": "int_const 7151...(68 digits omitted)...7331" + "typeIdentifier": "t_rational_12460490708279467301202778391127510537683948258096796922127174268009168016746_by_1", + "typeString": "int_const 1246...(69 digits omitted)...6746" }, { - "typeIdentifier": "t_rational_682377702098595391270027270967757538763707619874081511951624062082325519674_by_1", - "typeString": "int_const 6823...(67 digits omitted)...9674" + "typeIdentifier": "t_rational_2044073673724661651577421329709273081857081212805872863635504960509226496242_by_1", + "typeString": "int_const 2044...(68 digits omitted)...6242" } ], "expression": { "argumentTypes": null, - "id": 606, + "id": 1634, "name": "Pairing", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 577, - "src": "7502:7:0", + "referencedDeclaration": 1605, + "src": "7502:7:4", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Pairing_$577_$", + "typeIdentifier": "t_type$_t_contract$_Pairing_$1605_$", "typeString": "type(library Pairing)" } }, - "id": 607, + "id": 1635, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "G1Point", "nodeType": "MemberAccess", - "referencedDeclaration": 6, - "src": "7502:15:0", + "referencedDeclaration": 1034, + "src": "7502:15:4", "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_G1Point_$6_storage_ptr_$", + "typeIdentifier": "t_type$_t_struct$_G1Point_$1034_storage_ptr_$", "typeString": "type(struct Pairing.G1Point storage pointer)" } }, - "id": 610, + "id": 1638, "isConstant": false, "isLValue": false, "isPure": true, @@ -8238,26 +8238,26 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7502:169:0", + "src": "7502:171:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_memory", + "typeIdentifier": "t_struct$_G1Point_$1034_memory", "typeString": "struct Pairing.G1Point memory" } }, - "src": "7491:180:0", + "src": "7491:182:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_memory", + "typeIdentifier": "t_struct$_G1Point_$1034_memory", "typeString": "struct Pairing.G1Point memory" } }, - "id": 612, + "id": 1640, "nodeType": "ExpressionStatement", - "src": "7491:180:0" + "src": "7491:182:4" }, { "expression": { "argumentTypes": null, - "id": 625, + "id": 1653, "isConstant": false, "isLValue": false, "isPure": false, @@ -8266,28 +8266,28 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 613, + "id": 1641, "name": "vk", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 601, - "src": "7681:2:0", + "referencedDeclaration": 1629, + "src": "7683:2:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_VerifyingKey_$591_memory_ptr", + "typeIdentifier": "t_struct$_VerifyingKey_$1619_memory_ptr", "typeString": "struct Verifier.VerifyingKey memory" } }, - "id": 615, + "id": 1643, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberName": "beta2", "nodeType": "MemberAccess", - "referencedDeclaration": 583, - "src": "7681:8:0", + "referencedDeclaration": 1611, + "src": "7683:8:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G2Point_$15_memory", + "typeIdentifier": "t_struct$_G2Point_$1043_memory", "typeString": "struct Pairing.G2Point memory" } }, @@ -8301,49 +8301,49 @@ "components": [ { "argumentTypes": null, - "hexValue": "3230343734323732343536313130313932343936343930383235373630343836353434313039333537313234373231353331343435383733393339313435333133343333373333383234323230", - "id": 618, + "hexValue": "3136303837343930313933383736313631363337343438303435373034383837393233333934303730373439333031373239343031303432353238323037373830333037333533313438373534", + "id": 1646, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "7709:77:0", + "src": "7711:77:4", "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_rational_20474272456110192496490825760486544109357124721531445873939145313433733824220_by_1", - "typeString": "int_const 2047...(69 digits omitted)...4220" + "typeIdentifier": "t_rational_16087490193876161637448045704887923394070749301729401042528207780307353148754_by_1", + "typeString": "int_const 1608...(69 digits omitted)...8754" }, - "value": "20474272456110192496490825760486544109357124721531445873939145313433733824220" + "value": "16087490193876161637448045704887923394070749301729401042528207780307353148754" }, { "argumentTypes": null, - "hexValue": "3133323532383838383936303835353632373734383637363735323239313134373837383931363331363433373730343234343030333234323436323437303736323239333836303439353031", - "id": 619, + "hexValue": "34303437333135353438323330373136363730373932373131333634313439343830363238303436353434363338373339343331393436313130383337343130343033393232393533333032", + "id": 1647, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "7787:77:0", + "src": "7789:76:4", "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_rational_13252888896085562774867675229114787891631643770424400324246247076229386049501_by_1", - "typeString": "int_const 1325...(69 digits omitted)...9501" + "typeIdentifier": "t_rational_4047315548230716670792711364149480628046544638739431946110837410403922953302_by_1", + "typeString": "int_const 4047...(68 digits omitted)...3302" }, - "value": "13252888896085562774867675229114787891631643770424400324246247076229386049501" + "value": "4047315548230716670792711364149480628046544638739431946110837410403922953302" } ], - "id": 620, + "id": 1648, "isConstant": false, "isInlineArray": true, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "7708:157:0", + "src": "7710:156:4", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", "typeString": "uint256[2] memory" @@ -8354,49 +8354,49 @@ "components": [ { "argumentTypes": null, - "hexValue": "3134373834333739363130303334363334313837323034343233373138333536363933303930303731363839333736363838353834363234323830323931303137313634333739303036323333", - "id": 621, + "hexValue": "3134323633313537353839393235353033303235353238373932353232343434313030303538373731343134363933323733393435313439303332383839393230373735353938323431353138", + "id": 1649, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "7868:77:0", + "src": "7869:77:4", "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_rational_14784379610034634187204423718356693090071689376688584624280291017164379006233_by_1", - "typeString": "int_const 1478...(69 digits omitted)...6233" + "typeIdentifier": "t_rational_14263157589925503025528792522444100058771414693273945149032889920775598241518_by_1", + "typeString": "int_const 1426...(69 digits omitted)...1518" }, - "value": "14784379610034634187204423718356693090071689376688584624280291017164379006233" + "value": "14263157589925503025528792522444100058771414693273945149032889920775598241518" }, { "argumentTypes": null, - "hexValue": "3133303436353931323232343534333035383837313336373135313937323733373539333931353334323836303635383631343634343637393436303631393933363833383637323536343334", - "id": 622, + "hexValue": "32343033303839383232303531383538363434393835383038313639343634373537333735323530333032373535353932393934303039323934313130323337363136353532353935373538", + "id": 1650, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "7946:77:0", + "src": "7947:76:4", "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_rational_13046591222454305887136715197273759391534286065861464467946061993683867256434_by_1", - "typeString": "int_const 1304...(69 digits omitted)...6434" + "typeIdentifier": "t_rational_2403089822051858644985808169464757375250302755592994009294110237616552595758_by_1", + "typeString": "int_const 2403...(68 digits omitted)...5758" }, - "value": "13046591222454305887136715197273759391534286065861464467946061993683867256434" + "value": "2403089822051858644985808169464757375250302755592994009294110237616552595758" } ], - "id": 623, + "id": 1651, "isConstant": false, "isInlineArray": true, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "7867:157:0", + "src": "7868:156:4", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", "typeString": "uint256[2] memory" @@ -8416,32 +8416,32 @@ ], "expression": { "argumentTypes": null, - "id": 616, + "id": 1644, "name": "Pairing", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 577, - "src": "7692:7:0", + "referencedDeclaration": 1605, + "src": "7694:7:4", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Pairing_$577_$", + "typeIdentifier": "t_type$_t_contract$_Pairing_$1605_$", "typeString": "type(library Pairing)" } }, - "id": 617, + "id": 1645, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "G2Point", "nodeType": "MemberAccess", - "referencedDeclaration": 15, - "src": "7692:15:0", + "referencedDeclaration": 1043, + "src": "7694:15:4", "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_G2Point_$15_storage_ptr_$", + "typeIdentifier": "t_type$_t_struct$_G2Point_$1043_storage_ptr_$", "typeString": "type(struct Pairing.G2Point storage pointer)" } }, - "id": 624, + "id": 1652, "isConstant": false, "isLValue": false, "isPure": true, @@ -8449,26 +8449,26 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7692:333:0", + "src": "7694:331:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G2Point_$15_memory", + "typeIdentifier": "t_struct$_G2Point_$1043_memory", "typeString": "struct Pairing.G2Point memory" } }, - "src": "7681:344:0", + "src": "7683:342:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G2Point_$15_memory", + "typeIdentifier": "t_struct$_G2Point_$1043_memory", "typeString": "struct Pairing.G2Point memory" } }, - "id": 626, + "id": 1654, "nodeType": "ExpressionStatement", - "src": "7681:344:0" + "src": "7683:342:4" }, { "expression": { "argumentTypes": null, - "id": 639, + "id": 1667, "isConstant": false, "isLValue": false, "isPure": false, @@ -8477,28 +8477,28 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 627, + "id": 1655, "name": "vk", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 601, - "src": "8035:2:0", + "referencedDeclaration": 1629, + "src": "8035:2:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_VerifyingKey_$591_memory_ptr", + "typeIdentifier": "t_struct$_VerifyingKey_$1619_memory_ptr", "typeString": "struct Verifier.VerifyingKey memory" } }, - "id": 629, + "id": 1657, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberName": "gamma2", "nodeType": "MemberAccess", - "referencedDeclaration": 585, - "src": "8035:9:0", + "referencedDeclaration": 1613, + "src": "8035:9:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G2Point_$15_memory", + "typeIdentifier": "t_struct$_G2Point_$1043_memory", "typeString": "struct Pairing.G2Point memory" } }, @@ -8512,49 +8512,49 @@ "components": [ { "argumentTypes": null, - "hexValue": "3231303432373935333335333631343335393232333334393130393332363032363033323739323834303338353139383439333238383234313632313138373839343936323039323430363432", - "id": 632, + "hexValue": "3138313233323736333034313237313630343338333933383031303838373137333138373831313938313332393631333938373933373630383132373439323537313836303633303134333337", + "id": 1660, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "8064:77:0", + "src": "8064:77:4", "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_rational_21042795335361435922334910932602603279284038519849328824162118789496209240642_by_1", - "typeString": "int_const 2104...(69 digits omitted)...0642" + "typeIdentifier": "t_rational_18123276304127160438393801088717318781198132961398793760812749257186063014337_by_1", + "typeString": "int_const 1812...(69 digits omitted)...4337" }, - "value": "21042795335361435922334910932602603279284038519849328824162118789496209240642" + "value": "18123276304127160438393801088717318781198132961398793760812749257186063014337" }, { "argumentTypes": null, - "hexValue": "3139393038323532333531353437393538353637353439363939363230303230383531313638393636303738393831313230393232313030313838393031393335343238323334333335323434", - "id": 633, + "hexValue": "3137363037343233313035333133333335353235343332383639363637363739333532363234393234303636353935373537303332373137373832333939383232323537303230353033313337", + "id": 1661, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "8142:77:0", + "src": "8142:77:4", "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_rational_19908252351547958567549699620020851168966078981120922100188901935428234335244_by_1", - "typeString": "int_const 1990...(69 digits omitted)...5244" + "typeIdentifier": "t_rational_17607423105313335525432869667679352624924066595757032717782399822257020503137_by_1", + "typeString": "int_const 1760...(69 digits omitted)...3137" }, - "value": "19908252351547958567549699620020851168966078981120922100188901935428234335244" + "value": "17607423105313335525432869667679352624924066595757032717782399822257020503137" } ], - "id": 634, + "id": 1662, "isConstant": false, "isInlineArray": true, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "8063:157:0", + "src": "8063:157:4", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", "typeString": "uint256[2] memory" @@ -8565,49 +8565,49 @@ "components": [ { "argumentTypes": null, - "hexValue": "3132333735333538323031393239363739393430303535303935313531343639383231383739393838303838393637383938343732353435343335323138363834323033343231333738353131", - "id": 635, + "hexValue": "3131303235353831333239363530303437363531363739373537303836333838373234313637343735323139343036393133313134323730343938343330383838343833353236303130363834", + "id": 1663, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "8223:77:0", + "src": "8223:77:4", "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_rational_12375358201929679940055095151469821879988088967898472545435218684203421378511_by_1", - "typeString": "int_const 1237...(69 digits omitted)...8511" + "typeIdentifier": "t_rational_11025581329650047651679757086388724167475219406913114270498430888483526010684_by_1", + "typeString": "int_const 1102...(69 digits omitted)...0684" }, - "value": "12375358201929679940055095151469821879988088967898472545435218684203421378511" + "value": "11025581329650047651679757086388724167475219406913114270498430888483526010684" }, { "argumentTypes": null, - "hexValue": "3132323233363934373138363731353631393038333035343236363234343435373435343937383930303935363433363839313630303330343731323338393636303533343639313430343735", - "id": 636, + "hexValue": "3137323233303432313133303632303330353536323738383136363934363631393730333331363937323334393232363936303132303133313737313934373233353439353238343734323031", + "id": 1664, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "8301:77:0", + "src": "8301:77:4", "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_rational_12223694718671561908305426624445745497890095643689160030471238966053469140475_by_1", - "typeString": "int_const 1222...(69 digits omitted)...0475" + "typeIdentifier": "t_rational_17223042113062030556278816694661970331697234922696012013177194723549528474201_by_1", + "typeString": "int_const 1722...(69 digits omitted)...4201" }, - "value": "12223694718671561908305426624445745497890095643689160030471238966053469140475" + "value": "17223042113062030556278816694661970331697234922696012013177194723549528474201" } ], - "id": 637, + "id": 1665, "isConstant": false, "isInlineArray": true, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "8222:157:0", + "src": "8222:157:4", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", "typeString": "uint256[2] memory" @@ -8627,32 +8627,32 @@ ], "expression": { "argumentTypes": null, - "id": 630, + "id": 1658, "name": "Pairing", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 577, - "src": "8047:7:0", + "referencedDeclaration": 1605, + "src": "8047:7:4", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Pairing_$577_$", + "typeIdentifier": "t_type$_t_contract$_Pairing_$1605_$", "typeString": "type(library Pairing)" } }, - "id": 631, + "id": 1659, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "G2Point", "nodeType": "MemberAccess", - "referencedDeclaration": 15, - "src": "8047:15:0", + "referencedDeclaration": 1043, + "src": "8047:15:4", "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_G2Point_$15_storage_ptr_$", + "typeIdentifier": "t_type$_t_struct$_G2Point_$1043_storage_ptr_$", "typeString": "type(struct Pairing.G2Point storage pointer)" } }, - "id": 638, + "id": 1666, "isConstant": false, "isLValue": false, "isPure": true, @@ -8660,26 +8660,26 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8047:333:0", + "src": "8047:333:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G2Point_$15_memory", + "typeIdentifier": "t_struct$_G2Point_$1043_memory", "typeString": "struct Pairing.G2Point memory" } }, - "src": "8035:345:0", + "src": "8035:345:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G2Point_$15_memory", + "typeIdentifier": "t_struct$_G2Point_$1043_memory", "typeString": "struct Pairing.G2Point memory" } }, - "id": 640, + "id": 1668, "nodeType": "ExpressionStatement", - "src": "8035:345:0" + "src": "8035:345:4" }, { "expression": { "argumentTypes": null, - "id": 653, + "id": 1681, "isConstant": false, "isLValue": false, "isPure": false, @@ -8688,28 +8688,28 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 641, + "id": 1669, "name": "vk", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 601, - "src": "8390:2:0", + "referencedDeclaration": 1629, + "src": "8390:2:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_VerifyingKey_$591_memory_ptr", + "typeIdentifier": "t_struct$_VerifyingKey_$1619_memory_ptr", "typeString": "struct Verifier.VerifyingKey memory" } }, - "id": 643, + "id": 1671, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberName": "delta2", "nodeType": "MemberAccess", - "referencedDeclaration": 587, - "src": "8390:9:0", + "referencedDeclaration": 1615, + "src": "8390:9:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G2Point_$15_memory", + "typeIdentifier": "t_struct$_G2Point_$1043_memory", "typeString": "struct Pairing.G2Point memory" } }, @@ -8723,49 +8723,49 @@ "components": [ { "argumentTypes": null, - "hexValue": "33383836343431383434333033353433373831313234373037313534383530353734303932363034303130353836333239363931363330373635353637313033373639343132353137393331", - "id": 646, + "hexValue": "36303337363233343438353132313638393837323630353636323031363838313232323435373931333731353235303238303938353035393532323539313634343331383437373735343931", + "id": 1674, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "8419:76:0", + "src": "8419:76:4", "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_rational_3886441844303543781124707154850574092604010586329691630765567103769412517931_by_1", - "typeString": "int_const 3886...(68 digits omitted)...7931" + "typeIdentifier": "t_rational_6037623448512168987260566201688122245791371525028098505952259164431847775491_by_1", + "typeString": "int_const 6037...(68 digits omitted)...5491" }, - "value": "3886441844303543781124707154850574092604010586329691630765567103769412517931" + "value": "6037623448512168987260566201688122245791371525028098505952259164431847775491" }, { "argumentTypes": null, - "hexValue": "32363332373534363539393334353537373535353531393539383234363534353430323539393435363633363432363339333632333039373337383233323838333739303737383034333332", - "id": 647, + "hexValue": "343538333336353735343333393938353036303136343538303137323138313131383632383739313836313339333034363534363036333831333732353833393134343436393539363137", + "id": 1675, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "8496:76:0", + "src": "8496:75:4", "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_rational_2632754659934557755551959824654540259945663642639362309737823288379077804332_by_1", - "typeString": "int_const 2632...(68 digits omitted)...4332" + "typeIdentifier": "t_rational_458336575433998506016458017218111862879186139304654606381372583914446959617_by_1", + "typeString": "int_const 4583...(67 digits omitted)...9617" }, - "value": "2632754659934557755551959824654540259945663642639362309737823288379077804332" + "value": "458336575433998506016458017218111862879186139304654606381372583914446959617" } ], - "id": 648, + "id": 1676, "isConstant": false, "isInlineArray": true, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "8418:155:0", + "src": "8418:154:4", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", "typeString": "uint256[2] memory" @@ -8776,49 +8776,49 @@ "components": [ { "argumentTypes": null, - "hexValue": "38393931353039363335383036303539323231393035303038373737353937373934333339373930363730303630313733323538303839343433393039323738393832333936343930353737", - "id": 649, + "hexValue": "3135303734373437333331343536383439313231303431343737393938303638373935333431333536353034313634353534333632393232383835383632323839303237393430393030343830", + "id": 1677, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "8576:76:0", + "src": "8575:77:4", "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_rational_8991509635806059221905008777597794339790670060173258089443909278982396490577_by_1", - "typeString": "int_const 8991...(68 digits omitted)...0577" + "typeIdentifier": "t_rational_15074747331456849121041477998068795341356504164554362922885862289027940900480_by_1", + "typeString": "int_const 1507...(69 digits omitted)...0480" }, - "value": "8991509635806059221905008777597794339790670060173258089443909278982396490577" + "value": "15074747331456849121041477998068795341356504164554362922885862289027940900480" }, { "argumentTypes": null, - "hexValue": "34363931313731303731393937393139373937313332303237323031383333303733303638353134393134353032333335363439393937353131383330363133393239313236363630313238", - "id": 650, + "hexValue": "34353531373137333338363135373631373236383834353535373239383135373337323430393437323334323632303338363737393835393536383434313839323430393038363935363536", + "id": 1678, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "8653:76:0", + "src": "8653:76:4", "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_rational_4691171071997919797132027201833073068514914502335649997511830613929126660128_by_1", - "typeString": "int_const 4691...(68 digits omitted)...0128" + "typeIdentifier": "t_rational_4551717338615761726884555729815737240947234262038677985956844189240908695656_by_1", + "typeString": "int_const 4551...(68 digits omitted)...5656" }, - "value": "4691171071997919797132027201833073068514914502335649997511830613929126660128" + "value": "4551717338615761726884555729815737240947234262038677985956844189240908695656" } ], - "id": 651, + "id": 1679, "isConstant": false, "isInlineArray": true, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "8575:155:0", + "src": "8574:156:4", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", "typeString": "uint256[2] memory" @@ -8838,32 +8838,32 @@ ], "expression": { "argumentTypes": null, - "id": 644, + "id": 1672, "name": "Pairing", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 577, - "src": "8402:7:0", + "referencedDeclaration": 1605, + "src": "8402:7:4", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Pairing_$577_$", + "typeIdentifier": "t_type$_t_contract$_Pairing_$1605_$", "typeString": "type(library Pairing)" } }, - "id": 645, + "id": 1673, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "G2Point", "nodeType": "MemberAccess", - "referencedDeclaration": 15, - "src": "8402:15:0", + "referencedDeclaration": 1043, + "src": "8402:15:4", "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_G2Point_$15_storage_ptr_$", + "typeIdentifier": "t_type$_t_struct$_G2Point_$1043_storage_ptr_$", "typeString": "type(struct Pairing.G2Point storage pointer)" } }, - "id": 652, + "id": 1680, "isConstant": false, "isLValue": false, "isPure": true, @@ -8871,26 +8871,26 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8402:329:0", + "src": "8402:329:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G2Point_$15_memory", + "typeIdentifier": "t_struct$_G2Point_$1043_memory", "typeString": "struct Pairing.G2Point memory" } }, - "src": "8390:341:0", + "src": "8390:341:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G2Point_$15_memory", + "typeIdentifier": "t_struct$_G2Point_$1043_memory", "typeString": "struct Pairing.G2Point memory" } }, - "id": 654, + "id": 1682, "nodeType": "ExpressionStatement", - "src": "8390:341:0" + "src": "8390:341:4" }, { "expression": { "argumentTypes": null, - "id": 663, + "id": 1691, "isConstant": false, "isLValue": false, "isPure": false, @@ -8899,28 +8899,28 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 655, + "id": 1683, "name": "vk", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 601, - "src": "8741:2:0", + "referencedDeclaration": 1629, + "src": "8741:2:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_VerifyingKey_$591_memory_ptr", + "typeIdentifier": "t_struct$_VerifyingKey_$1619_memory_ptr", "typeString": "struct Verifier.VerifyingKey memory" } }, - "id": 657, + "id": 1685, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberName": "IC", "nodeType": "MemberAccess", - "referencedDeclaration": 590, - "src": "8741:5:0", + "referencedDeclaration": 1618, + "src": "8741:5:4", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_G1Point_$6_memory_$dyn_memory", + "typeIdentifier": "t_array$_t_struct$_G1Point_$1034_memory_$dyn_memory", "typeString": "struct Pairing.G1Point memory[] memory" } }, @@ -8932,14 +8932,14 @@ { "argumentTypes": null, "hexValue": "37", - "id": 661, + "id": 1689, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "8771:1:0", + "src": "8771:1:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_7_by_1", @@ -8955,41 +8955,41 @@ "typeString": "int_const 7" } ], - "id": 660, + "id": 1688, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "NewExpression", - "src": "8749:21:0", + "src": "8749:21:4", "typeDescriptions": { - "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_G1Point_$6_memory_$dyn_memory_$", + "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_G1Point_$1034_memory_$dyn_memory_$", "typeString": "function (uint256) pure returns (struct Pairing.G1Point memory[] memory)" }, "typeName": { "baseType": { "contractScope": null, - "id": 658, + "id": 1686, "name": "Pairing.G1Point", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 6, - "src": "8753:15:0", + "referencedDeclaration": 1034, + "src": "8753:15:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_storage_ptr", + "typeIdentifier": "t_struct$_G1Point_$1034_storage_ptr", "typeString": "struct Pairing.G1Point" } }, - "id": 659, + "id": 1687, "length": null, "nodeType": "ArrayTypeName", - "src": "8753:17:0", + "src": "8753:17:4", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_G1Point_$6_storage_$dyn_storage_ptr", + "typeIdentifier": "t_array$_t_struct$_G1Point_$1034_storage_$dyn_storage_ptr", "typeString": "struct Pairing.G1Point[]" } } }, - "id": 662, + "id": 1690, "isConstant": false, "isLValue": false, "isPure": true, @@ -8997,26 +8997,26 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8749:24:0", + "src": "8749:24:4", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_G1Point_$6_memory_$dyn_memory", + "typeIdentifier": "t_array$_t_struct$_G1Point_$1034_memory_$dyn_memory", "typeString": "struct Pairing.G1Point memory[] memory" } }, - "src": "8741:32:0", + "src": "8741:32:4", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_G1Point_$6_memory_$dyn_memory", + "typeIdentifier": "t_array$_t_struct$_G1Point_$1034_memory_$dyn_memory", "typeString": "struct Pairing.G1Point memory[] memory" } }, - "id": 664, + "id": 1692, "nodeType": "ExpressionStatement", - "src": "8741:32:0" + "src": "8741:32:4" }, { "expression": { "argumentTypes": null, - "id": 675, + "id": 1703, "isConstant": false, "isLValue": false, "isPure": false, @@ -9027,43 +9027,43 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 665, + "id": 1693, "name": "vk", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 601, - "src": "8783:2:0", + "referencedDeclaration": 1629, + "src": "8783:2:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_VerifyingKey_$591_memory_ptr", + "typeIdentifier": "t_struct$_VerifyingKey_$1619_memory_ptr", "typeString": "struct Verifier.VerifyingKey memory" } }, - "id": 668, + "id": 1696, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "IC", "nodeType": "MemberAccess", - "referencedDeclaration": 590, - "src": "8783:5:0", + "referencedDeclaration": 1618, + "src": "8783:5:4", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_G1Point_$6_memory_$dyn_memory", + "typeIdentifier": "t_array$_t_struct$_G1Point_$1034_memory_$dyn_memory", "typeString": "struct Pairing.G1Point memory[] memory" } }, - "id": 669, + "id": 1697, "indexExpression": { "argumentTypes": null, "hexValue": "30", - "id": 667, + "id": 1695, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "8789:1:0", + "src": "8789:1:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -9076,9 +9076,9 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "8783:8:0", + "src": "8783:8:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_memory", + "typeIdentifier": "t_struct$_G1Point_$1034_memory", "typeString": "struct Pairing.G1Point memory" } }, @@ -9089,80 +9089,80 @@ "arguments": [ { "argumentTypes": null, - "hexValue": "3135343933333432343130343334393336373535363331353739343733343634343039303833393233373730333036353633383135373538343830393533343839333930313836383837373732", - "id": 672, + "hexValue": "33323830313531333534383537373031313034383035383135313037333432393237303036383831353631313838313831343836303439333530313439303536383032373838393032323737", + "id": 1700, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "8810:77:0", + "src": "8810:76:4", "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_rational_15493342410434936755631579473464409083923770306563815758480953489390186887772_by_1", - "typeString": "int_const 1549...(69 digits omitted)...7772" + "typeIdentifier": "t_rational_3280151354857701104805815107342927006881561188181486049350149056802788902277_by_1", + "typeString": "int_const 3280...(68 digits omitted)...2277" }, - "value": "15493342410434936755631579473464409083923770306563815758480953489390186887772" + "value": "3280151354857701104805815107342927006881561188181486049350149056802788902277" }, { "argumentTypes": null, - "hexValue": "37373533393935363439373134393030363636323038323636313436353039383730363036373832303135363630313131343538323137323533303138323834393037323939393130383938", - "id": 673, + "hexValue": "34303936323035383634323834323436383932373836393432343931363230383936353231353434393338303538393531333738343038373733313734383931333232303937333136393133", + "id": 1701, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "8888:76:0", + "src": "8887:76:4", "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_rational_7753995649714900666208266146509870606782015660111458217253018284907299910898_by_1", - "typeString": "int_const 7753...(68 digits omitted)...0898" + "typeIdentifier": "t_rational_4096205864284246892786942491620896521544938058951378408773174891322097316913_by_1", + "typeString": "int_const 4096...(68 digits omitted)...6913" }, - "value": "7753995649714900666208266146509870606782015660111458217253018284907299910898" + "value": "4096205864284246892786942491620896521544938058951378408773174891322097316913" } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_rational_15493342410434936755631579473464409083923770306563815758480953489390186887772_by_1", - "typeString": "int_const 1549...(69 digits omitted)...7772" + "typeIdentifier": "t_rational_3280151354857701104805815107342927006881561188181486049350149056802788902277_by_1", + "typeString": "int_const 3280...(68 digits omitted)...2277" }, { - "typeIdentifier": "t_rational_7753995649714900666208266146509870606782015660111458217253018284907299910898_by_1", - "typeString": "int_const 7753...(68 digits omitted)...0898" + "typeIdentifier": "t_rational_4096205864284246892786942491620896521544938058951378408773174891322097316913_by_1", + "typeString": "int_const 4096...(68 digits omitted)...6913" } ], "expression": { "argumentTypes": null, - "id": 670, + "id": 1698, "name": "Pairing", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 577, - "src": "8794:7:0", + "referencedDeclaration": 1605, + "src": "8794:7:4", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Pairing_$577_$", + "typeIdentifier": "t_type$_t_contract$_Pairing_$1605_$", "typeString": "type(library Pairing)" } }, - "id": 671, + "id": 1699, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "G1Point", "nodeType": "MemberAccess", - "referencedDeclaration": 6, - "src": "8794:15:0", + "referencedDeclaration": 1034, + "src": "8794:15:4", "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_G1Point_$6_storage_ptr_$", + "typeIdentifier": "t_type$_t_struct$_G1Point_$1034_storage_ptr_$", "typeString": "type(struct Pairing.G1Point storage pointer)" } }, - "id": 674, + "id": 1702, "isConstant": false, "isLValue": false, "isPure": true, @@ -9170,26 +9170,26 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8794:171:0", + "src": "8794:170:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_memory", + "typeIdentifier": "t_struct$_G1Point_$1034_memory", "typeString": "struct Pairing.G1Point memory" } }, - "src": "8783:182:0", + "src": "8783:181:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_memory", + "typeIdentifier": "t_struct$_G1Point_$1034_memory", "typeString": "struct Pairing.G1Point memory" } }, - "id": 676, + "id": 1704, "nodeType": "ExpressionStatement", - "src": "8783:182:0" + "src": "8783:181:4" }, { "expression": { "argumentTypes": null, - "id": 687, + "id": 1715, "isConstant": false, "isLValue": false, "isPure": false, @@ -9200,43 +9200,43 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 677, + "id": 1705, "name": "vk", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 601, - "src": "8975:2:0", + "referencedDeclaration": 1629, + "src": "8974:2:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_VerifyingKey_$591_memory_ptr", + "typeIdentifier": "t_struct$_VerifyingKey_$1619_memory_ptr", "typeString": "struct Verifier.VerifyingKey memory" } }, - "id": 680, + "id": 1708, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "IC", "nodeType": "MemberAccess", - "referencedDeclaration": 590, - "src": "8975:5:0", + "referencedDeclaration": 1618, + "src": "8974:5:4", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_G1Point_$6_memory_$dyn_memory", + "typeIdentifier": "t_array$_t_struct$_G1Point_$1034_memory_$dyn_memory", "typeString": "struct Pairing.G1Point memory[] memory" } }, - "id": 681, + "id": 1709, "indexExpression": { "argumentTypes": null, "hexValue": "31", - "id": 679, + "id": 1707, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "8981:1:0", + "src": "8980:1:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -9249,9 +9249,9 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "8975:8:0", + "src": "8974:8:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_memory", + "typeIdentifier": "t_struct$_G1Point_$1034_memory", "typeString": "struct Pairing.G1Point memory" } }, @@ -9262,80 +9262,80 @@ "arguments": [ { "argumentTypes": null, - "hexValue": "3139323936303131303035323634373134303333373138333531343933353337313732343633353730363837383631373230333733323732303037393138373335303731343239303735373436", - "id": 684, + "hexValue": "383836303735323532373333333030333330383639393530343938303636323532383034303237323435333332313838373337303839383939353631393239313830363938393330373938", + "id": 1712, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "9002:77:0", + "src": "9001:75:4", "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_rational_19296011005264714033718351493537172463570687861720373272007918735071429075746_by_1", - "typeString": "int_const 1929...(69 digits omitted)...5746" + "typeIdentifier": "t_rational_886075252733300330869950498066252804027245332188737089899561929180698930798_by_1", + "typeString": "int_const 8860...(67 digits omitted)...0798" }, - "value": "19296011005264714033718351493537172463570687861720373272007918735071429075746" + "value": "886075252733300330869950498066252804027245332188737089899561929180698930798" }, { "argumentTypes": null, - "hexValue": "3136323034353939383633353430303133373631373734363734363236393035363338303635353931323132323234353131383435363436323437393432323934313437373134363532373833", - "id": 685, + "hexValue": "3135353730323334323239313531373538313334313133303035333132393134303335303733343436393735343730363536313833303930323135333436383638363737303931323133303035", + "id": 1713, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "9080:77:0", + "src": "9077:77:4", "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_rational_16204599863540013761774674626905638065591212224511845646247942294147714652783_by_1", - "typeString": "int_const 1620...(69 digits omitted)...2783" + "typeIdentifier": "t_rational_15570234229151758134113005312914035073446975470656183090215346868677091213005_by_1", + "typeString": "int_const 1557...(69 digits omitted)...3005" }, - "value": "16204599863540013761774674626905638065591212224511845646247942294147714652783" + "value": "15570234229151758134113005312914035073446975470656183090215346868677091213005" } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_rational_19296011005264714033718351493537172463570687861720373272007918735071429075746_by_1", - "typeString": "int_const 1929...(69 digits omitted)...5746" + "typeIdentifier": "t_rational_886075252733300330869950498066252804027245332188737089899561929180698930798_by_1", + "typeString": "int_const 8860...(67 digits omitted)...0798" }, { - "typeIdentifier": "t_rational_16204599863540013761774674626905638065591212224511845646247942294147714652783_by_1", - "typeString": "int_const 1620...(69 digits omitted)...2783" + "typeIdentifier": "t_rational_15570234229151758134113005312914035073446975470656183090215346868677091213005_by_1", + "typeString": "int_const 1557...(69 digits omitted)...3005" } ], "expression": { "argumentTypes": null, - "id": 682, + "id": 1710, "name": "Pairing", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 577, - "src": "8986:7:0", + "referencedDeclaration": 1605, + "src": "8985:7:4", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Pairing_$577_$", + "typeIdentifier": "t_type$_t_contract$_Pairing_$1605_$", "typeString": "type(library Pairing)" } }, - "id": 683, + "id": 1711, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "G1Point", "nodeType": "MemberAccess", - "referencedDeclaration": 6, - "src": "8986:15:0", + "referencedDeclaration": 1034, + "src": "8985:15:4", "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_G1Point_$6_storage_ptr_$", + "typeIdentifier": "t_type$_t_struct$_G1Point_$1034_storage_ptr_$", "typeString": "type(struct Pairing.G1Point storage pointer)" } }, - "id": 686, + "id": 1714, "isConstant": false, "isLValue": false, "isPure": true, @@ -9343,26 +9343,26 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8986:172:0", + "src": "8985:170:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_memory", + "typeIdentifier": "t_struct$_G1Point_$1034_memory", "typeString": "struct Pairing.G1Point memory" } }, - "src": "8975:183:0", + "src": "8974:181:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_memory", + "typeIdentifier": "t_struct$_G1Point_$1034_memory", "typeString": "struct Pairing.G1Point memory" } }, - "id": 688, + "id": 1716, "nodeType": "ExpressionStatement", - "src": "8975:183:0" + "src": "8974:181:4" }, { "expression": { "argumentTypes": null, - "id": 699, + "id": 1727, "isConstant": false, "isLValue": false, "isPure": false, @@ -9373,43 +9373,43 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 689, + "id": 1717, "name": "vk", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 601, - "src": "9168:2:0", + "referencedDeclaration": 1629, + "src": "9165:2:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_VerifyingKey_$591_memory_ptr", + "typeIdentifier": "t_struct$_VerifyingKey_$1619_memory_ptr", "typeString": "struct Verifier.VerifyingKey memory" } }, - "id": 692, + "id": 1720, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "IC", "nodeType": "MemberAccess", - "referencedDeclaration": 590, - "src": "9168:5:0", + "referencedDeclaration": 1618, + "src": "9165:5:4", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_G1Point_$6_memory_$dyn_memory", + "typeIdentifier": "t_array$_t_struct$_G1Point_$1034_memory_$dyn_memory", "typeString": "struct Pairing.G1Point memory[] memory" } }, - "id": 693, + "id": 1721, "indexExpression": { "argumentTypes": null, "hexValue": "32", - "id": 691, + "id": 1719, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "9174:1:0", + "src": "9171:1:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_2_by_1", @@ -9422,9 +9422,9 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "9168:8:0", + "src": "9165:8:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_memory", + "typeIdentifier": "t_struct$_G1Point_$1034_memory", "typeString": "struct Pairing.G1Point memory" } }, @@ -9435,80 +9435,80 @@ "arguments": [ { "argumentTypes": null, - "hexValue": "36383030313331313633303935383531373631363234343732363536333831353337303136363331393135393830353739353133363433343736333032393636313233363339393832393336", - "id": 696, + "hexValue": "34383033393131353239323239393231323433383139313135393338383134363234363938303131373034333237353731383136363537333638323539363535323633383130393130343234", + "id": 1724, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "9195:76:0", + "src": "9192:76:4", "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_rational_6800131163095851761624472656381537016631915980579513643476302966123639982936_by_1", - "typeString": "int_const 6800...(68 digits omitted)...2936" + "typeIdentifier": "t_rational_4803911529229921243819115938814624698011704327571816657368259655263810910424_by_1", + "typeString": "int_const 4803...(68 digits omitted)...0424" }, - "value": "6800131163095851761624472656381537016631915980579513643476302966123639982936" + "value": "4803911529229921243819115938814624698011704327571816657368259655263810910424" }, { "argumentTypes": null, - "hexValue": "36313837353533363433363135353931373737303634343737373738333732323130343432383031313836373033373035313735333334333433383133343132323833383137373233323538", - "id": 697, + "hexValue": "39343231353231313338353734323734323435393136343439353936373937363639333239333837303436343434333438333535333833383939363736383030343536323032303339303535", + "id": 1725, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "9272:76:0", + "src": "9269:76:4", "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_rational_6187553643615591777064477778372210442801186703705175334343813412283817723258_by_1", - "typeString": "int_const 6187...(68 digits omitted)...3258" + "typeIdentifier": "t_rational_9421521138574274245916449596797669329387046444348355383899676800456202039055_by_1", + "typeString": "int_const 9421...(68 digits omitted)...9055" }, - "value": "6187553643615591777064477778372210442801186703705175334343813412283817723258" + "value": "9421521138574274245916449596797669329387046444348355383899676800456202039055" } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_rational_6800131163095851761624472656381537016631915980579513643476302966123639982936_by_1", - "typeString": "int_const 6800...(68 digits omitted)...2936" + "typeIdentifier": "t_rational_4803911529229921243819115938814624698011704327571816657368259655263810910424_by_1", + "typeString": "int_const 4803...(68 digits omitted)...0424" }, { - "typeIdentifier": "t_rational_6187553643615591777064477778372210442801186703705175334343813412283817723258_by_1", - "typeString": "int_const 6187...(68 digits omitted)...3258" + "typeIdentifier": "t_rational_9421521138574274245916449596797669329387046444348355383899676800456202039055_by_1", + "typeString": "int_const 9421...(68 digits omitted)...9055" } ], "expression": { "argumentTypes": null, - "id": 694, + "id": 1722, "name": "Pairing", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 577, - "src": "9179:7:0", + "referencedDeclaration": 1605, + "src": "9176:7:4", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Pairing_$577_$", + "typeIdentifier": "t_type$_t_contract$_Pairing_$1605_$", "typeString": "type(library Pairing)" } }, - "id": 695, + "id": 1723, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "G1Point", "nodeType": "MemberAccess", - "referencedDeclaration": 6, - "src": "9179:15:0", + "referencedDeclaration": 1034, + "src": "9176:15:4", "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_G1Point_$6_storage_ptr_$", + "typeIdentifier": "t_type$_t_struct$_G1Point_$1034_storage_ptr_$", "typeString": "type(struct Pairing.G1Point storage pointer)" } }, - "id": 698, + "id": 1726, "isConstant": false, "isLValue": false, "isPure": true, @@ -9516,26 +9516,26 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "9179:170:0", + "src": "9176:170:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_memory", + "typeIdentifier": "t_struct$_G1Point_$1034_memory", "typeString": "struct Pairing.G1Point memory" } }, - "src": "9168:181:0", + "src": "9165:181:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_memory", + "typeIdentifier": "t_struct$_G1Point_$1034_memory", "typeString": "struct Pairing.G1Point memory" } }, - "id": 700, + "id": 1728, "nodeType": "ExpressionStatement", - "src": "9168:181:0" + "src": "9165:181:4" }, { "expression": { "argumentTypes": null, - "id": 711, + "id": 1739, "isConstant": false, "isLValue": false, "isPure": false, @@ -9546,43 +9546,43 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 701, + "id": 1729, "name": "vk", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 601, - "src": "9359:2:0", + "referencedDeclaration": 1629, + "src": "9356:2:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_VerifyingKey_$591_memory_ptr", + "typeIdentifier": "t_struct$_VerifyingKey_$1619_memory_ptr", "typeString": "struct Verifier.VerifyingKey memory" } }, - "id": 704, + "id": 1732, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "IC", "nodeType": "MemberAccess", - "referencedDeclaration": 590, - "src": "9359:5:0", + "referencedDeclaration": 1618, + "src": "9356:5:4", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_G1Point_$6_memory_$dyn_memory", + "typeIdentifier": "t_array$_t_struct$_G1Point_$1034_memory_$dyn_memory", "typeString": "struct Pairing.G1Point memory[] memory" } }, - "id": 705, + "id": 1733, "indexExpression": { "argumentTypes": null, "hexValue": "33", - "id": 703, + "id": 1731, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "9365:1:0", + "src": "9362:1:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_3_by_1", @@ -9595,9 +9595,9 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "9359:8:0", + "src": "9356:8:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_memory", + "typeIdentifier": "t_struct$_G1Point_$1034_memory", "typeString": "struct Pairing.G1Point memory" } }, @@ -9608,80 +9608,80 @@ "arguments": [ { "argumentTypes": null, - "hexValue": "34353837323336323736383737373539363635333137343331313235313934313534373935363032353731383930393832323434323839303234383331323939333236333834333936313232", - "id": 708, + "hexValue": "38353536353336313534303935393631383730363739343834393835383731383830353631393033353532383931323331363633383031343533313138343333393036323038323038363334", + "id": 1736, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "9386:76:0", + "src": "9383:76:4", "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_rational_4587236276877759665317431125194154795602571890982244289024831299326384396122_by_1", - "typeString": "int_const 4587...(68 digits omitted)...6122" + "typeIdentifier": "t_rational_8556536154095961870679484985871880561903552891231663801453118433906208208634_by_1", + "typeString": "int_const 8556...(68 digits omitted)...8634" }, - "value": "4587236276877759665317431125194154795602571890982244289024831299326384396122" + "value": "8556536154095961870679484985871880561903552891231663801453118433906208208634" }, { "argumentTypes": null, - "hexValue": "3131393635343033343830393537383032323236393138393432343235343230303237313031333437303135393832303132373537393931323632383033323137343632383330343537393838", - "id": 709, + "hexValue": "33303530363031343736383239393433353031393638303530333336393233303132323937333834333532383930353038323639303633333033383838373337313339343836393138343431", + "id": 1737, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "9463:77:0", + "src": "9460:76:4", "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_rational_11965403480957802226918942425420027101347015982012757991262803217462830457988_by_1", - "typeString": "int_const 1196...(69 digits omitted)...7988" + "typeIdentifier": "t_rational_3050601476829943501968050336923012297384352890508269063303888737139486918441_by_1", + "typeString": "int_const 3050...(68 digits omitted)...8441" }, - "value": "11965403480957802226918942425420027101347015982012757991262803217462830457988" + "value": "3050601476829943501968050336923012297384352890508269063303888737139486918441" } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_rational_4587236276877759665317431125194154795602571890982244289024831299326384396122_by_1", - "typeString": "int_const 4587...(68 digits omitted)...6122" + "typeIdentifier": "t_rational_8556536154095961870679484985871880561903552891231663801453118433906208208634_by_1", + "typeString": "int_const 8556...(68 digits omitted)...8634" }, { - "typeIdentifier": "t_rational_11965403480957802226918942425420027101347015982012757991262803217462830457988_by_1", - "typeString": "int_const 1196...(69 digits omitted)...7988" + "typeIdentifier": "t_rational_3050601476829943501968050336923012297384352890508269063303888737139486918441_by_1", + "typeString": "int_const 3050...(68 digits omitted)...8441" } ], "expression": { "argumentTypes": null, - "id": 706, + "id": 1734, "name": "Pairing", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 577, - "src": "9370:7:0", + "referencedDeclaration": 1605, + "src": "9367:7:4", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Pairing_$577_$", + "typeIdentifier": "t_type$_t_contract$_Pairing_$1605_$", "typeString": "type(library Pairing)" } }, - "id": 707, + "id": 1735, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "G1Point", "nodeType": "MemberAccess", - "referencedDeclaration": 6, - "src": "9370:15:0", + "referencedDeclaration": 1034, + "src": "9367:15:4", "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_G1Point_$6_storage_ptr_$", + "typeIdentifier": "t_type$_t_struct$_G1Point_$1034_storage_ptr_$", "typeString": "type(struct Pairing.G1Point storage pointer)" } }, - "id": 710, + "id": 1738, "isConstant": false, "isLValue": false, "isPure": true, @@ -9689,26 +9689,26 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "9370:171:0", + "src": "9367:170:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_memory", + "typeIdentifier": "t_struct$_G1Point_$1034_memory", "typeString": "struct Pairing.G1Point memory" } }, - "src": "9359:182:0", + "src": "9356:181:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_memory", + "typeIdentifier": "t_struct$_G1Point_$1034_memory", "typeString": "struct Pairing.G1Point memory" } }, - "id": 712, + "id": 1740, "nodeType": "ExpressionStatement", - "src": "9359:182:0" + "src": "9356:181:4" }, { "expression": { "argumentTypes": null, - "id": 723, + "id": 1751, "isConstant": false, "isLValue": false, "isPure": false, @@ -9719,43 +9719,43 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 713, + "id": 1741, "name": "vk", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 601, - "src": "9551:2:0", + "referencedDeclaration": 1629, + "src": "9547:2:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_VerifyingKey_$591_memory_ptr", + "typeIdentifier": "t_struct$_VerifyingKey_$1619_memory_ptr", "typeString": "struct Verifier.VerifyingKey memory" } }, - "id": 716, + "id": 1744, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "IC", "nodeType": "MemberAccess", - "referencedDeclaration": 590, - "src": "9551:5:0", + "referencedDeclaration": 1618, + "src": "9547:5:4", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_G1Point_$6_memory_$dyn_memory", + "typeIdentifier": "t_array$_t_struct$_G1Point_$1034_memory_$dyn_memory", "typeString": "struct Pairing.G1Point memory[] memory" } }, - "id": 717, + "id": 1745, "indexExpression": { "argumentTypes": null, "hexValue": "34", - "id": 715, + "id": 1743, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "9557:1:0", + "src": "9553:1:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_4_by_1", @@ -9768,9 +9768,9 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "9551:8:0", + "src": "9547:8:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_memory", + "typeIdentifier": "t_struct$_G1Point_$1034_memory", "typeString": "struct Pairing.G1Point memory" } }, @@ -9781,80 +9781,80 @@ "arguments": [ { "argumentTypes": null, - "hexValue": "36343234353737333438353935333535313136323734343034313236323631383435383234393238333733363331333539333833323036373739383335303536363834373437323837343332", - "id": 720, + "hexValue": "333030393730353537343834353138303730343932353331313735373134373838393132313331323433333434323632383035343737323636383036303634313236393538393239303335", + "id": 1748, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "9578:76:0", + "src": "9574:75:4", "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_rational_6424577348595355116274404126261845824928373631359383206779835056684747287432_by_1", - "typeString": "int_const 6424...(68 digits omitted)...7432" + "typeIdentifier": "t_rational_300970557484518070492531175714788912131243344262805477266806064126958929035_by_1", + "typeString": "int_const 3009...(67 digits omitted)...9035" }, - "value": "6424577348595355116274404126261845824928373631359383206779835056684747287432" + "value": "300970557484518070492531175714788912131243344262805477266806064126958929035" }, { "argumentTypes": null, - "hexValue": "35303638393235333433373339363835343837383431333837343331363731383630323735303336373231313437323530393538383636303438393531333837383430383534363831343839", - "id": 721, + "hexValue": "37333938353330373831333739383730393035393232323437363334373338393536333536333732333236323433303136383433353530343236303834383632383831323035383633343437", + "id": 1749, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "9655:76:0", + "src": "9650:76:4", "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_rational_5068925343739685487841387431671860275036721147250958866048951387840854681489_by_1", - "typeString": "int_const 5068...(68 digits omitted)...1489" + "typeIdentifier": "t_rational_7398530781379870905922247634738956356372326243016843550426084862881205863447_by_1", + "typeString": "int_const 7398...(68 digits omitted)...3447" }, - "value": "5068925343739685487841387431671860275036721147250958866048951387840854681489" + "value": "7398530781379870905922247634738956356372326243016843550426084862881205863447" } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_rational_6424577348595355116274404126261845824928373631359383206779835056684747287432_by_1", - "typeString": "int_const 6424...(68 digits omitted)...7432" + "typeIdentifier": "t_rational_300970557484518070492531175714788912131243344262805477266806064126958929035_by_1", + "typeString": "int_const 3009...(67 digits omitted)...9035" }, { - "typeIdentifier": "t_rational_5068925343739685487841387431671860275036721147250958866048951387840854681489_by_1", - "typeString": "int_const 5068...(68 digits omitted)...1489" + "typeIdentifier": "t_rational_7398530781379870905922247634738956356372326243016843550426084862881205863447_by_1", + "typeString": "int_const 7398...(68 digits omitted)...3447" } ], "expression": { "argumentTypes": null, - "id": 718, + "id": 1746, "name": "Pairing", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 577, - "src": "9562:7:0", + "referencedDeclaration": 1605, + "src": "9558:7:4", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Pairing_$577_$", + "typeIdentifier": "t_type$_t_contract$_Pairing_$1605_$", "typeString": "type(library Pairing)" } }, - "id": 719, + "id": 1747, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "G1Point", "nodeType": "MemberAccess", - "referencedDeclaration": 6, - "src": "9562:15:0", + "referencedDeclaration": 1034, + "src": "9558:15:4", "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_G1Point_$6_storage_ptr_$", + "typeIdentifier": "t_type$_t_struct$_G1Point_$1034_storage_ptr_$", "typeString": "type(struct Pairing.G1Point storage pointer)" } }, - "id": 722, + "id": 1750, "isConstant": false, "isLValue": false, "isPure": true, @@ -9862,26 +9862,26 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "9562:170:0", + "src": "9558:169:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_memory", + "typeIdentifier": "t_struct$_G1Point_$1034_memory", "typeString": "struct Pairing.G1Point memory" } }, - "src": "9551:181:0", + "src": "9547:180:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_memory", + "typeIdentifier": "t_struct$_G1Point_$1034_memory", "typeString": "struct Pairing.G1Point memory" } }, - "id": 724, + "id": 1752, "nodeType": "ExpressionStatement", - "src": "9551:181:0" + "src": "9547:180:4" }, { "expression": { "argumentTypes": null, - "id": 735, + "id": 1763, "isConstant": false, "isLValue": false, "isPure": false, @@ -9892,43 +9892,43 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 725, + "id": 1753, "name": "vk", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 601, - "src": "9742:2:0", + "referencedDeclaration": 1629, + "src": "9737:2:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_VerifyingKey_$591_memory_ptr", + "typeIdentifier": "t_struct$_VerifyingKey_$1619_memory_ptr", "typeString": "struct Verifier.VerifyingKey memory" } }, - "id": 728, + "id": 1756, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "IC", "nodeType": "MemberAccess", - "referencedDeclaration": 590, - "src": "9742:5:0", + "referencedDeclaration": 1618, + "src": "9737:5:4", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_G1Point_$6_memory_$dyn_memory", + "typeIdentifier": "t_array$_t_struct$_G1Point_$1034_memory_$dyn_memory", "typeString": "struct Pairing.G1Point memory[] memory" } }, - "id": 729, + "id": 1757, "indexExpression": { "argumentTypes": null, "hexValue": "35", - "id": 727, + "id": 1755, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "9748:1:0", + "src": "9743:1:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_5_by_1", @@ -9941,9 +9941,9 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "9742:8:0", + "src": "9737:8:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_memory", + "typeIdentifier": "t_struct$_G1Point_$1034_memory", "typeString": "struct Pairing.G1Point memory" } }, @@ -9954,80 +9954,80 @@ "arguments": [ { "argumentTypes": null, - "hexValue": "33343135383433353438353734353635383239333139343432343038363736383133353232333139393431303539353635363436383831303836303334363935363435353135383733303634", - "id": 732, + "hexValue": "3139393230303939323337373932383637343039363933313234343135303232313030353239343837303132393632383431363432383230363736353637353039323632353037313933313037", + "id": 1760, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "9769:76:0", + "src": "9764:77:4", "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_rational_3415843548574565829319442408676813522319941059565646881086034695645515873064_by_1", - "typeString": "int_const 3415...(68 digits omitted)...3064" + "typeIdentifier": "t_rational_19920099237792867409693124415022100529487012962841642820676567509262507193107_by_1", + "typeString": "int_const 1992...(69 digits omitted)...3107" }, - "value": "3415843548574565829319442408676813522319941059565646881086034695645515873064" + "value": "19920099237792867409693124415022100529487012962841642820676567509262507193107" }, { "argumentTypes": null, - "hexValue": "35383833343839313538333739343432333339393830373631323131343630313932363035313830383933393937383736323533343631303830353237303333383531393932303437333935", - "id": 733, + "hexValue": "3230323139353434303039353933333839323938373133373736363732313438393038393036303834303037333030373839323932313638333839373837373231373431343530393132303338", + "id": 1761, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "9846:76:0", + "src": "9842:77:4", "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_rational_5883489158379442339980761211460192605180893997876253461080527033851992047395_by_1", - "typeString": "int_const 5883...(68 digits omitted)...7395" + "typeIdentifier": "t_rational_20219544009593389298713776672148908906084007300789292168389787721741450912038_by_1", + "typeString": "int_const 2021...(69 digits omitted)...2038" }, - "value": "5883489158379442339980761211460192605180893997876253461080527033851992047395" + "value": "20219544009593389298713776672148908906084007300789292168389787721741450912038" } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_rational_3415843548574565829319442408676813522319941059565646881086034695645515873064_by_1", - "typeString": "int_const 3415...(68 digits omitted)...3064" + "typeIdentifier": "t_rational_19920099237792867409693124415022100529487012962841642820676567509262507193107_by_1", + "typeString": "int_const 1992...(69 digits omitted)...3107" }, { - "typeIdentifier": "t_rational_5883489158379442339980761211460192605180893997876253461080527033851992047395_by_1", - "typeString": "int_const 5883...(68 digits omitted)...7395" + "typeIdentifier": "t_rational_20219544009593389298713776672148908906084007300789292168389787721741450912038_by_1", + "typeString": "int_const 2021...(69 digits omitted)...2038" } ], "expression": { "argumentTypes": null, - "id": 730, + "id": 1758, "name": "Pairing", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 577, - "src": "9753:7:0", + "referencedDeclaration": 1605, + "src": "9748:7:4", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Pairing_$577_$", + "typeIdentifier": "t_type$_t_contract$_Pairing_$1605_$", "typeString": "type(library Pairing)" } }, - "id": 731, + "id": 1759, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "G1Point", "nodeType": "MemberAccess", - "referencedDeclaration": 6, - "src": "9753:15:0", + "referencedDeclaration": 1034, + "src": "9748:15:4", "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_G1Point_$6_storage_ptr_$", + "typeIdentifier": "t_type$_t_struct$_G1Point_$1034_storage_ptr_$", "typeString": "type(struct Pairing.G1Point storage pointer)" } }, - "id": 734, + "id": 1762, "isConstant": false, "isLValue": false, "isPure": true, @@ -10035,26 +10035,26 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "9753:170:0", + "src": "9748:172:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_memory", + "typeIdentifier": "t_struct$_G1Point_$1034_memory", "typeString": "struct Pairing.G1Point memory" } }, - "src": "9742:181:0", + "src": "9737:183:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_memory", + "typeIdentifier": "t_struct$_G1Point_$1034_memory", "typeString": "struct Pairing.G1Point memory" } }, - "id": 736, + "id": 1764, "nodeType": "ExpressionStatement", - "src": "9742:181:0" + "src": "9737:183:4" }, { "expression": { "argumentTypes": null, - "id": 747, + "id": 1775, "isConstant": false, "isLValue": false, "isPure": false, @@ -10065,43 +10065,43 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 737, + "id": 1765, "name": "vk", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 601, - "src": "9933:2:0", + "referencedDeclaration": 1629, + "src": "9930:2:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_VerifyingKey_$591_memory_ptr", + "typeIdentifier": "t_struct$_VerifyingKey_$1619_memory_ptr", "typeString": "struct Verifier.VerifyingKey memory" } }, - "id": 740, + "id": 1768, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "IC", "nodeType": "MemberAccess", - "referencedDeclaration": 590, - "src": "9933:5:0", + "referencedDeclaration": 1618, + "src": "9930:5:4", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_G1Point_$6_memory_$dyn_memory", + "typeIdentifier": "t_array$_t_struct$_G1Point_$1034_memory_$dyn_memory", "typeString": "struct Pairing.G1Point memory[] memory" } }, - "id": 741, + "id": 1769, "indexExpression": { "argumentTypes": null, "hexValue": "36", - "id": 739, + "id": 1767, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "9939:1:0", + "src": "9936:1:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_6_by_1", @@ -10114,9 +10114,9 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "9933:8:0", + "src": "9930:8:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_memory", + "typeIdentifier": "t_struct$_G1Point_$1034_memory", "typeString": "struct Pairing.G1Point memory" } }, @@ -10127,80 +10127,80 @@ "arguments": [ { "argumentTypes": null, - "hexValue": "3230363434313635383032353837393931353832383236363437313332353335393230393634373433353333363831303839323034363733393738333838343334393939303338393535303234", - "id": 744, + "hexValue": "3139373338343638343635363538353837343533333731383139383331353738383335363736333337363836323136373336333130303736343433343737393438373031393135353431323033", + "id": 1772, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "9960:77:0", + "src": "9957:77:4", "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_rational_20644165802587991582826647132535920964743533681089204673978388434999038955024_by_1", - "typeString": "int_const 2064...(69 digits omitted)...5024" + "typeIdentifier": "t_rational_19738468465658587453371819831578835676337686216736310076443477948701915541203_by_1", + "typeString": "int_const 1973...(69 digits omitted)...1203" }, - "value": "20644165802587991582826647132535920964743533681089204673978388434999038955024" + "value": "19738468465658587453371819831578835676337686216736310076443477948701915541203" }, { "argumentTypes": null, - "hexValue": "38393938393136303339303733303837353233373732383034363231323038313337373337303337373639313536353233313930393432303738303235393033373330393735373431333537", - "id": 745, + "hexValue": "3137303531363131333336363738393430383332353934373139393534323638323935303833373634393933393231363130323930323535353230303135303032353133343339343133393433", + "id": 1773, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "10038:76:0", + "src": "10035:77:4", "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_rational_8998916039073087523772804621208137737037769156523190942078025903730975741357_by_1", - "typeString": "int_const 8998...(68 digits omitted)...1357" + "typeIdentifier": "t_rational_17051611336678940832594719954268295083764993921610290255520015002513439413943_by_1", + "typeString": "int_const 1705...(69 digits omitted)...3943" }, - "value": "8998916039073087523772804621208137737037769156523190942078025903730975741357" + "value": "17051611336678940832594719954268295083764993921610290255520015002513439413943" } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_rational_20644165802587991582826647132535920964743533681089204673978388434999038955024_by_1", - "typeString": "int_const 2064...(69 digits omitted)...5024" + "typeIdentifier": "t_rational_19738468465658587453371819831578835676337686216736310076443477948701915541203_by_1", + "typeString": "int_const 1973...(69 digits omitted)...1203" }, { - "typeIdentifier": "t_rational_8998916039073087523772804621208137737037769156523190942078025903730975741357_by_1", - "typeString": "int_const 8998...(68 digits omitted)...1357" + "typeIdentifier": "t_rational_17051611336678940832594719954268295083764993921610290255520015002513439413943_by_1", + "typeString": "int_const 1705...(69 digits omitted)...3943" } ], "expression": { "argumentTypes": null, - "id": 742, + "id": 1770, "name": "Pairing", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 577, - "src": "9944:7:0", + "referencedDeclaration": 1605, + "src": "9941:7:4", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Pairing_$577_$", + "typeIdentifier": "t_type$_t_contract$_Pairing_$1605_$", "typeString": "type(library Pairing)" } }, - "id": 743, + "id": 1771, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "G1Point", "nodeType": "MemberAccess", - "referencedDeclaration": 6, - "src": "9944:15:0", + "referencedDeclaration": 1034, + "src": "9941:15:4", "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_G1Point_$6_storage_ptr_$", + "typeIdentifier": "t_type$_t_struct$_G1Point_$1034_storage_ptr_$", "typeString": "type(struct Pairing.G1Point storage pointer)" } }, - "id": 746, + "id": 1774, "isConstant": false, "isLValue": false, "isPure": true, @@ -10208,63 +10208,63 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "9944:171:0", + "src": "9941:172:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_memory", + "typeIdentifier": "t_struct$_G1Point_$1034_memory", "typeString": "struct Pairing.G1Point memory" } }, - "src": "9933:182:0", + "src": "9930:183:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_memory", + "typeIdentifier": "t_struct$_G1Point_$1034_memory", "typeString": "struct Pairing.G1Point memory" } }, - "id": 748, + "id": 1776, "nodeType": "ExpressionStatement", - "src": "9933:182:0" + "src": "9930:183:4" } ] }, "documentation": null, - "id": 750, + "id": 1778, "implemented": true, "kind": "function", "modifiers": [], "name": "verifyingKey", "nodeType": "FunctionDefinition", "parameters": { - "id": 599, + "id": 1627, "nodeType": "ParameterList", "parameters": [], - "src": "7431:2:0" + "src": "7431:2:4" }, "returnParameters": { - "id": 602, + "id": 1630, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 601, + "id": 1629, "name": "vk", "nodeType": "VariableDeclaration", - "scope": 750, - "src": "7457:22:0", + "scope": 1778, + "src": "7457:22:4", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_struct$_VerifyingKey_$591_memory_ptr", + "typeIdentifier": "t_struct$_VerifyingKey_$1619_memory_ptr", "typeString": "struct Verifier.VerifyingKey" }, "typeName": { "contractScope": null, - "id": 600, + "id": 1628, "name": "VerifyingKey", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 591, - "src": "7457:12:0", + "referencedDeclaration": 1619, + "src": "7457:12:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_VerifyingKey_$591_storage_ptr", + "typeIdentifier": "t_struct$_VerifyingKey_$1619_storage_ptr", "typeString": "struct Verifier.VerifyingKey" } }, @@ -10272,32 +10272,32 @@ "visibility": "internal" } ], - "src": "7456:24:0" + "src": "7456:24:4" }, - "scope": 1058, - "src": "7410:2713:0", + "scope": 2086, + "src": "7410:2711:4", "stateMutability": "pure", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 870, + "id": 1898, "nodeType": "Block", - "src": "10214:846:0", + "src": "10212:846:4", "statements": [ { "assignments": [ - 761 + 1789 ], "declarations": [ { "constant": false, - "id": 761, + "id": 1789, "name": "snark_scalar_field", "nodeType": "VariableDeclaration", - "scope": 870, - "src": "10224:26:0", + "scope": 1898, + "src": "10222:26:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -10305,10 +10305,10 @@ "typeString": "uint256" }, "typeName": { - "id": 760, + "id": 1788, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "10224:7:0", + "src": "10222:7:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -10318,18 +10318,18 @@ "visibility": "internal" } ], - "id": 763, + "id": 1791, "initialValue": { "argumentTypes": null, "hexValue": "3231383838323432383731383339323735323232323436343035373435323537323735303838353438333634343030343136303334333433363938323034313836353735383038343935363137", - "id": 762, + "id": 1790, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "10253:77:0", + "src": "10251:77:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_21888242871839275222246405745257275088548364400416034343698204186575808495617_by_1", @@ -10338,35 +10338,35 @@ "value": "21888242871839275222246405745257275088548364400416034343698204186575808495617" }, "nodeType": "VariableDeclarationStatement", - "src": "10224:106:0" + "src": "10222:106:4" }, { "assignments": [ - 765 + 1793 ], "declarations": [ { "constant": false, - "id": 765, + "id": 1793, "name": "vk", "nodeType": "VariableDeclaration", - "scope": 870, - "src": "10340:22:0", + "scope": 1898, + "src": "10338:22:4", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_struct$_VerifyingKey_$591_memory_ptr", + "typeIdentifier": "t_struct$_VerifyingKey_$1619_memory_ptr", "typeString": "struct Verifier.VerifyingKey" }, "typeName": { "contractScope": null, - "id": 764, + "id": 1792, "name": "VerifyingKey", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 591, - "src": "10340:12:0", + "referencedDeclaration": 1619, + "src": "10338:12:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_VerifyingKey_$591_storage_ptr", + "typeIdentifier": "t_struct$_VerifyingKey_$1619_storage_ptr", "typeString": "struct Verifier.VerifyingKey" } }, @@ -10374,24 +10374,24 @@ "visibility": "internal" } ], - "id": 768, + "id": 1796, "initialValue": { "argumentTypes": null, "arguments": [], "expression": { "argumentTypes": [], - "id": 766, + "id": 1794, "name": "verifyingKey", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 750, - "src": "10365:12:0", + "referencedDeclaration": 1778, + "src": "10363:12:4", "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_VerifyingKey_$591_memory_ptr_$", + "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_VerifyingKey_$1619_memory_ptr_$", "typeString": "function () pure returns (struct Verifier.VerifyingKey memory)" } }, - "id": 767, + "id": 1795, "isConstant": false, "isLValue": false, "isPure": false, @@ -10399,14 +10399,14 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "10365:14:0", + "src": "10363:14:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_VerifyingKey_$591_memory_ptr", + "typeIdentifier": "t_struct$_VerifyingKey_$1619_memory_ptr", "typeString": "struct Verifier.VerifyingKey memory" } }, "nodeType": "VariableDeclarationStatement", - "src": "10340:39:0" + "src": "10338:39:4" }, { "expression": { @@ -10418,7 +10418,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 777, + "id": 1805, "isConstant": false, "isLValue": false, "isPure": false, @@ -10429,7 +10429,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 773, + "id": 1801, "isConstant": false, "isLValue": false, "isPure": false, @@ -10438,18 +10438,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 770, + "id": 1798, "name": "input", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 753, - "src": "10397:5:0", + "referencedDeclaration": 1781, + "src": "10395:5:4", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", "typeString": "uint256[] memory" } }, - "id": 771, + "id": 1799, "isConstant": false, "isLValue": false, "isPure": false, @@ -10457,7 +10457,7 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "10397:12:0", + "src": "10395:12:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -10468,14 +10468,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "31", - "id": 772, + "id": 1800, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "10412:1:0", + "src": "10410:1:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -10483,7 +10483,7 @@ }, "value": "1" }, - "src": "10397:16:0", + "src": "10395:16:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -10497,32 +10497,32 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 774, + "id": 1802, "name": "vk", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 765, - "src": "10417:2:0", + "referencedDeclaration": 1793, + "src": "10415:2:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_VerifyingKey_$591_memory_ptr", + "typeIdentifier": "t_struct$_VerifyingKey_$1619_memory_ptr", "typeString": "struct Verifier.VerifyingKey memory" } }, - "id": 775, + "id": 1803, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "IC", "nodeType": "MemberAccess", - "referencedDeclaration": 590, - "src": "10417:5:0", + "referencedDeclaration": 1618, + "src": "10415:5:4", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_G1Point_$6_memory_$dyn_memory", + "typeIdentifier": "t_array$_t_struct$_G1Point_$1034_memory_$dyn_memory", "typeString": "struct Pairing.G1Point memory[] memory" } }, - "id": 776, + "id": 1804, "isConstant": false, "isLValue": false, "isPure": false, @@ -10530,13 +10530,13 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "10417:12:0", + "src": "10415:12:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "10397:32:0", + "src": "10395:32:4", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -10545,14 +10545,14 @@ { "argumentTypes": null, "hexValue": "76657269666965722d6261642d696e707574", - "id": 778, + "id": 1806, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "10430:20:0", + "src": "10428:20:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_62f18c0da782e23b7e947e83d22170e983c1918040b5b1bd1c1e3ee5a50cc57a", @@ -10572,21 +10572,21 @@ "typeString": "literal_string \"verifier-bad-input\"" } ], - "id": 769, + "id": 1797, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1076, - 1077 + 2134, + 2135 ], - "referencedDeclaration": 1077, - "src": "10389:7:0", + "referencedDeclaration": 2135, + "src": "10387:7:4", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 779, + "id": 1807, "isConstant": false, "isLValue": false, "isPure": false, @@ -10594,43 +10594,43 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "10389:62:0", + "src": "10387:62:4", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 780, + "id": 1808, "nodeType": "ExpressionStatement", - "src": "10389:62:0" + "src": "10387:62:4" }, { "assignments": [ - 784 + 1812 ], "declarations": [ { "constant": false, - "id": 784, + "id": 1812, "name": "vk_x", "nodeType": "VariableDeclaration", - "scope": 870, - "src": "10508:27:0", + "scope": 1898, + "src": "10506:27:4", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_memory_ptr", + "typeIdentifier": "t_struct$_G1Point_$1034_memory_ptr", "typeString": "struct Pairing.G1Point" }, "typeName": { "contractScope": null, - "id": 783, + "id": 1811, "name": "Pairing.G1Point", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 6, - "src": "10508:15:0", + "referencedDeclaration": 1034, + "src": "10506:15:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_storage_ptr", + "typeIdentifier": "t_struct$_G1Point_$1034_storage_ptr", "typeString": "struct Pairing.G1Point" } }, @@ -10638,21 +10638,21 @@ "visibility": "internal" } ], - "id": 790, + "id": 1818, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "30", - "id": 787, + "id": 1815, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "10554:1:0", + "src": "10552:1:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -10663,14 +10663,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 788, + "id": 1816, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "10557:1:0", + "src": "10555:1:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -10692,32 +10692,32 @@ ], "expression": { "argumentTypes": null, - "id": 785, + "id": 1813, "name": "Pairing", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 577, - "src": "10538:7:0", + "referencedDeclaration": 1605, + "src": "10536:7:4", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Pairing_$577_$", + "typeIdentifier": "t_type$_t_contract$_Pairing_$1605_$", "typeString": "type(library Pairing)" } }, - "id": 786, + "id": 1814, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "G1Point", "nodeType": "MemberAccess", - "referencedDeclaration": 6, - "src": "10538:15:0", + "referencedDeclaration": 1034, + "src": "10536:15:4", "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_G1Point_$6_storage_ptr_$", + "typeIdentifier": "t_type$_t_struct$_G1Point_$1034_storage_ptr_$", "typeString": "type(struct Pairing.G1Point storage pointer)" } }, - "id": 789, + "id": 1817, "isConstant": false, "isLValue": false, "isPure": true, @@ -10725,20 +10725,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "10538:21:0", + "src": "10536:21:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_memory", + "typeIdentifier": "t_struct$_G1Point_$1034_memory", "typeString": "struct Pairing.G1Point memory" } }, "nodeType": "VariableDeclarationStatement", - "src": "10508:51:0" + "src": "10506:51:4" }, { "body": { - "id": 830, + "id": 1858, "nodeType": "Block", - "src": "10609:184:0", + "src": "10607:184:4", "statements": [ { "expression": { @@ -10750,7 +10750,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 807, + "id": 1835, "isConstant": false, "isLValue": false, "isPure": false, @@ -10759,26 +10759,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 803, + "id": 1831, "name": "input", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 753, - "src": "10631:5:0", + "referencedDeclaration": 1781, + "src": "10629:5:4", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", "typeString": "uint256[] memory" } }, - "id": 805, + "id": 1833, "indexExpression": { "argumentTypes": null, - "id": 804, + "id": 1832, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 792, - "src": "10637:1:0", + "referencedDeclaration": 1820, + "src": "10635:1:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -10789,7 +10789,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "10631:8:0", + "src": "10629:8:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -10799,18 +10799,18 @@ "operator": "<", "rightExpression": { "argumentTypes": null, - "id": 806, + "id": 1834, "name": "snark_scalar_field", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 761, - "src": "10642:18:0", + "referencedDeclaration": 1789, + "src": "10640:18:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "10631:29:0", + "src": "10629:29:4", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -10819,14 +10819,14 @@ { "argumentTypes": null, "hexValue": "76657269666965722d6774652d736e61726b2d7363616c61722d6669656c64", - "id": 808, + "id": 1836, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "10661:33:0", + "src": "10659:33:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_8cb5a586d84bd3fa5140c79c44fd5cd5a5b0e7e59a1ddee2846426486e57f847", @@ -10846,21 +10846,21 @@ "typeString": "literal_string \"verifier-gte-snark-scalar-field\"" } ], - "id": 802, + "id": 1830, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1076, - 1077 + 2134, + 2135 ], - "referencedDeclaration": 1077, - "src": "10623:7:0", + "referencedDeclaration": 2135, + "src": "10621:7:4", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 809, + "id": 1837, "isConstant": false, "isLValue": false, "isPure": false, @@ -10868,34 +10868,34 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "10623:72:0", + "src": "10621:72:4", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 810, + "id": 1838, "nodeType": "ExpressionStatement", - "src": "10623:72:0" + "src": "10621:72:4" }, { "expression": { "argumentTypes": null, - "id": 828, + "id": 1856, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 811, + "id": 1839, "name": "vk_x", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 784, - "src": "10709:4:0", + "referencedDeclaration": 1812, + "src": "10707:4:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_memory_ptr", + "typeIdentifier": "t_struct$_G1Point_$1034_memory_ptr", "typeString": "struct Pairing.G1Point memory" } }, @@ -10906,14 +10906,14 @@ "arguments": [ { "argumentTypes": null, - "id": 814, + "id": 1842, "name": "vk_x", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 784, - "src": "10733:4:0", + "referencedDeclaration": 1812, + "src": "10731:4:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_memory_ptr", + "typeIdentifier": "t_struct$_G1Point_$1034_memory_ptr", "typeString": "struct Pairing.G1Point memory" } }, @@ -10926,51 +10926,51 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 817, + "id": 1845, "name": "vk", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 765, - "src": "10758:2:0", + "referencedDeclaration": 1793, + "src": "10756:2:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_VerifyingKey_$591_memory_ptr", + "typeIdentifier": "t_struct$_VerifyingKey_$1619_memory_ptr", "typeString": "struct Verifier.VerifyingKey memory" } }, - "id": 818, + "id": 1846, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "IC", "nodeType": "MemberAccess", - "referencedDeclaration": 590, - "src": "10758:5:0", + "referencedDeclaration": 1618, + "src": "10756:5:4", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_G1Point_$6_memory_$dyn_memory", + "typeIdentifier": "t_array$_t_struct$_G1Point_$1034_memory_$dyn_memory", "typeString": "struct Pairing.G1Point memory[] memory" } }, - "id": 822, + "id": 1850, "indexExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 821, + "id": 1849, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 819, + "id": 1847, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 792, - "src": "10764:1:0", + "referencedDeclaration": 1820, + "src": "10762:1:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -10981,14 +10981,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "31", - "id": 820, + "id": 1848, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "10768:1:0", + "src": "10766:1:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -10996,7 +10996,7 @@ }, "value": "1" }, - "src": "10764:5:0", + "src": "10762:5:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11007,9 +11007,9 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "10758:12:0", + "src": "10756:12:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_memory", + "typeIdentifier": "t_struct$_G1Point_$1034_memory", "typeString": "struct Pairing.G1Point memory" } }, @@ -11017,26 +11017,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 823, + "id": 1851, "name": "input", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 753, - "src": "10772:5:0", + "referencedDeclaration": 1781, + "src": "10770:5:4", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", "typeString": "uint256[] memory" } }, - "id": 825, + "id": 1853, "indexExpression": { "argumentTypes": null, - "id": 824, + "id": 1852, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 792, - "src": "10778:1:0", + "referencedDeclaration": 1820, + "src": "10776:1:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11047,7 +11047,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "10772:8:0", + "src": "10770:8:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11057,7 +11057,7 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_struct$_G1Point_$6_memory", + "typeIdentifier": "t_struct$_G1Point_$1034_memory", "typeString": "struct Pairing.G1Point memory" }, { @@ -11067,32 +11067,32 @@ ], "expression": { "argumentTypes": null, - "id": 815, + "id": 1843, "name": "Pairing", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 577, - "src": "10739:7:0", + "referencedDeclaration": 1605, + "src": "10737:7:4", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Pairing_$577_$", + "typeIdentifier": "t_type$_t_contract$_Pairing_$1605_$", "typeString": "type(library Pairing)" } }, - "id": 816, + "id": 1844, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "scalar_mul", "nodeType": "MemberAccess", - "referencedDeclaration": 178, - "src": "10739:18:0", + "referencedDeclaration": 1206, + "src": "10737:18:4", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_G1Point_$6_memory_ptr_$_t_uint256_$returns$_t_struct$_G1Point_$6_memory_ptr_$", + "typeIdentifier": "t_function_internal_view$_t_struct$_G1Point_$1034_memory_ptr_$_t_uint256_$returns$_t_struct$_G1Point_$1034_memory_ptr_$", "typeString": "function (struct Pairing.G1Point memory,uint256) view returns (struct Pairing.G1Point memory)" } }, - "id": 826, + "id": 1854, "isConstant": false, "isLValue": false, "isPure": false, @@ -11100,9 +11100,9 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "10739:42:0", + "src": "10737:42:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_memory_ptr", + "typeIdentifier": "t_struct$_G1Point_$1034_memory_ptr", "typeString": "struct Pairing.G1Point memory" } } @@ -11110,42 +11110,42 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_struct$_G1Point_$6_memory_ptr", + "typeIdentifier": "t_struct$_G1Point_$1034_memory_ptr", "typeString": "struct Pairing.G1Point memory" }, { - "typeIdentifier": "t_struct$_G1Point_$6_memory_ptr", + "typeIdentifier": "t_struct$_G1Point_$1034_memory_ptr", "typeString": "struct Pairing.G1Point memory" } ], "expression": { "argumentTypes": null, - "id": 812, + "id": 1840, "name": "Pairing", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 577, - "src": "10716:7:0", + "referencedDeclaration": 1605, + "src": "10714:7:4", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Pairing_$577_$", + "typeIdentifier": "t_type$_t_contract$_Pairing_$1605_$", "typeString": "type(library Pairing)" } }, - "id": 813, + "id": 1841, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "addition", "nodeType": "MemberAccess", - "referencedDeclaration": 133, - "src": "10716:16:0", + "referencedDeclaration": 1161, + "src": "10714:16:4", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_G1Point_$6_memory_ptr_$_t_struct$_G1Point_$6_memory_ptr_$returns$_t_struct$_G1Point_$6_memory_ptr_$", + "typeIdentifier": "t_function_internal_view$_t_struct$_G1Point_$1034_memory_ptr_$_t_struct$_G1Point_$1034_memory_ptr_$returns$_t_struct$_G1Point_$1034_memory_ptr_$", "typeString": "function (struct Pairing.G1Point memory,struct Pairing.G1Point memory) view returns (struct Pairing.G1Point memory)" } }, - "id": 827, + "id": 1855, "isConstant": false, "isLValue": false, "isPure": false, @@ -11153,21 +11153,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "10716:66:0", + "src": "10714:66:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_memory_ptr", + "typeIdentifier": "t_struct$_G1Point_$1034_memory_ptr", "typeString": "struct Pairing.G1Point memory" } }, - "src": "10709:73:0", + "src": "10707:73:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_memory_ptr", + "typeIdentifier": "t_struct$_G1Point_$1034_memory_ptr", "typeString": "struct Pairing.G1Point memory" } }, - "id": 829, + "id": 1857, "nodeType": "ExpressionStatement", - "src": "10709:73:0" + "src": "10707:73:4" } ] }, @@ -11177,19 +11177,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 798, + "id": 1826, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 795, + "id": 1823, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 792, - "src": "10586:1:0", + "referencedDeclaration": 1820, + "src": "10584:1:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11201,18 +11201,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 796, + "id": 1824, "name": "input", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 753, - "src": "10590:5:0", + "referencedDeclaration": 1781, + "src": "10588:5:4", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", "typeString": "uint256[] memory" } }, - "id": 797, + "id": 1825, "isConstant": false, "isLValue": false, "isPure": false, @@ -11220,31 +11220,31 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "10590:12:0", + "src": "10588:12:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "10586:16:0", + "src": "10584:16:4", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 831, + "id": 1859, "initializationExpression": { "assignments": [ - 792 + 1820 ], "declarations": [ { "constant": false, - "id": 792, + "id": 1820, "name": "i", "nodeType": "VariableDeclaration", - "scope": 831, - "src": "10574:6:0", + "scope": 1859, + "src": "10572:6:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -11252,10 +11252,10 @@ "typeString": "uint256" }, "typeName": { - "id": 791, + "id": 1819, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "10574:4:0", + "src": "10572:4:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11265,18 +11265,18 @@ "visibility": "internal" } ], - "id": 794, + "id": 1822, "initialValue": { "argumentTypes": null, "hexValue": "30", - "id": 793, + "id": 1821, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "10583:1:0", + "src": "10581:1:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -11285,12 +11285,12 @@ "value": "0" }, "nodeType": "VariableDeclarationStatement", - "src": "10574:10:0" + "src": "10572:10:4" }, "loopExpression": { "expression": { "argumentTypes": null, - "id": 800, + "id": 1828, "isConstant": false, "isLValue": false, "isPure": false, @@ -11298,15 +11298,15 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "10604:3:0", + "src": "10602:3:4", "subExpression": { "argumentTypes": null, - "id": 799, + "id": 1827, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 792, - "src": "10604:1:0", + "referencedDeclaration": 1820, + "src": "10602:1:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11317,31 +11317,31 @@ "typeString": "uint256" } }, - "id": 801, + "id": 1829, "nodeType": "ExpressionStatement", - "src": "10604:3:0" + "src": "10602:3:4" }, "nodeType": "ForStatement", - "src": "10569:224:0" + "src": "10567:224:4" }, { "expression": { "argumentTypes": null, - "id": 841, + "id": 1869, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 832, + "id": 1860, "name": "vk_x", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 784, - "src": "10802:4:0", + "referencedDeclaration": 1812, + "src": "10800:4:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_memory_ptr", + "typeIdentifier": "t_struct$_G1Point_$1034_memory_ptr", "typeString": "struct Pairing.G1Point memory" } }, @@ -11352,14 +11352,14 @@ "arguments": [ { "argumentTypes": null, - "id": 835, + "id": 1863, "name": "vk_x", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 784, - "src": "10826:4:0", + "referencedDeclaration": 1812, + "src": "10824:4:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_memory_ptr", + "typeIdentifier": "t_struct$_G1Point_$1034_memory_ptr", "typeString": "struct Pairing.G1Point memory" } }, @@ -11369,43 +11369,43 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 836, + "id": 1864, "name": "vk", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 765, - "src": "10832:2:0", + "referencedDeclaration": 1793, + "src": "10830:2:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_VerifyingKey_$591_memory_ptr", + "typeIdentifier": "t_struct$_VerifyingKey_$1619_memory_ptr", "typeString": "struct Verifier.VerifyingKey memory" } }, - "id": 837, + "id": 1865, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "IC", "nodeType": "MemberAccess", - "referencedDeclaration": 590, - "src": "10832:5:0", + "referencedDeclaration": 1618, + "src": "10830:5:4", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_G1Point_$6_memory_$dyn_memory", + "typeIdentifier": "t_array$_t_struct$_G1Point_$1034_memory_$dyn_memory", "typeString": "struct Pairing.G1Point memory[] memory" } }, - "id": 839, + "id": 1867, "indexExpression": { "argumentTypes": null, "hexValue": "30", - "id": 838, + "id": 1866, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "10838:1:0", + "src": "10836:1:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -11418,9 +11418,9 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "10832:8:0", + "src": "10830:8:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_memory", + "typeIdentifier": "t_struct$_G1Point_$1034_memory", "typeString": "struct Pairing.G1Point memory" } } @@ -11428,42 +11428,42 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_struct$_G1Point_$6_memory_ptr", + "typeIdentifier": "t_struct$_G1Point_$1034_memory_ptr", "typeString": "struct Pairing.G1Point memory" }, { - "typeIdentifier": "t_struct$_G1Point_$6_memory", + "typeIdentifier": "t_struct$_G1Point_$1034_memory", "typeString": "struct Pairing.G1Point memory" } ], "expression": { "argumentTypes": null, - "id": 833, + "id": 1861, "name": "Pairing", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 577, - "src": "10809:7:0", + "referencedDeclaration": 1605, + "src": "10807:7:4", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Pairing_$577_$", + "typeIdentifier": "t_type$_t_contract$_Pairing_$1605_$", "typeString": "type(library Pairing)" } }, - "id": 834, + "id": 1862, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "addition", "nodeType": "MemberAccess", - "referencedDeclaration": 133, - "src": "10809:16:0", + "referencedDeclaration": 1161, + "src": "10807:16:4", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_G1Point_$6_memory_ptr_$_t_struct$_G1Point_$6_memory_ptr_$returns$_t_struct$_G1Point_$6_memory_ptr_$", + "typeIdentifier": "t_function_internal_view$_t_struct$_G1Point_$1034_memory_ptr_$_t_struct$_G1Point_$1034_memory_ptr_$returns$_t_struct$_G1Point_$1034_memory_ptr_$", "typeString": "function (struct Pairing.G1Point memory,struct Pairing.G1Point memory) view returns (struct Pairing.G1Point memory)" } }, - "id": 840, + "id": 1868, "isConstant": false, "isLValue": false, "isPure": false, @@ -11471,26 +11471,26 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "10809:32:0", + "src": "10807:32:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_memory_ptr", + "typeIdentifier": "t_struct$_G1Point_$1034_memory_ptr", "typeString": "struct Pairing.G1Point memory" } }, - "src": "10802:39:0", + "src": "10800:39:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_memory_ptr", + "typeIdentifier": "t_struct$_G1Point_$1034_memory_ptr", "typeString": "struct Pairing.G1Point memory" } }, - "id": 842, + "id": 1870, "nodeType": "ExpressionStatement", - "src": "10802:39:0" + "src": "10800:39:4" }, { "condition": { "argumentTypes": null, - "id": 864, + "id": 1892, "isConstant": false, "isLValue": false, "isPure": false, @@ -11498,7 +11498,7 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "10855:170:0", + "src": "10853:170:4", "subExpression": { "argumentTypes": null, "arguments": [ @@ -11509,28 +11509,28 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 847, + "id": 1875, "name": "proof", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 755, - "src": "10905:5:0", + "referencedDeclaration": 1783, + "src": "10903:5:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_Proof_$598_memory_ptr", + "typeIdentifier": "t_struct$_Proof_$1626_memory_ptr", "typeString": "struct Verifier.Proof memory" } }, - "id": 848, + "id": 1876, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "A", "nodeType": "MemberAccess", - "referencedDeclaration": 593, - "src": "10905:7:0", + "referencedDeclaration": 1621, + "src": "10903:7:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_memory", + "typeIdentifier": "t_struct$_G1Point_$1034_memory", "typeString": "struct Pairing.G1Point memory" } } @@ -11538,38 +11538,38 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_struct$_G1Point_$6_memory", + "typeIdentifier": "t_struct$_G1Point_$1034_memory", "typeString": "struct Pairing.G1Point memory" } ], "expression": { "argumentTypes": null, - "id": 845, + "id": 1873, "name": "Pairing", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 577, - "src": "10890:7:0", + "referencedDeclaration": 1605, + "src": "10888:7:4", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Pairing_$577_$", + "typeIdentifier": "t_type$_t_contract$_Pairing_$1605_$", "typeString": "type(library Pairing)" } }, - "id": 846, + "id": 1874, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "negate", "nodeType": "MemberAccess", - "referencedDeclaration": 80, - "src": "10890:14:0", + "referencedDeclaration": 1108, + "src": "10888:14:4", "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_struct$_G1Point_$6_memory_ptr_$returns$_t_struct$_G1Point_$6_memory_ptr_$", + "typeIdentifier": "t_function_internal_pure$_t_struct$_G1Point_$1034_memory_ptr_$returns$_t_struct$_G1Point_$1034_memory_ptr_$", "typeString": "function (struct Pairing.G1Point memory) pure returns (struct Pairing.G1Point memory)" } }, - "id": 849, + "id": 1877, "isConstant": false, "isLValue": false, "isPure": false, @@ -11577,9 +11577,9 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "10890:23:0", + "src": "10888:23:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_memory_ptr", + "typeIdentifier": "t_struct$_G1Point_$1034_memory_ptr", "typeString": "struct Pairing.G1Point memory" } }, @@ -11587,28 +11587,28 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 850, + "id": 1878, "name": "proof", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 755, - "src": "10915:5:0", + "referencedDeclaration": 1783, + "src": "10913:5:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_Proof_$598_memory_ptr", + "typeIdentifier": "t_struct$_Proof_$1626_memory_ptr", "typeString": "struct Verifier.Proof memory" } }, - "id": 851, + "id": 1879, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "B", "nodeType": "MemberAccess", - "referencedDeclaration": 595, - "src": "10915:7:0", + "referencedDeclaration": 1623, + "src": "10913:7:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G2Point_$15_memory", + "typeIdentifier": "t_struct$_G2Point_$1043_memory", "typeString": "struct Pairing.G2Point memory" } }, @@ -11616,28 +11616,28 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 852, + "id": 1880, "name": "vk", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 765, - "src": "10936:2:0", + "referencedDeclaration": 1793, + "src": "10934:2:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_VerifyingKey_$591_memory_ptr", + "typeIdentifier": "t_struct$_VerifyingKey_$1619_memory_ptr", "typeString": "struct Verifier.VerifyingKey memory" } }, - "id": 853, + "id": 1881, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "alfa1", "nodeType": "MemberAccess", - "referencedDeclaration": 581, - "src": "10936:8:0", + "referencedDeclaration": 1609, + "src": "10934:8:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_memory", + "typeIdentifier": "t_struct$_G1Point_$1034_memory", "typeString": "struct Pairing.G1Point memory" } }, @@ -11645,41 +11645,41 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 854, + "id": 1882, "name": "vk", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 765, - "src": "10946:2:0", + "referencedDeclaration": 1793, + "src": "10944:2:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_VerifyingKey_$591_memory_ptr", + "typeIdentifier": "t_struct$_VerifyingKey_$1619_memory_ptr", "typeString": "struct Verifier.VerifyingKey memory" } }, - "id": 855, + "id": 1883, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "beta2", "nodeType": "MemberAccess", - "referencedDeclaration": 583, - "src": "10946:8:0", + "referencedDeclaration": 1611, + "src": "10944:8:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G2Point_$15_memory", + "typeIdentifier": "t_struct$_G2Point_$1043_memory", "typeString": "struct Pairing.G2Point memory" } }, { "argumentTypes": null, - "id": 856, + "id": 1884, "name": "vk_x", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 784, - "src": "10968:4:0", + "referencedDeclaration": 1812, + "src": "10966:4:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_memory_ptr", + "typeIdentifier": "t_struct$_G1Point_$1034_memory_ptr", "typeString": "struct Pairing.G1Point memory" } }, @@ -11687,28 +11687,28 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 857, + "id": 1885, "name": "vk", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 765, - "src": "10974:2:0", + "referencedDeclaration": 1793, + "src": "10972:2:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_VerifyingKey_$591_memory_ptr", + "typeIdentifier": "t_struct$_VerifyingKey_$1619_memory_ptr", "typeString": "struct Verifier.VerifyingKey memory" } }, - "id": 858, + "id": 1886, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "gamma2", "nodeType": "MemberAccess", - "referencedDeclaration": 585, - "src": "10974:9:0", + "referencedDeclaration": 1613, + "src": "10972:9:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G2Point_$15_memory", + "typeIdentifier": "t_struct$_G2Point_$1043_memory", "typeString": "struct Pairing.G2Point memory" } }, @@ -11716,28 +11716,28 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 859, + "id": 1887, "name": "proof", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 755, - "src": "10997:5:0", + "referencedDeclaration": 1783, + "src": "10995:5:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_Proof_$598_memory_ptr", + "typeIdentifier": "t_struct$_Proof_$1626_memory_ptr", "typeString": "struct Verifier.Proof memory" } }, - "id": 860, + "id": 1888, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "C", "nodeType": "MemberAccess", - "referencedDeclaration": 597, - "src": "10997:7:0", + "referencedDeclaration": 1625, + "src": "10995:7:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_memory", + "typeIdentifier": "t_struct$_G1Point_$1034_memory", "typeString": "struct Pairing.G1Point memory" } }, @@ -11745,28 +11745,28 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 861, + "id": 1889, "name": "vk", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 765, - "src": "11006:2:0", + "referencedDeclaration": 1793, + "src": "11004:2:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_VerifyingKey_$591_memory_ptr", + "typeIdentifier": "t_struct$_VerifyingKey_$1619_memory_ptr", "typeString": "struct Verifier.VerifyingKey memory" } }, - "id": 862, + "id": 1890, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "delta2", "nodeType": "MemberAccess", - "referencedDeclaration": 587, - "src": "11006:9:0", + "referencedDeclaration": 1615, + "src": "11004:9:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G2Point_$15_memory", + "typeIdentifier": "t_struct$_G2Point_$1043_memory", "typeString": "struct Pairing.G2Point memory" } } @@ -11774,66 +11774,66 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_struct$_G1Point_$6_memory_ptr", + "typeIdentifier": "t_struct$_G1Point_$1034_memory_ptr", "typeString": "struct Pairing.G1Point memory" }, { - "typeIdentifier": "t_struct$_G2Point_$15_memory", + "typeIdentifier": "t_struct$_G2Point_$1043_memory", "typeString": "struct Pairing.G2Point memory" }, { - "typeIdentifier": "t_struct$_G1Point_$6_memory", + "typeIdentifier": "t_struct$_G1Point_$1034_memory", "typeString": "struct Pairing.G1Point memory" }, { - "typeIdentifier": "t_struct$_G2Point_$15_memory", + "typeIdentifier": "t_struct$_G2Point_$1043_memory", "typeString": "struct Pairing.G2Point memory" }, { - "typeIdentifier": "t_struct$_G1Point_$6_memory_ptr", + "typeIdentifier": "t_struct$_G1Point_$1034_memory_ptr", "typeString": "struct Pairing.G1Point memory" }, { - "typeIdentifier": "t_struct$_G2Point_$15_memory", + "typeIdentifier": "t_struct$_G2Point_$1043_memory", "typeString": "struct Pairing.G2Point memory" }, { - "typeIdentifier": "t_struct$_G1Point_$6_memory", + "typeIdentifier": "t_struct$_G1Point_$1034_memory", "typeString": "struct Pairing.G1Point memory" }, { - "typeIdentifier": "t_struct$_G2Point_$15_memory", + "typeIdentifier": "t_struct$_G2Point_$1043_memory", "typeString": "struct Pairing.G2Point memory" } ], "expression": { "argumentTypes": null, - "id": 843, + "id": 1871, "name": "Pairing", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 577, - "src": "10856:7:0", + "referencedDeclaration": 1605, + "src": "10854:7:4", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Pairing_$577_$", + "typeIdentifier": "t_type$_t_contract$_Pairing_$1605_$", "typeString": "type(library Pairing)" } }, - "id": 844, + "id": 1872, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "pairingProd4", "nodeType": "MemberAccess", - "referencedDeclaration": 576, - "src": "10856:20:0", + "referencedDeclaration": 1604, + "src": "10854:20:4", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_G1Point_$6_memory_ptr_$_t_struct$_G2Point_$15_memory_ptr_$_t_struct$_G1Point_$6_memory_ptr_$_t_struct$_G2Point_$15_memory_ptr_$_t_struct$_G1Point_$6_memory_ptr_$_t_struct$_G2Point_$15_memory_ptr_$_t_struct$_G1Point_$6_memory_ptr_$_t_struct$_G2Point_$15_memory_ptr_$returns$_t_bool_$", + "typeIdentifier": "t_function_internal_view$_t_struct$_G1Point_$1034_memory_ptr_$_t_struct$_G2Point_$1043_memory_ptr_$_t_struct$_G1Point_$1034_memory_ptr_$_t_struct$_G2Point_$1043_memory_ptr_$_t_struct$_G1Point_$1034_memory_ptr_$_t_struct$_G2Point_$1043_memory_ptr_$_t_struct$_G1Point_$1034_memory_ptr_$_t_struct$_G2Point_$1043_memory_ptr_$returns$_t_bool_$", "typeString": "function (struct Pairing.G1Point memory,struct Pairing.G2Point memory,struct Pairing.G1Point memory,struct Pairing.G2Point memory,struct Pairing.G1Point memory,struct Pairing.G2Point memory,struct Pairing.G1Point memory,struct Pairing.G2Point memory) view returns (bool)" } }, - "id": 863, + "id": 1891, "isConstant": false, "isLValue": false, "isPure": false, @@ -11841,7 +11841,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "10856:169:0", + "src": "10854:169:4", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -11853,21 +11853,21 @@ } }, "falseBody": null, - "id": 867, + "id": 1895, "nodeType": "IfStatement", - "src": "10851:184:0", + "src": "10849:184:4", "trueBody": { "expression": { "argumentTypes": null, "hexValue": "31", - "id": 865, + "id": 1893, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "11034:1:0", + "src": "11032:1:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -11875,24 +11875,24 @@ }, "value": "1" }, - "functionReturnParameters": 759, - "id": 866, + "functionReturnParameters": 1787, + "id": 1894, "nodeType": "Return", - "src": "11027:8:0" + "src": "11025:8:4" } }, { "expression": { "argumentTypes": null, "hexValue": "30", - "id": 868, + "id": 1896, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "11052:1:0", + "src": "11050:1:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -11900,31 +11900,31 @@ }, "value": "0" }, - "functionReturnParameters": 759, - "id": 869, + "functionReturnParameters": 1787, + "id": 1897, "nodeType": "Return", - "src": "11045:8:0" + "src": "11043:8:4" } ] }, "documentation": null, - "id": 871, + "id": 1899, "implemented": true, "kind": "function", "modifiers": [], "name": "verify", "nodeType": "FunctionDefinition", "parameters": { - "id": 756, + "id": 1784, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 753, + "id": 1781, "name": "input", "nodeType": "VariableDeclaration", - "scope": 871, - "src": "10144:19:0", + "scope": 1899, + "src": "10142:19:4", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -11933,19 +11933,19 @@ }, "typeName": { "baseType": { - "id": 751, + "id": 1779, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "10144:4:0", + "src": "10142:4:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 752, + "id": 1780, "length": null, "nodeType": "ArrayTypeName", - "src": "10144:6:0", + "src": "10142:6:4", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", "typeString": "uint256[]" @@ -11956,26 +11956,26 @@ }, { "constant": false, - "id": 755, + "id": 1783, "name": "proof", "nodeType": "VariableDeclaration", - "scope": 871, - "src": "10165:18:0", + "scope": 1899, + "src": "10163:18:4", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_struct$_Proof_$598_memory_ptr", + "typeIdentifier": "t_struct$_Proof_$1626_memory_ptr", "typeString": "struct Verifier.Proof" }, "typeName": { "contractScope": null, - "id": 754, + "id": 1782, "name": "Proof", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 598, - "src": "10165:5:0", + "referencedDeclaration": 1626, + "src": "10163:5:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_Proof_$598_storage_ptr", + "typeIdentifier": "t_struct$_Proof_$1626_storage_ptr", "typeString": "struct Verifier.Proof" } }, @@ -11983,19 +11983,19 @@ "visibility": "internal" } ], - "src": "10143:41:0" + "src": "10141:41:4" }, "returnParameters": { - "id": 759, + "id": 1787, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 758, + "id": 1786, "name": "", "nodeType": "VariableDeclaration", - "scope": 871, - "src": "10208:4:0", + "scope": 1899, + "src": "10206:4:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -12003,10 +12003,10 @@ "typeString": "uint256" }, "typeName": { - "id": 757, + "id": 1785, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "10208:4:0", + "src": "10206:4:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -12016,47 +12016,47 @@ "visibility": "internal" } ], - "src": "10207:6:0" + "src": "10205:6:4" }, - "scope": 1058, - "src": "10128:932:0", + "scope": 2086, + "src": "10126:932:4", "stateMutability": "view", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 1000, + "id": 2028, "nodeType": "Block", - "src": "11252:488:0", + "src": "11250:488:4", "statements": [ { "assignments": [ - 895 + 1923 ], "declarations": [ { "constant": false, - "id": 895, + "id": 1923, "name": "proof", "nodeType": "VariableDeclaration", - "scope": 1000, - "src": "11262:18:0", + "scope": 2028, + "src": "11260:18:4", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_struct$_Proof_$598_memory_ptr", + "typeIdentifier": "t_struct$_Proof_$1626_memory_ptr", "typeString": "struct Verifier.Proof" }, "typeName": { "contractScope": null, - "id": 894, + "id": 1922, "name": "Proof", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 598, - "src": "11262:5:0", + "referencedDeclaration": 1626, + "src": "11260:5:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_Proof_$598_storage_ptr", + "typeIdentifier": "t_struct$_Proof_$1626_storage_ptr", "typeString": "struct Verifier.Proof" } }, @@ -12064,15 +12064,15 @@ "visibility": "internal" } ], - "id": 896, + "id": 1924, "initialValue": null, "nodeType": "VariableDeclarationStatement", - "src": "11262:18:0" + "src": "11260:18:4" }, { "expression": { "argumentTypes": null, - "id": 909, + "id": 1937, "isConstant": false, "isLValue": false, "isPure": false, @@ -12081,28 +12081,28 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 897, + "id": 1925, "name": "proof", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 895, - "src": "11290:5:0", + "referencedDeclaration": 1923, + "src": "11288:5:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_Proof_$598_memory_ptr", + "typeIdentifier": "t_struct$_Proof_$1626_memory_ptr", "typeString": "struct Verifier.Proof memory" } }, - "id": 899, + "id": 1927, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberName": "A", "nodeType": "MemberAccess", - "referencedDeclaration": 593, - "src": "11290:7:0", + "referencedDeclaration": 1621, + "src": "11288:7:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_memory", + "typeIdentifier": "t_struct$_G1Point_$1034_memory", "typeString": "struct Pairing.G1Point memory" } }, @@ -12115,29 +12115,29 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 902, + "id": 1930, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 875, - "src": "11316:1:0", + "referencedDeclaration": 1903, + "src": "11314:1:4", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", "typeString": "uint256[2] memory" } }, - "id": 904, + "id": 1932, "indexExpression": { "argumentTypes": null, "hexValue": "30", - "id": 903, + "id": 1931, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "11318:1:0", + "src": "11316:1:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -12150,7 +12150,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "11316:4:0", + "src": "11314:4:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -12160,29 +12160,29 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 905, + "id": 1933, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 875, - "src": "11322:1:0", + "referencedDeclaration": 1903, + "src": "11320:1:4", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", "typeString": "uint256[2] memory" } }, - "id": 907, + "id": 1935, "indexExpression": { "argumentTypes": null, "hexValue": "31", - "id": 906, + "id": 1934, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "11324:1:0", + "src": "11322:1:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -12195,7 +12195,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "11322:4:0", + "src": "11320:4:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -12215,32 +12215,32 @@ ], "expression": { "argumentTypes": null, - "id": 900, + "id": 1928, "name": "Pairing", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 577, - "src": "11300:7:0", + "referencedDeclaration": 1605, + "src": "11298:7:4", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Pairing_$577_$", + "typeIdentifier": "t_type$_t_contract$_Pairing_$1605_$", "typeString": "type(library Pairing)" } }, - "id": 901, + "id": 1929, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "G1Point", "nodeType": "MemberAccess", - "referencedDeclaration": 6, - "src": "11300:15:0", + "referencedDeclaration": 1034, + "src": "11298:15:4", "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_G1Point_$6_storage_ptr_$", + "typeIdentifier": "t_type$_t_struct$_G1Point_$1034_storage_ptr_$", "typeString": "type(struct Pairing.G1Point storage pointer)" } }, - "id": 908, + "id": 1936, "isConstant": false, "isLValue": false, "isPure": false, @@ -12248,26 +12248,26 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "11300:27:0", + "src": "11298:27:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_memory", + "typeIdentifier": "t_struct$_G1Point_$1034_memory", "typeString": "struct Pairing.G1Point memory" } }, - "src": "11290:37:0", + "src": "11288:37:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_memory", + "typeIdentifier": "t_struct$_G1Point_$1034_memory", "typeString": "struct Pairing.G1Point memory" } }, - "id": 910, + "id": 1938, "nodeType": "ExpressionStatement", - "src": "11290:37:0" + "src": "11288:37:4" }, { "expression": { "argumentTypes": null, - "id": 939, + "id": 1967, "isConstant": false, "isLValue": false, "isPure": false, @@ -12276,28 +12276,28 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 911, + "id": 1939, "name": "proof", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 895, - "src": "11337:5:0", + "referencedDeclaration": 1923, + "src": "11335:5:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_Proof_$598_memory_ptr", + "typeIdentifier": "t_struct$_Proof_$1626_memory_ptr", "typeString": "struct Verifier.Proof memory" } }, - "id": 913, + "id": 1941, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberName": "B", "nodeType": "MemberAccess", - "referencedDeclaration": 595, - "src": "11337:7:0", + "referencedDeclaration": 1623, + "src": "11335:7:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G2Point_$15_memory", + "typeIdentifier": "t_struct$_G2Point_$1043_memory", "typeString": "struct Pairing.G2Point memory" } }, @@ -12315,29 +12315,29 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 916, + "id": 1944, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 881, - "src": "11364:1:0", + "referencedDeclaration": 1909, + "src": "11362:1:4", "typeDescriptions": { "typeIdentifier": "t_array$_t_array$_t_uint256_$2_memory_$2_memory_ptr", "typeString": "uint256[2] memory[2] memory" } }, - "id": 918, + "id": 1946, "indexExpression": { "argumentTypes": null, "hexValue": "30", - "id": 917, + "id": 1945, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "11366:1:0", + "src": "11364:1:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -12350,24 +12350,24 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "11364:4:0", + "src": "11362:4:4", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$2_memory", "typeString": "uint256[2] memory" } }, - "id": 920, + "id": 1948, "indexExpression": { "argumentTypes": null, "hexValue": "30", - "id": 919, + "id": 1947, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "11369:1:0", + "src": "11367:1:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -12380,7 +12380,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "11364:7:0", + "src": "11362:7:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -12392,29 +12392,29 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 921, + "id": 1949, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 881, - "src": "11373:1:0", + "referencedDeclaration": 1909, + "src": "11371:1:4", "typeDescriptions": { "typeIdentifier": "t_array$_t_array$_t_uint256_$2_memory_$2_memory_ptr", "typeString": "uint256[2] memory[2] memory" } }, - "id": 923, + "id": 1951, "indexExpression": { "argumentTypes": null, "hexValue": "30", - "id": 922, + "id": 1950, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "11375:1:0", + "src": "11373:1:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -12427,24 +12427,24 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "11373:4:0", + "src": "11371:4:4", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$2_memory", "typeString": "uint256[2] memory" } }, - "id": 925, + "id": 1953, "indexExpression": { "argumentTypes": null, "hexValue": "31", - "id": 924, + "id": 1952, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "11378:1:0", + "src": "11376:1:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -12457,21 +12457,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "11373:7:0", + "src": "11371:7:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], - "id": 926, + "id": 1954, "isConstant": false, "isInlineArray": true, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "11363:18:0", + "src": "11361:18:4", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", "typeString": "uint256[2] memory" @@ -12486,29 +12486,29 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 927, + "id": 1955, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 881, - "src": "11384:1:0", + "referencedDeclaration": 1909, + "src": "11382:1:4", "typeDescriptions": { "typeIdentifier": "t_array$_t_array$_t_uint256_$2_memory_$2_memory_ptr", "typeString": "uint256[2] memory[2] memory" } }, - "id": 929, + "id": 1957, "indexExpression": { "argumentTypes": null, "hexValue": "31", - "id": 928, + "id": 1956, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "11386:1:0", + "src": "11384:1:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -12521,24 +12521,24 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "11384:4:0", + "src": "11382:4:4", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$2_memory", "typeString": "uint256[2] memory" } }, - "id": 931, + "id": 1959, "indexExpression": { "argumentTypes": null, "hexValue": "30", - "id": 930, + "id": 1958, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "11389:1:0", + "src": "11387:1:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -12551,7 +12551,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "11384:7:0", + "src": "11382:7:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -12563,29 +12563,29 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 932, + "id": 1960, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 881, - "src": "11393:1:0", + "referencedDeclaration": 1909, + "src": "11391:1:4", "typeDescriptions": { "typeIdentifier": "t_array$_t_array$_t_uint256_$2_memory_$2_memory_ptr", "typeString": "uint256[2] memory[2] memory" } }, - "id": 934, + "id": 1962, "indexExpression": { "argumentTypes": null, "hexValue": "31", - "id": 933, + "id": 1961, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "11395:1:0", + "src": "11393:1:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -12598,24 +12598,24 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "11393:4:0", + "src": "11391:4:4", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$2_memory", "typeString": "uint256[2] memory" } }, - "id": 936, + "id": 1964, "indexExpression": { "argumentTypes": null, "hexValue": "31", - "id": 935, + "id": 1963, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "11398:1:0", + "src": "11396:1:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -12628,21 +12628,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "11393:7:0", + "src": "11391:7:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], - "id": 937, + "id": 1965, "isConstant": false, "isInlineArray": true, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "11383:18:0", + "src": "11381:18:4", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", "typeString": "uint256[2] memory" @@ -12662,32 +12662,32 @@ ], "expression": { "argumentTypes": null, - "id": 914, + "id": 1942, "name": "Pairing", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 577, - "src": "11347:7:0", + "referencedDeclaration": 1605, + "src": "11345:7:4", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Pairing_$577_$", + "typeIdentifier": "t_type$_t_contract$_Pairing_$1605_$", "typeString": "type(library Pairing)" } }, - "id": 915, + "id": 1943, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "G2Point", "nodeType": "MemberAccess", - "referencedDeclaration": 15, - "src": "11347:15:0", + "referencedDeclaration": 1043, + "src": "11345:15:4", "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_G2Point_$15_storage_ptr_$", + "typeIdentifier": "t_type$_t_struct$_G2Point_$1043_storage_ptr_$", "typeString": "type(struct Pairing.G2Point storage pointer)" } }, - "id": 938, + "id": 1966, "isConstant": false, "isLValue": false, "isPure": false, @@ -12695,26 +12695,26 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "11347:55:0", + "src": "11345:55:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G2Point_$15_memory", + "typeIdentifier": "t_struct$_G2Point_$1043_memory", "typeString": "struct Pairing.G2Point memory" } }, - "src": "11337:65:0", + "src": "11335:65:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G2Point_$15_memory", + "typeIdentifier": "t_struct$_G2Point_$1043_memory", "typeString": "struct Pairing.G2Point memory" } }, - "id": 940, + "id": 1968, "nodeType": "ExpressionStatement", - "src": "11337:65:0" + "src": "11335:65:4" }, { "expression": { "argumentTypes": null, - "id": 953, + "id": 1981, "isConstant": false, "isLValue": false, "isPure": false, @@ -12723,28 +12723,28 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 941, + "id": 1969, "name": "proof", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 895, - "src": "11412:5:0", + "referencedDeclaration": 1923, + "src": "11410:5:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_Proof_$598_memory_ptr", + "typeIdentifier": "t_struct$_Proof_$1626_memory_ptr", "typeString": "struct Verifier.Proof memory" } }, - "id": 943, + "id": 1971, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberName": "C", "nodeType": "MemberAccess", - "referencedDeclaration": 597, - "src": "11412:7:0", + "referencedDeclaration": 1625, + "src": "11410:7:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_memory", + "typeIdentifier": "t_struct$_G1Point_$1034_memory", "typeString": "struct Pairing.G1Point memory" } }, @@ -12757,29 +12757,29 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 946, + "id": 1974, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 885, - "src": "11438:1:0", + "referencedDeclaration": 1913, + "src": "11436:1:4", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", "typeString": "uint256[2] memory" } }, - "id": 948, + "id": 1976, "indexExpression": { "argumentTypes": null, "hexValue": "30", - "id": 947, + "id": 1975, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "11440:1:0", + "src": "11438:1:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -12792,7 +12792,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "11438:4:0", + "src": "11436:4:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -12802,29 +12802,29 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 949, + "id": 1977, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 885, - "src": "11444:1:0", + "referencedDeclaration": 1913, + "src": "11442:1:4", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", "typeString": "uint256[2] memory" } }, - "id": 951, + "id": 1979, "indexExpression": { "argumentTypes": null, "hexValue": "31", - "id": 950, + "id": 1978, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "11446:1:0", + "src": "11444:1:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -12837,7 +12837,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "11444:4:0", + "src": "11442:4:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -12857,32 +12857,32 @@ ], "expression": { "argumentTypes": null, - "id": 944, + "id": 1972, "name": "Pairing", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 577, - "src": "11422:7:0", + "referencedDeclaration": 1605, + "src": "11420:7:4", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Pairing_$577_$", + "typeIdentifier": "t_type$_t_contract$_Pairing_$1605_$", "typeString": "type(library Pairing)" } }, - "id": 945, + "id": 1973, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "G1Point", "nodeType": "MemberAccess", - "referencedDeclaration": 6, - "src": "11422:15:0", + "referencedDeclaration": 1034, + "src": "11420:15:4", "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_G1Point_$6_storage_ptr_$", + "typeIdentifier": "t_type$_t_struct$_G1Point_$1034_storage_ptr_$", "typeString": "type(struct Pairing.G1Point storage pointer)" } }, - "id": 952, + "id": 1980, "isConstant": false, "isLValue": false, "isPure": false, @@ -12890,34 +12890,34 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "11422:27:0", + "src": "11420:27:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_memory", + "typeIdentifier": "t_struct$_G1Point_$1034_memory", "typeString": "struct Pairing.G1Point memory" } }, - "src": "11412:37:0", + "src": "11410:37:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_memory", + "typeIdentifier": "t_struct$_G1Point_$1034_memory", "typeString": "struct Pairing.G1Point memory" } }, - "id": 954, + "id": 1982, "nodeType": "ExpressionStatement", - "src": "11412:37:0" + "src": "11410:37:4" }, { "assignments": [ - 958 + 1986 ], "declarations": [ { "constant": false, - "id": 958, + "id": 1986, "name": "inputValues", "nodeType": "VariableDeclaration", - "scope": 1000, - "src": "11459:25:0", + "scope": 2028, + "src": "11457:25:4", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -12926,19 +12926,19 @@ }, "typeName": { "baseType": { - "id": 956, + "id": 1984, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "11459:4:0", + "src": "11457:4:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 957, + "id": 1985, "length": null, "nodeType": "ArrayTypeName", - "src": "11459:6:0", + "src": "11457:6:4", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", "typeString": "uint256[]" @@ -12948,7 +12948,7 @@ "visibility": "internal" } ], - "id": 965, + "id": 1993, "initialValue": { "argumentTypes": null, "arguments": [ @@ -12956,18 +12956,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 962, + "id": 1990, "name": "input", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 889, - "src": "11498:5:0", + "referencedDeclaration": 1917, + "src": "11496:5:4", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$6_memory_ptr", "typeString": "uint256[6] memory" } }, - "id": 963, + "id": 1991, "isConstant": false, "isLValue": false, "isPure": false, @@ -12975,7 +12975,7 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "11498:12:0", + "src": "11496:12:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -12989,39 +12989,39 @@ "typeString": "uint256" } ], - "id": 961, + "id": 1989, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "NewExpression", - "src": "11487:10:0", + "src": "11485:10:4", "typeDescriptions": { "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_$", "typeString": "function (uint256) pure returns (uint256[] memory)" }, "typeName": { "baseType": { - "id": 959, + "id": 1987, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "11491:4:0", + "src": "11489:4:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 960, + "id": 1988, "length": null, "nodeType": "ArrayTypeName", - "src": "11491:6:0", + "src": "11489:6:4", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", "typeString": "uint256[]" } } }, - "id": 964, + "id": 1992, "isConstant": false, "isLValue": false, "isPure": false, @@ -13029,25 +13029,25 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "11487:24:0", + "src": "11485:24:4", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_memory", "typeString": "uint256[] memory" } }, "nodeType": "VariableDeclarationStatement", - "src": "11459:52:0" + "src": "11457:52:4" }, { "body": { - "id": 985, + "id": 2013, "nodeType": "Block", - "src": "11559:50:0", + "src": "11557:50:4", "statements": [ { "expression": { "argumentTypes": null, - "id": 983, + "id": 2011, "isConstant": false, "isLValue": false, "isPure": false, @@ -13056,26 +13056,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 977, + "id": 2005, "name": "inputValues", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 958, - "src": "11573:11:0", + "referencedDeclaration": 1986, + "src": "11571:11:4", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", "typeString": "uint256[] memory" } }, - "id": 979, + "id": 2007, "indexExpression": { "argumentTypes": null, - "id": 978, + "id": 2006, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 967, - "src": "11585:1:0", + "referencedDeclaration": 1995, + "src": "11583:1:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -13086,7 +13086,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "11573:14:0", + "src": "11571:14:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -13098,26 +13098,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 980, + "id": 2008, "name": "input", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 889, - "src": "11590:5:0", + "referencedDeclaration": 1917, + "src": "11588:5:4", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$6_memory_ptr", "typeString": "uint256[6] memory" } }, - "id": 982, + "id": 2010, "indexExpression": { "argumentTypes": null, - "id": 981, + "id": 2009, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 967, - "src": "11596:1:0", + "referencedDeclaration": 1995, + "src": "11594:1:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -13128,21 +13128,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "11590:8:0", + "src": "11588:8:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "11573:25:0", + "src": "11571:25:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 984, + "id": 2012, "nodeType": "ExpressionStatement", - "src": "11573:25:0" + "src": "11571:25:4" } ] }, @@ -13152,19 +13152,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 973, + "id": 2001, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 970, + "id": 1998, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 967, - "src": "11537:1:0", + "referencedDeclaration": 1995, + "src": "11535:1:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -13176,18 +13176,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 971, + "id": 1999, "name": "input", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 889, - "src": "11541:5:0", + "referencedDeclaration": 1917, + "src": "11539:5:4", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$6_memory_ptr", "typeString": "uint256[6] memory" } }, - "id": 972, + "id": 2000, "isConstant": false, "isLValue": false, "isPure": false, @@ -13195,31 +13195,31 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "11541:12:0", + "src": "11539:12:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "11537:16:0", + "src": "11535:16:4", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 986, + "id": 2014, "initializationExpression": { "assignments": [ - 967 + 1995 ], "declarations": [ { "constant": false, - "id": 967, + "id": 1995, "name": "i", "nodeType": "VariableDeclaration", - "scope": 986, - "src": "11525:6:0", + "scope": 2014, + "src": "11523:6:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -13227,10 +13227,10 @@ "typeString": "uint256" }, "typeName": { - "id": 966, + "id": 1994, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "11525:4:0", + "src": "11523:4:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -13240,18 +13240,18 @@ "visibility": "internal" } ], - "id": 969, + "id": 1997, "initialValue": { "argumentTypes": null, "hexValue": "30", - "id": 968, + "id": 1996, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "11534:1:0", + "src": "11532:1:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -13260,12 +13260,12 @@ "value": "0" }, "nodeType": "VariableDeclarationStatement", - "src": "11525:10:0" + "src": "11523:10:4" }, "loopExpression": { "expression": { "argumentTypes": null, - "id": 975, + "id": 2003, "isConstant": false, "isLValue": false, "isPure": false, @@ -13273,15 +13273,15 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "11555:3:0", + "src": "11553:3:4", "subExpression": { "argumentTypes": null, - "id": 974, + "id": 2002, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 967, - "src": "11555:1:0", + "referencedDeclaration": 1995, + "src": "11553:1:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -13292,12 +13292,12 @@ "typeString": "uint256" } }, - "id": 976, + "id": 2004, "nodeType": "ExpressionStatement", - "src": "11555:3:0" + "src": "11553:3:4" }, "nodeType": "ForStatement", - "src": "11521:88:0" + "src": "11519:88:4" }, { "condition": { @@ -13306,7 +13306,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 992, + "id": 2020, "isConstant": false, "isLValue": false, "isPure": false, @@ -13316,12 +13316,12 @@ "arguments": [ { "argumentTypes": null, - "id": 988, + "id": 2016, "name": "inputValues", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 958, - "src": "11629:11:0", + "referencedDeclaration": 1986, + "src": "11627:11:4", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", "typeString": "uint256[] memory" @@ -13329,14 +13329,14 @@ }, { "argumentTypes": null, - "id": 989, + "id": 2017, "name": "proof", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 895, - "src": "11642:5:0", + "referencedDeclaration": 1923, + "src": "11640:5:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_Proof_$598_memory_ptr", + "typeIdentifier": "t_struct$_Proof_$1626_memory_ptr", "typeString": "struct Verifier.Proof memory" } } @@ -13348,22 +13348,22 @@ "typeString": "uint256[] memory" }, { - "typeIdentifier": "t_struct$_Proof_$598_memory_ptr", + "typeIdentifier": "t_struct$_Proof_$1626_memory_ptr", "typeString": "struct Verifier.Proof memory" } ], - "id": 987, + "id": 2015, "name": "verify", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 871, - "src": "11622:6:0", + "referencedDeclaration": 1899, + "src": "11620:6:4", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_array$_t_uint256_$dyn_memory_ptr_$_t_struct$_Proof_$598_memory_ptr_$returns$_t_uint256_$", + "typeIdentifier": "t_function_internal_view$_t_array$_t_uint256_$dyn_memory_ptr_$_t_struct$_Proof_$1626_memory_ptr_$returns$_t_uint256_$", "typeString": "function (uint256[] memory,struct Verifier.Proof memory) view returns (uint256)" } }, - "id": 990, + "id": 2018, "isConstant": false, "isLValue": false, "isPure": false, @@ -13371,7 +13371,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "11622:26:0", + "src": "11620:26:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -13382,14 +13382,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 991, + "id": 2019, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "11652:1:0", + "src": "11650:1:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -13397,29 +13397,29 @@ }, "value": "0" }, - "src": "11622:31:0", + "src": "11620:31:4", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": { - "id": 998, + "id": 2026, "nodeType": "Block", - "src": "11697:37:0", + "src": "11695:37:4", "statements": [ { "expression": { "argumentTypes": null, "hexValue": "66616c7365", - "id": 996, + "id": 2024, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "11718:5:0", + "src": "11716:5:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -13427,33 +13427,33 @@ }, "value": "false" }, - "functionReturnParameters": 893, - "id": 997, + "functionReturnParameters": 1921, + "id": 2025, "nodeType": "Return", - "src": "11711:12:0" + "src": "11709:12:4" } ] }, - "id": 999, + "id": 2027, "nodeType": "IfStatement", - "src": "11618:116:0", + "src": "11616:116:4", "trueBody": { - "id": 995, + "id": 2023, "nodeType": "Block", - "src": "11655:36:0", + "src": "11653:36:4", "statements": [ { "expression": { "argumentTypes": null, "hexValue": "74727565", - "id": 993, + "id": 2021, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "11676:4:0", + "src": "11674:4:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -13461,10 +13461,10 @@ }, "value": "true" }, - "functionReturnParameters": 893, - "id": 994, + "functionReturnParameters": 1921, + "id": 2022, "nodeType": "Return", - "src": "11669:11:0" + "src": "11667:11:4" } ] } @@ -13472,23 +13472,23 @@ ] }, "documentation": null, - "id": 1001, + "id": 2029, "implemented": true, "kind": "function", "modifiers": [], "name": "verifyProof", "nodeType": "FunctionDefinition", "parameters": { - "id": 890, + "id": 1918, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 875, + "id": 1903, "name": "a", "nodeType": "VariableDeclaration", - "scope": 1001, - "src": "11099:16:0", + "scope": 2029, + "src": "11097:16:4", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -13497,27 +13497,27 @@ }, "typeName": { "baseType": { - "id": 872, + "id": 1900, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "11099:4:0", + "src": "11097:4:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 874, + "id": 1902, "length": { "argumentTypes": null, "hexValue": "32", - "id": 873, + "id": 1901, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "11104:1:0", + "src": "11102:1:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_2_by_1", @@ -13526,7 +13526,7 @@ "value": "2" }, "nodeType": "ArrayTypeName", - "src": "11099:7:0", + "src": "11097:7:4", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$2_storage_ptr", "typeString": "uint256[2]" @@ -13537,11 +13537,11 @@ }, { "constant": false, - "id": 881, + "id": 1909, "name": "b", "nodeType": "VariableDeclaration", - "scope": 1001, - "src": "11129:19:0", + "scope": 2029, + "src": "11127:19:4", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -13551,27 +13551,27 @@ "typeName": { "baseType": { "baseType": { - "id": 876, + "id": 1904, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "11129:4:0", + "src": "11127:4:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 878, + "id": 1906, "length": { "argumentTypes": null, "hexValue": "32", - "id": 877, + "id": 1905, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "11134:1:0", + "src": "11132:1:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_2_by_1", @@ -13580,24 +13580,24 @@ "value": "2" }, "nodeType": "ArrayTypeName", - "src": "11129:7:0", + "src": "11127:7:4", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$2_storage_ptr", "typeString": "uint256[2]" } }, - "id": 880, + "id": 1908, "length": { "argumentTypes": null, "hexValue": "32", - "id": 879, + "id": 1907, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "11137:1:0", + "src": "11135:1:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_2_by_1", @@ -13606,7 +13606,7 @@ "value": "2" }, "nodeType": "ArrayTypeName", - "src": "11129:10:0", + "src": "11127:10:4", "typeDescriptions": { "typeIdentifier": "t_array$_t_array$_t_uint256_$2_storage_$2_storage_ptr", "typeString": "uint256[2][2]" @@ -13617,11 +13617,11 @@ }, { "constant": false, - "id": 885, + "id": 1913, "name": "c", "nodeType": "VariableDeclaration", - "scope": 1001, - "src": "11162:16:0", + "scope": 2029, + "src": "11160:16:4", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -13630,27 +13630,27 @@ }, "typeName": { "baseType": { - "id": 882, + "id": 1910, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "11162:4:0", + "src": "11160:4:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 884, + "id": 1912, "length": { "argumentTypes": null, "hexValue": "32", - "id": 883, + "id": 1911, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "11167:1:0", + "src": "11165:1:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_2_by_1", @@ -13659,7 +13659,7 @@ "value": "2" }, "nodeType": "ArrayTypeName", - "src": "11162:7:0", + "src": "11160:7:4", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$2_storage_ptr", "typeString": "uint256[2]" @@ -13670,11 +13670,11 @@ }, { "constant": false, - "id": 889, + "id": 1917, "name": "input", "nodeType": "VariableDeclaration", - "scope": 1001, - "src": "11192:20:0", + "scope": 2029, + "src": "11190:20:4", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -13683,27 +13683,27 @@ }, "typeName": { "baseType": { - "id": 886, + "id": 1914, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "11192:4:0", + "src": "11190:4:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 888, + "id": 1916, "length": { "argumentTypes": null, "hexValue": "36", - "id": 887, + "id": 1915, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "11197:1:0", + "src": "11195:1:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_6_by_1", @@ -13712,7 +13712,7 @@ "value": "6" }, "nodeType": "ArrayTypeName", - "src": "11192:7:0", + "src": "11190:7:4", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$6_storage_ptr", "typeString": "uint256[6]" @@ -13722,19 +13722,19 @@ "visibility": "internal" } ], - "src": "11085:137:0" + "src": "11083:137:4" }, "returnParameters": { - "id": 893, + "id": 1921, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 892, + "id": 1920, "name": "r", "nodeType": "VariableDeclaration", - "scope": 1001, - "src": "11244:6:0", + "scope": 2029, + "src": "11242:6:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -13742,10 +13742,10 @@ "typeString": "bool" }, "typeName": { - "id": 891, + "id": 1919, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "11244:4:0", + "src": "11242:4:4", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -13755,35 +13755,35 @@ "visibility": "internal" } ], - "src": "11243:8:0" + "src": "11241:8:4" }, - "scope": 1058, - "src": "11065:675:0", + "scope": 2086, + "src": "11063:675:4", "stateMutability": "view", "superFunction": null, "visibility": "public" }, { "body": { - "id": 1056, + "id": 2084, "nodeType": "Block", - "src": "11844:262:0", + "src": "11842:262:4", "statements": [ { "assignments": [ - 1016, - 1020, - 1024, - 1028 + 2044, + 2048, + 2052, + 2056 ], "declarations": [ { "constant": false, - "id": 1016, + "id": 2044, "name": "a", "nodeType": "VariableDeclaration", - "scope": 1056, - "src": "11916:16:0", + "scope": 2084, + "src": "11914:16:4", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -13792,27 +13792,27 @@ }, "typeName": { "baseType": { - "id": 1014, + "id": 2042, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "11916:4:0", + "src": "11914:4:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1015, + "id": 2043, "length": { "argumentTypes": null, "hexValue": "32", - "id": 1013, + "id": 2041, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "11921:1:0", + "src": "11919:1:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_2_by_1", @@ -13821,7 +13821,7 @@ "value": "2" }, "nodeType": "ArrayTypeName", - "src": "11916:7:0", + "src": "11914:7:4", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$2_storage_ptr", "typeString": "uint256[2]" @@ -13832,11 +13832,11 @@ }, { "constant": false, - "id": 1020, + "id": 2048, "name": "b1", "nodeType": "VariableDeclaration", - "scope": 1056, - "src": "11934:17:0", + "scope": 2084, + "src": "11932:17:4", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -13845,27 +13845,27 @@ }, "typeName": { "baseType": { - "id": 1017, + "id": 2045, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "11934:4:0", + "src": "11932:4:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1019, + "id": 2047, "length": { "argumentTypes": null, "hexValue": "32", - "id": 1018, + "id": 2046, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "11939:1:0", + "src": "11937:1:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_2_by_1", @@ -13874,7 +13874,7 @@ "value": "2" }, "nodeType": "ArrayTypeName", - "src": "11934:7:0", + "src": "11932:7:4", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$2_storage_ptr", "typeString": "uint256[2]" @@ -13885,11 +13885,11 @@ }, { "constant": false, - "id": 1024, + "id": 2052, "name": "b2", "nodeType": "VariableDeclaration", - "scope": 1056, - "src": "11953:17:0", + "scope": 2084, + "src": "11951:17:4", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -13898,27 +13898,27 @@ }, "typeName": { "baseType": { - "id": 1021, + "id": 2049, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "11953:4:0", + "src": "11951:4:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1023, + "id": 2051, "length": { "argumentTypes": null, "hexValue": "32", - "id": 1022, + "id": 2050, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "11958:1:0", + "src": "11956:1:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_2_by_1", @@ -13927,7 +13927,7 @@ "value": "2" }, "nodeType": "ArrayTypeName", - "src": "11953:7:0", + "src": "11951:7:4", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$2_storage_ptr", "typeString": "uint256[2]" @@ -13938,11 +13938,11 @@ }, { "constant": false, - "id": 1028, + "id": 2056, "name": "c", "nodeType": "VariableDeclaration", - "scope": 1056, - "src": "11972:16:0", + "scope": 2084, + "src": "11970:16:4", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -13951,27 +13951,27 @@ }, "typeName": { "baseType": { - "id": 1025, + "id": 2053, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "11972:4:0", + "src": "11970:4:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1027, + "id": 2055, "length": { "argumentTypes": null, "hexValue": "32", - "id": 1026, + "id": 2054, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "11977:1:0", + "src": "11975:1:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_2_by_1", @@ -13980,7 +13980,7 @@ "value": "2" }, "nodeType": "ArrayTypeName", - "src": "11972:7:0", + "src": "11970:7:4", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$2_storage_ptr", "typeString": "uint256[2]" @@ -13990,18 +13990,18 @@ "visibility": "internal" } ], - "id": 1046, + "id": 2074, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 1031, + "id": 2059, "name": "proof", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1003, - "src": "12003:5:0", + "referencedDeclaration": 2031, + "src": "12001:5:4", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes calldata" @@ -14014,31 +14014,31 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1032, + "id": 2060, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "12011:4:0", + "src": "12009:4:4", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint256_$", "typeString": "type(uint256)" }, "typeName": "uint" }, - "id": 1034, + "id": 2062, "indexExpression": { "argumentTypes": null, "hexValue": "32", - "id": 1033, + "id": 2061, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "12016:1:0", + "src": "12014:1:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_2_by_1", @@ -14051,7 +14051,7 @@ "isPure": true, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "12011:7:0", + "src": "12009:7:4", "typeDescriptions": { "typeIdentifier": "t_type$_t_array$_t_uint256_$2_memory_ptr_$", "typeString": "type(uint256[2] memory)" @@ -14061,31 +14061,31 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1035, + "id": 2063, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "12020:4:0", + "src": "12018:4:4", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint256_$", "typeString": "type(uint256)" }, "typeName": "uint" }, - "id": 1037, + "id": 2065, "indexExpression": { "argumentTypes": null, "hexValue": "32", - "id": 1036, + "id": 2064, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "12025:1:0", + "src": "12023:1:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_2_by_1", @@ -14098,7 +14098,7 @@ "isPure": true, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "12020:7:0", + "src": "12018:7:4", "typeDescriptions": { "typeIdentifier": "t_type$_t_array$_t_uint256_$2_memory_ptr_$", "typeString": "type(uint256[2] memory)" @@ -14108,31 +14108,31 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1038, + "id": 2066, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "12029:4:0", + "src": "12027:4:4", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint256_$", "typeString": "type(uint256)" }, "typeName": "uint" }, - "id": 1040, + "id": 2068, "indexExpression": { "argumentTypes": null, "hexValue": "32", - "id": 1039, + "id": 2067, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "12034:1:0", + "src": "12032:1:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_2_by_1", @@ -14145,7 +14145,7 @@ "isPure": true, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "12029:7:0", + "src": "12027:7:4", "typeDescriptions": { "typeIdentifier": "t_type$_t_array$_t_uint256_$2_memory_ptr_$", "typeString": "type(uint256[2] memory)" @@ -14155,31 +14155,31 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1041, + "id": 2069, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "12038:4:0", + "src": "12036:4:4", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint256_$", "typeString": "type(uint256)" }, "typeName": "uint" }, - "id": 1043, + "id": 2071, "indexExpression": { "argumentTypes": null, "hexValue": "32", - "id": 1042, + "id": 2070, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "12043:1:0", + "src": "12041:1:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_2_by_1", @@ -14192,21 +14192,21 @@ "isPure": true, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "12038:7:0", + "src": "12036:7:4", "typeDescriptions": { "typeIdentifier": "t_type$_t_array$_t_uint256_$2_memory_ptr_$", "typeString": "type(uint256[2] memory)" } } ], - "id": 1044, + "id": 2072, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "12010:36:0", + "src": "12008:36:4", "typeDescriptions": { "typeIdentifier": "t_tuple$_t_type$_t_array$_t_uint256_$2_memory_ptr_$_$_t_type$_t_array$_t_uint256_$2_memory_ptr_$_$_t_type$_t_array$_t_uint256_$2_memory_ptr_$_$_t_type$_t_array$_t_uint256_$2_memory_ptr_$_$", "typeString": "tuple(type(uint256[2] memory),type(uint256[2] memory),type(uint256[2] memory),type(uint256[2] memory))" @@ -14226,18 +14226,18 @@ ], "expression": { "argumentTypes": null, - "id": 1029, + "id": 2057, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1060, - "src": "11992:3:0", + "referencedDeclaration": 2118, + "src": "11990:3:4", "typeDescriptions": { "typeIdentifier": "t_magic_abi", "typeString": "abi" } }, - "id": 1030, + "id": 2058, "isConstant": false, "isLValue": false, "isPure": true, @@ -14245,13 +14245,13 @@ "memberName": "decode", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "11992:10:0", + "src": "11990:10:4", "typeDescriptions": { "typeIdentifier": "t_function_abidecode_pure$__$returns$__$", "typeString": "function () pure" } }, - "id": 1045, + "id": 2073, "isConstant": false, "isLValue": false, "isPure": false, @@ -14259,14 +14259,14 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "11992:55:0", + "src": "11990:55:4", "typeDescriptions": { "typeIdentifier": "t_tuple$_t_array$_t_uint256_$2_memory_$_t_array$_t_uint256_$2_memory_$_t_array$_t_uint256_$2_memory_$_t_array$_t_uint256_$2_memory_$", "typeString": "tuple(uint256[2] memory,uint256[2] memory,uint256[2] memory,uint256[2] memory)" } }, "nodeType": "VariableDeclarationStatement", - "src": "11915:132:0" + "src": "11913:132:4" }, { "expression": { @@ -14274,12 +14274,12 @@ "arguments": [ { "argumentTypes": null, - "id": 1048, + "id": 2076, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1016, - "src": "12076:1:0", + "referencedDeclaration": 2044, + "src": "12074:1:4", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", "typeString": "uint256[2] memory" @@ -14290,12 +14290,12 @@ "components": [ { "argumentTypes": null, - "id": 1049, + "id": 2077, "name": "b1", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1020, - "src": "12080:2:0", + "referencedDeclaration": 2048, + "src": "12078:2:4", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", "typeString": "uint256[2] memory" @@ -14303,26 +14303,26 @@ }, { "argumentTypes": null, - "id": 1050, + "id": 2078, "name": "b2", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1024, - "src": "12084:2:0", + "referencedDeclaration": 2052, + "src": "12082:2:4", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", "typeString": "uint256[2] memory" } } ], - "id": 1051, + "id": 2079, "isConstant": false, "isInlineArray": true, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "12079:8:0", + "src": "12077:8:4", "typeDescriptions": { "typeIdentifier": "t_array$_t_array$_t_uint256_$2_memory_$2_memory_ptr", "typeString": "uint256[2] memory[2] memory" @@ -14330,12 +14330,12 @@ }, { "argumentTypes": null, - "id": 1052, + "id": 2080, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1028, - "src": "12089:1:0", + "referencedDeclaration": 2056, + "src": "12087:1:4", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", "typeString": "uint256[2] memory" @@ -14343,12 +14343,12 @@ }, { "argumentTypes": null, - "id": 1053, + "id": 2081, "name": "inputs", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1007, - "src": "12092:6:0", + "referencedDeclaration": 2035, + "src": "12090:6:4", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$6_calldata_ptr", "typeString": "uint256[6] calldata" @@ -14374,18 +14374,18 @@ "typeString": "uint256[6] calldata" } ], - "id": 1047, + "id": 2075, "name": "verifyProof", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1001, - "src": "12064:11:0", + "referencedDeclaration": 2029, + "src": "12062:11:4", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_array$_t_uint256_$2_memory_ptr_$_t_array$_t_array$_t_uint256_$2_memory_$2_memory_ptr_$_t_array$_t_uint256_$2_memory_ptr_$_t_array$_t_uint256_$6_memory_ptr_$returns$_t_bool_$", "typeString": "function (uint256[2] memory,uint256[2] memory[2] memory,uint256[2] memory,uint256[6] memory) view returns (bool)" } }, - "id": 1054, + "id": 2082, "isConstant": false, "isLValue": false, "isPure": false, @@ -14393,37 +14393,37 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "12064:35:0", + "src": "12062:35:4", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "functionReturnParameters": 1011, - "id": 1055, + "functionReturnParameters": 2039, + "id": 2083, "nodeType": "Return", - "src": "12057:42:0" + "src": "12055:42:4" } ] }, "documentation": null, - "id": 1057, + "id": 2085, "implemented": true, "kind": "function", "modifiers": [], "name": "verifyProof", "nodeType": "FunctionDefinition", "parameters": { - "id": 1008, + "id": 2036, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1003, + "id": 2031, "name": "proof", "nodeType": "VariableDeclaration", - "scope": 1057, - "src": "11766:20:0", + "scope": 2085, + "src": "11764:20:4", "stateVariable": false, "storageLocation": "calldata", "typeDescriptions": { @@ -14431,10 +14431,10 @@ "typeString": "bytes" }, "typeName": { - "id": 1002, + "id": 2030, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "11766:5:0", + "src": "11764:5:4", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -14445,11 +14445,11 @@ }, { "constant": false, - "id": 1007, + "id": 2035, "name": "inputs", "nodeType": "VariableDeclaration", - "scope": 1057, - "src": "11788:23:0", + "scope": 2085, + "src": "11786:23:4", "stateVariable": false, "storageLocation": "calldata", "typeDescriptions": { @@ -14458,27 +14458,27 @@ }, "typeName": { "baseType": { - "id": 1004, + "id": 2032, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "11788:4:0", + "src": "11786:4:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1006, + "id": 2034, "length": { "argumentTypes": null, "hexValue": "36", - "id": 1005, + "id": 2033, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "11793:1:0", + "src": "11791:1:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_6_by_1", @@ -14487,7 +14487,7 @@ "value": "6" }, "nodeType": "ArrayTypeName", - "src": "11788:7:0", + "src": "11786:7:4", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$6_storage_ptr", "typeString": "uint256[6]" @@ -14497,19 +14497,19 @@ "visibility": "internal" } ], - "src": "11765:47:0" + "src": "11763:47:4" }, "returnParameters": { - "id": 1011, + "id": 2039, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1010, + "id": 2038, "name": "r", "nodeType": "VariableDeclaration", - "scope": 1057, - "src": "11836:6:0", + "scope": 2085, + "src": "11834:6:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -14517,10 +14517,10 @@ "typeString": "bool" }, "typeName": { - "id": 1009, + "id": 2037, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "11836:4:0", + "src": "11834:4:4", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -14530,30 +14530,30 @@ "visibility": "internal" } ], - "src": "11835:8:0" + "src": "11833:8:4" }, - "scope": 1058, - "src": "11745:361:0", + "scope": 2086, + "src": "11743:361:4", "stateMutability": "view", "superFunction": null, "visibility": "external" } ], - "scope": 1059, - "src": "7067:5041:0" + "scope": 2087, + "src": "7067:5039:4" } ], - "src": "1193:10916:0" + "src": "1193:10914:4" }, "legacyAST": { "attributes": { "absolutePath": "/Users/brianli/dotfiles/tornado-core/contracts/Verifier.sol", "exportedSymbols": { "Pairing": [ - 577 + 1605 ], "Verifier": [ - 1058 + 2086 ] } }, @@ -14567,9 +14567,9 @@ ".0" ] }, - "id": 1, + "id": 1029, "name": "PragmaDirective", - "src": "1193:23:0" + "src": "1193:23:4" }, { "attributes": { @@ -14583,17 +14583,17 @@ "documentation": null, "fullyImplemented": true, "linearizedBaseContracts": [ - 577 + 1605 ], "name": "Pairing", - "scope": 1059 + "scope": 2087 }, "children": [ { "attributes": { "canonicalName": "Pairing.G1Point", "name": "G1Point", - "scope": 577, + "scope": 1605, "visibility": "public" }, "children": [ @@ -14601,7 +14601,7 @@ "attributes": { "constant": false, "name": "X", - "scope": 6, + "scope": 1034, "stateVariable": false, "storageLocation": "default", "type": "uint256", @@ -14614,20 +14614,20 @@ "name": "uint", "type": "uint256" }, - "id": 2, + "id": 1030, "name": "ElementaryTypeName", - "src": "1264:4:0" + "src": "1264:4:4" } ], - "id": 3, + "id": 1031, "name": "VariableDeclaration", - "src": "1264:6:0" + "src": "1264:6:4" }, { "attributes": { "constant": false, "name": "Y", - "scope": 6, + "scope": 1034, "stateVariable": false, "storageLocation": "default", "type": "uint256", @@ -14640,25 +14640,25 @@ "name": "uint", "type": "uint256" }, - "id": 4, + "id": 1032, "name": "ElementaryTypeName", - "src": "1280:4:0" + "src": "1280:4:4" } ], - "id": 5, + "id": 1033, "name": "VariableDeclaration", - "src": "1280:6:0" + "src": "1280:6:4" } ], - "id": 6, + "id": 1034, "name": "StructDefinition", - "src": "1239:54:0" + "src": "1239:54:4" }, { "attributes": { "canonicalName": "Pairing.G2Point", "name": "G2Point", - "scope": 577, + "scope": 1605, "visibility": "public" }, "children": [ @@ -14666,7 +14666,7 @@ "attributes": { "constant": false, "name": "X", - "scope": 15, + "scope": 1043, "stateVariable": false, "storageLocation": "default", "type": "uint256[2]", @@ -14684,9 +14684,9 @@ "name": "uint", "type": "uint256" }, - "id": 7, + "id": 1035, "name": "ElementaryTypeName", - "src": "1377:4:0" + "src": "1377:4:4" }, { "attributes": { @@ -14701,25 +14701,25 @@ "type": "int_const 2", "value": "2" }, - "id": 8, + "id": 1036, "name": "Literal", - "src": "1382:1:0" + "src": "1382:1:4" } ], - "id": 9, + "id": 1037, "name": "ArrayTypeName", - "src": "1377:7:0" + "src": "1377:7:4" } ], - "id": 10, + "id": 1038, "name": "VariableDeclaration", - "src": "1377:9:0" + "src": "1377:9:4" }, { "attributes": { "constant": false, "name": "Y", - "scope": 15, + "scope": 1043, "stateVariable": false, "storageLocation": "default", "type": "uint256[2]", @@ -14737,9 +14737,9 @@ "name": "uint", "type": "uint256" }, - "id": 11, + "id": 1039, "name": "ElementaryTypeName", - "src": "1396:4:0" + "src": "1396:4:4" }, { "attributes": { @@ -14754,24 +14754,24 @@ "type": "int_const 2", "value": "2" }, - "id": 12, + "id": 1040, "name": "Literal", - "src": "1401:1:0" + "src": "1401:1:4" } ], - "id": 13, + "id": 1041, "name": "ArrayTypeName", - "src": "1396:7:0" + "src": "1396:7:4" } ], - "id": 14, + "id": 1042, "name": "VariableDeclaration", - "src": "1396:9:0" + "src": "1396:9:4" } ], - "id": 15, + "id": 1043, "name": "StructDefinition", - "src": "1352:60:0" + "src": "1352:60:4" }, { "attributes": { @@ -14783,7 +14783,7 @@ null ], "name": "P1", - "scope": 577, + "scope": 1605, "stateMutability": "pure", "superFunction": null, "visibility": "internal" @@ -14796,9 +14796,9 @@ ] }, "children": [], - "id": 16, + "id": 1044, "name": "ParameterList", - "src": "1464:2:0" + "src": "1464:2:4" }, { "children": [ @@ -14806,7 +14806,7 @@ "attributes": { "constant": false, "name": "", - "scope": 26, + "scope": 1054, "stateVariable": false, "storageLocation": "memory", "type": "struct Pairing.G1Point", @@ -14818,28 +14818,28 @@ "attributes": { "contractScope": null, "name": "G1Point", - "referencedDeclaration": 6, + "referencedDeclaration": 1034, "type": "struct Pairing.G1Point" }, - "id": 17, + "id": 1045, "name": "UserDefinedTypeName", - "src": "1490:7:0" + "src": "1490:7:4" } ], - "id": 18, + "id": 1046, "name": "VariableDeclaration", - "src": "1490:14:0" + "src": "1490:14:4" } ], - "id": 19, + "id": 1047, "name": "ParameterList", - "src": "1489:16:0" + "src": "1489:16:4" }, { "children": [ { "attributes": { - "functionReturnParameters": 19 + "functionReturnParameters": 1047 }, "children": [ { @@ -14872,13 +14872,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 6, + "referencedDeclaration": 1034, "type": "type(struct Pairing.G1Point storage pointer)", "value": "G1Point" }, - "id": 20, + "id": 1048, "name": "Identifier", - "src": "1523:7:0" + "src": "1523:7:4" }, { "attributes": { @@ -14893,9 +14893,9 @@ "type": "int_const 1", "value": "1" }, - "id": 21, + "id": 1049, "name": "Literal", - "src": "1531:1:0" + "src": "1531:1:4" }, { "attributes": { @@ -14910,29 +14910,29 @@ "type": "int_const 2", "value": "2" }, - "id": 22, + "id": 1050, "name": "Literal", - "src": "1534:1:0" + "src": "1534:1:4" } ], - "id": 23, + "id": 1051, "name": "FunctionCall", - "src": "1523:13:0" + "src": "1523:13:4" } ], - "id": 24, + "id": 1052, "name": "Return", - "src": "1516:20:0" + "src": "1516:20:4" } ], - "id": 25, + "id": 1053, "name": "Block", - "src": "1506:37:0" + "src": "1506:37:4" } ], - "id": 26, + "id": 1054, "name": "FunctionDefinition", - "src": "1453:90:0" + "src": "1453:90:4" }, { "attributes": { @@ -14944,7 +14944,7 @@ null ], "name": "P2", - "scope": 577, + "scope": 1605, "stateMutability": "pure", "superFunction": null, "visibility": "internal" @@ -14957,9 +14957,9 @@ ] }, "children": [], - "id": 27, + "id": 1055, "name": "ParameterList", - "src": "1595:2:0" + "src": "1595:2:4" }, { "children": [ @@ -14967,7 +14967,7 @@ "attributes": { "constant": false, "name": "", - "scope": 41, + "scope": 1069, "stateVariable": false, "storageLocation": "memory", "type": "struct Pairing.G2Point", @@ -14979,28 +14979,28 @@ "attributes": { "contractScope": null, "name": "G2Point", - "referencedDeclaration": 15, + "referencedDeclaration": 1043, "type": "struct Pairing.G2Point" }, - "id": 28, + "id": 1056, "name": "UserDefinedTypeName", - "src": "1621:7:0" + "src": "1621:7:4" } ], - "id": 29, + "id": 1057, "name": "VariableDeclaration", - "src": "1621:14:0" + "src": "1621:14:4" } ], - "id": 30, + "id": 1058, "name": "ParameterList", - "src": "1620:16:0" + "src": "1620:16:4" }, { "children": [ { "attributes": { - "functionReturnParameters": 30 + "functionReturnParameters": 1058 }, "children": [ { @@ -15033,13 +15033,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 15, + "referencedDeclaration": 1043, "type": "type(struct Pairing.G2Point storage pointer)", "value": "G2Point" }, - "id": 31, + "id": 1059, "name": "Identifier", - "src": "1685:7:0" + "src": "1685:7:4" }, { "attributes": { @@ -15065,9 +15065,9 @@ "type": "int_const 1155...(69 digits omitted)...5634", "value": "11559732032986387107991004021392285783925812861821192530917403151452391805634" }, - "id": 32, + "id": 1060, "name": "Literal", - "src": "1707:77:0" + "src": "1707:77:4" }, { "attributes": { @@ -15082,14 +15082,14 @@ "type": "int_const 1085...(69 digits omitted)...2781", "value": "10857046999023057135944570762232829481370756359578518086990519993285655852781" }, - "id": 33, + "id": 1061, "name": "Literal", - "src": "1799:77:0" + "src": "1799:77:4" } ], - "id": 34, + "id": 1062, "name": "TupleExpression", - "src": "1706:171:0" + "src": "1706:171:4" }, { "attributes": { @@ -15115,9 +15115,9 @@ "type": "int_const 4082...(68 digits omitted)...3531", "value": "4082367875863433681332203403145435568316851327593401208105741076214120093531" }, - "id": 35, + "id": 1063, "name": "Literal", - "src": "1892:76:0" + "src": "1892:76:4" }, { "attributes": { @@ -15132,34 +15132,34 @@ "type": "int_const 8495...(68 digits omitted)...1930", "value": "8495653923123431417604973247489272438418190587263600148770280649306958101930" }, - "id": 36, + "id": 1064, "name": "Literal", - "src": "1983:76:0" + "src": "1983:76:4" } ], - "id": 37, + "id": 1065, "name": "TupleExpression", - "src": "1891:169:0" + "src": "1891:169:4" } ], - "id": 38, + "id": 1066, "name": "FunctionCall", - "src": "1685:385:0" + "src": "1685:385:4" } ], - "id": 39, + "id": 1067, "name": "Return", - "src": "1678:392:0" + "src": "1678:392:4" } ], - "id": 40, + "id": 1068, "name": "Block", - "src": "1637:883:0" + "src": "1637:883:4" } ], - "id": 41, + "id": 1069, "name": "FunctionDefinition", - "src": "1584:936:0" + "src": "1584:936:4" }, { "attributes": { @@ -15171,7 +15171,7 @@ null ], "name": "negate", - "scope": 577, + "scope": 1605, "stateMutability": "pure", "superFunction": null, "visibility": "internal" @@ -15183,7 +15183,7 @@ "attributes": { "constant": false, "name": "p", - "scope": 80, + "scope": 1108, "stateVariable": false, "storageLocation": "memory", "type": "struct Pairing.G1Point", @@ -15195,22 +15195,22 @@ "attributes": { "contractScope": null, "name": "G1Point", - "referencedDeclaration": 6, + "referencedDeclaration": 1034, "type": "struct Pairing.G1Point" }, - "id": 42, + "id": 1070, "name": "UserDefinedTypeName", - "src": "2620:7:0" + "src": "2620:7:4" } ], - "id": 43, + "id": 1071, "name": "VariableDeclaration", - "src": "2620:16:0" + "src": "2620:16:4" } ], - "id": 44, + "id": 1072, "name": "ParameterList", - "src": "2619:18:0" + "src": "2619:18:4" }, { "children": [ @@ -15218,7 +15218,7 @@ "attributes": { "constant": false, "name": "", - "scope": 80, + "scope": 1108, "stateVariable": false, "storageLocation": "memory", "type": "struct Pairing.G1Point", @@ -15230,29 +15230,29 @@ "attributes": { "contractScope": null, "name": "G1Point", - "referencedDeclaration": 6, + "referencedDeclaration": 1034, "type": "struct Pairing.G1Point" }, - "id": 45, + "id": 1073, "name": "UserDefinedTypeName", - "src": "2661:7:0" + "src": "2661:7:4" } ], - "id": 46, + "id": 1074, "name": "VariableDeclaration", - "src": "2661:14:0" + "src": "2661:14:4" } ], - "id": 47, + "id": 1075, "name": "ParameterList", - "src": "2660:16:0" + "src": "2660:16:4" }, { "children": [ { "attributes": { "assignments": [ - 49 + 1077 ] }, "children": [ @@ -15260,7 +15260,7 @@ "attributes": { "constant": false, "name": "q", - "scope": 79, + "scope": 1107, "stateVariable": false, "storageLocation": "default", "type": "uint256", @@ -15273,14 +15273,14 @@ "name": "uint", "type": "uint256" }, - "id": 48, + "id": 1076, "name": "ElementaryTypeName", - "src": "2739:4:0" + "src": "2739:4:4" } ], - "id": 49, + "id": 1077, "name": "VariableDeclaration", - "src": "2739:6:0" + "src": "2739:6:4" }, { "attributes": { @@ -15295,14 +15295,14 @@ "type": "int_const 2188...(69 digits omitted)...8583", "value": "21888242871839275222246405745257275088696311157297823662689037894645226208583" }, - "id": 50, + "id": 1078, "name": "Literal", - "src": "2748:77:0" + "src": "2748:77:4" } ], - "id": 51, + "id": 1079, "name": "VariableDeclarationStatement", - "src": "2739:86:0" + "src": "2739:86:4" }, { "attributes": { @@ -15347,7 +15347,7 @@ "isPure": false, "lValueRequested": false, "member_name": "X", - "referencedDeclaration": 3, + "referencedDeclaration": 1031, "type": "uint256" }, "children": [ @@ -15357,18 +15357,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 43, + "referencedDeclaration": 1071, "type": "struct Pairing.G1Point memory", "value": "p" }, - "id": 52, + "id": 1080, "name": "Identifier", - "src": "2839:1:0" + "src": "2839:1:4" } ], - "id": 53, + "id": 1081, "name": "MemberAccess", - "src": "2839:3:0" + "src": "2839:3:4" }, { "attributes": { @@ -15383,14 +15383,14 @@ "type": "int_const 0", "value": "0" }, - "id": 54, + "id": 1082, "name": "Literal", - "src": "2846:1:0" + "src": "2846:1:4" } ], - "id": 55, + "id": 1083, "name": "BinaryOperation", - "src": "2839:8:0" + "src": "2839:8:4" }, { "attributes": { @@ -15415,7 +15415,7 @@ "isPure": false, "lValueRequested": false, "member_name": "Y", - "referencedDeclaration": 5, + "referencedDeclaration": 1033, "type": "uint256" }, "children": [ @@ -15425,18 +15425,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 43, + "referencedDeclaration": 1071, "type": "struct Pairing.G1Point memory", "value": "p" }, - "id": 56, + "id": 1084, "name": "Identifier", - "src": "2851:1:0" + "src": "2851:1:4" } ], - "id": 57, + "id": 1085, "name": "MemberAccess", - "src": "2851:3:0" + "src": "2851:3:4" }, { "attributes": { @@ -15451,23 +15451,23 @@ "type": "int_const 0", "value": "0" }, - "id": 58, + "id": 1086, "name": "Literal", - "src": "2858:1:0" + "src": "2858:1:4" } ], - "id": 59, + "id": 1087, "name": "BinaryOperation", - "src": "2851:8:0" + "src": "2851:8:4" } ], - "id": 60, + "id": 1088, "name": "BinaryOperation", - "src": "2839:20:0" + "src": "2839:20:4" }, { "attributes": { - "functionReturnParameters": 47 + "functionReturnParameters": 1075 }, "children": [ { @@ -15500,13 +15500,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 6, + "referencedDeclaration": 1034, "type": "type(struct Pairing.G1Point storage pointer)", "value": "G1Point" }, - "id": 61, + "id": 1089, "name": "Identifier", - "src": "2880:7:0" + "src": "2880:7:4" }, { "attributes": { @@ -15521,9 +15521,9 @@ "type": "int_const 0", "value": "0" }, - "id": 62, + "id": 1090, "name": "Literal", - "src": "2888:1:0" + "src": "2888:1:4" }, { "attributes": { @@ -15538,28 +15538,28 @@ "type": "int_const 0", "value": "0" }, - "id": 63, + "id": 1091, "name": "Literal", - "src": "2891:1:0" + "src": "2891:1:4" } ], - "id": 64, + "id": 1092, "name": "FunctionCall", - "src": "2880:13:0" + "src": "2880:13:4" } ], - "id": 65, + "id": 1093, "name": "Return", - "src": "2873:20:0" + "src": "2873:20:4" } ], - "id": 66, + "id": 1094, "name": "IfStatement", - "src": "2835:58:0" + "src": "2835:58:4" }, { "attributes": { - "functionReturnParameters": 47 + "functionReturnParameters": 1075 }, "children": [ { @@ -15592,13 +15592,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 6, + "referencedDeclaration": 1034, "type": "type(struct Pairing.G1Point storage pointer)", "value": "G1Point" }, - "id": 67, + "id": 1095, "name": "Identifier", - "src": "2910:7:0" + "src": "2910:7:4" }, { "attributes": { @@ -15608,7 +15608,7 @@ "isPure": false, "lValueRequested": false, "member_name": "X", - "referencedDeclaration": 3, + "referencedDeclaration": 1031, "type": "uint256" }, "children": [ @@ -15618,18 +15618,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 43, + "referencedDeclaration": 1071, "type": "struct Pairing.G1Point memory", "value": "p" }, - "id": 68, + "id": 1096, "name": "Identifier", - "src": "2918:1:0" + "src": "2918:1:4" } ], - "id": 69, + "id": 1097, "name": "MemberAccess", - "src": "2918:3:0" + "src": "2918:3:4" }, { "attributes": { @@ -15652,13 +15652,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 49, + "referencedDeclaration": 1077, "type": "uint256", "value": "q" }, - "id": 70, + "id": 1098, "name": "Identifier", - "src": "2923:1:0" + "src": "2923:1:4" }, { "attributes": { @@ -15694,7 +15694,7 @@ "isPure": false, "lValueRequested": false, "member_name": "Y", - "referencedDeclaration": 5, + "referencedDeclaration": 1033, "type": "uint256" }, "children": [ @@ -15704,18 +15704,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 43, + "referencedDeclaration": 1071, "type": "struct Pairing.G1Point memory", "value": "p" }, - "id": 71, + "id": 1099, "name": "Identifier", - "src": "2928:1:0" + "src": "2928:1:4" } ], - "id": 72, + "id": 1100, "name": "MemberAccess", - "src": "2928:3:0" + "src": "2928:3:4" }, { "attributes": { @@ -15723,48 +15723,48 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 49, + "referencedDeclaration": 1077, "type": "uint256", "value": "q" }, - "id": 73, + "id": 1101, "name": "Identifier", - "src": "2934:1:0" + "src": "2934:1:4" } ], - "id": 74, + "id": 1102, "name": "BinaryOperation", - "src": "2928:7:0" + "src": "2928:7:4" } ], - "id": 75, + "id": 1103, "name": "TupleExpression", - "src": "2927:9:0" + "src": "2927:9:4" } ], - "id": 76, + "id": 1104, "name": "BinaryOperation", - "src": "2923:13:0" + "src": "2923:13:4" } ], - "id": 77, + "id": 1105, "name": "FunctionCall", - "src": "2910:27:0" + "src": "2910:27:4" } ], - "id": 78, + "id": 1106, "name": "Return", - "src": "2903:34:0" + "src": "2903:34:4" } ], - "id": 79, + "id": 1107, "name": "Block", - "src": "2677:267:0" + "src": "2677:267:4" } ], - "id": 80, + "id": 1108, "name": "FunctionDefinition", - "src": "2604:340:0" + "src": "2604:340:4" }, { "attributes": { @@ -15776,7 +15776,7 @@ null ], "name": "addition", - "scope": 577, + "scope": 1605, "stateMutability": "view", "superFunction": null, "visibility": "internal" @@ -15788,7 +15788,7 @@ "attributes": { "constant": false, "name": "p1", - "scope": 133, + "scope": 1161, "stateVariable": false, "storageLocation": "memory", "type": "struct Pairing.G1Point", @@ -15800,23 +15800,23 @@ "attributes": { "contractScope": null, "name": "G1Point", - "referencedDeclaration": 6, + "referencedDeclaration": 1034, "type": "struct Pairing.G1Point" }, - "id": 81, + "id": 1109, "name": "UserDefinedTypeName", - "src": "3011:7:0" + "src": "3011:7:4" } ], - "id": 82, + "id": 1110, "name": "VariableDeclaration", - "src": "3011:17:0" + "src": "3011:17:4" }, { "attributes": { "constant": false, "name": "p2", - "scope": 133, + "scope": 1161, "stateVariable": false, "storageLocation": "memory", "type": "struct Pairing.G1Point", @@ -15828,22 +15828,22 @@ "attributes": { "contractScope": null, "name": "G1Point", - "referencedDeclaration": 6, + "referencedDeclaration": 1034, "type": "struct Pairing.G1Point" }, - "id": 83, + "id": 1111, "name": "UserDefinedTypeName", - "src": "3030:7:0" + "src": "3030:7:4" } ], - "id": 84, + "id": 1112, "name": "VariableDeclaration", - "src": "3030:17:0" + "src": "3030:17:4" } ], - "id": 85, + "id": 1113, "name": "ParameterList", - "src": "3010:38:0" + "src": "3010:38:4" }, { "children": [ @@ -15851,7 +15851,7 @@ "attributes": { "constant": false, "name": "r", - "scope": 133, + "scope": 1161, "stateVariable": false, "storageLocation": "memory", "type": "struct Pairing.G1Point", @@ -15863,29 +15863,29 @@ "attributes": { "contractScope": null, "name": "G1Point", - "referencedDeclaration": 6, + "referencedDeclaration": 1034, "type": "struct Pairing.G1Point" }, - "id": 86, + "id": 1114, "name": "UserDefinedTypeName", - "src": "3072:7:0" + "src": "3072:7:4" } ], - "id": 87, + "id": 1115, "name": "VariableDeclaration", - "src": "3072:16:0" + "src": "3072:16:4" } ], - "id": 88, + "id": 1116, "name": "ParameterList", - "src": "3071:18:0" + "src": "3071:18:4" }, { "children": [ { "attributes": { "assignments": [ - 93 + 1121 ], "initialValue": null }, @@ -15894,7 +15894,7 @@ "attributes": { "constant": false, "name": "input", - "scope": 132, + "scope": 1160, "stateVariable": false, "storageLocation": "memory", "type": "uint256[4]", @@ -15912,9 +15912,9 @@ "name": "uint", "type": "uint256" }, - "id": 91, + "id": 1119, "name": "ElementaryTypeName", - "src": "3100:4:0" + "src": "3100:4:4" }, { "attributes": { @@ -15929,24 +15929,24 @@ "type": "int_const 4", "value": "4" }, - "id": 90, + "id": 1118, "name": "Literal", - "src": "3105:1:0" + "src": "3105:1:4" } ], - "id": 92, + "id": 1120, "name": "ArrayTypeName", - "src": "3100:7:0" + "src": "3100:7:4" } ], - "id": 93, + "id": 1121, "name": "VariableDeclaration", - "src": "3100:20:0" + "src": "3100:20:4" } ], - "id": 94, + "id": 1122, "name": "VariableDeclarationStatement", - "src": "3100:20:0" + "src": "3100:20:4" }, { "children": [ @@ -15977,13 +15977,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 93, + "referencedDeclaration": 1121, "type": "uint256[4] memory", "value": "input" }, - "id": 95, + "id": 1123, "name": "Identifier", - "src": "3130:5:0" + "src": "3130:5:4" }, { "attributes": { @@ -15998,14 +15998,14 @@ "type": "int_const 0", "value": "0" }, - "id": 96, + "id": 1124, "name": "Literal", - "src": "3136:1:0" + "src": "3136:1:4" } ], - "id": 97, + "id": 1125, "name": "IndexAccess", - "src": "3130:8:0" + "src": "3130:8:4" }, { "attributes": { @@ -16015,7 +16015,7 @@ "isPure": false, "lValueRequested": false, "member_name": "X", - "referencedDeclaration": 3, + "referencedDeclaration": 1031, "type": "uint256" }, "children": [ @@ -16025,28 +16025,28 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 82, + "referencedDeclaration": 1110, "type": "struct Pairing.G1Point memory", "value": "p1" }, - "id": 98, + "id": 1126, "name": "Identifier", - "src": "3141:2:0" + "src": "3141:2:4" } ], - "id": 99, + "id": 1127, "name": "MemberAccess", - "src": "3141:4:0" + "src": "3141:4:4" } ], - "id": 100, + "id": 1128, "name": "Assignment", - "src": "3130:15:0" + "src": "3130:15:4" } ], - "id": 101, + "id": 1129, "name": "ExpressionStatement", - "src": "3130:15:0" + "src": "3130:15:4" }, { "children": [ @@ -16077,13 +16077,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 93, + "referencedDeclaration": 1121, "type": "uint256[4] memory", "value": "input" }, - "id": 102, + "id": 1130, "name": "Identifier", - "src": "3155:5:0" + "src": "3155:5:4" }, { "attributes": { @@ -16098,14 +16098,14 @@ "type": "int_const 1", "value": "1" }, - "id": 103, + "id": 1131, "name": "Literal", - "src": "3161:1:0" + "src": "3161:1:4" } ], - "id": 104, + "id": 1132, "name": "IndexAccess", - "src": "3155:8:0" + "src": "3155:8:4" }, { "attributes": { @@ -16115,7 +16115,7 @@ "isPure": false, "lValueRequested": false, "member_name": "Y", - "referencedDeclaration": 5, + "referencedDeclaration": 1033, "type": "uint256" }, "children": [ @@ -16125,28 +16125,28 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 82, + "referencedDeclaration": 1110, "type": "struct Pairing.G1Point memory", "value": "p1" }, - "id": 105, + "id": 1133, "name": "Identifier", - "src": "3166:2:0" + "src": "3166:2:4" } ], - "id": 106, + "id": 1134, "name": "MemberAccess", - "src": "3166:4:0" + "src": "3166:4:4" } ], - "id": 107, + "id": 1135, "name": "Assignment", - "src": "3155:15:0" + "src": "3155:15:4" } ], - "id": 108, + "id": 1136, "name": "ExpressionStatement", - "src": "3155:15:0" + "src": "3155:15:4" }, { "children": [ @@ -16177,13 +16177,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 93, + "referencedDeclaration": 1121, "type": "uint256[4] memory", "value": "input" }, - "id": 109, + "id": 1137, "name": "Identifier", - "src": "3180:5:0" + "src": "3180:5:4" }, { "attributes": { @@ -16198,14 +16198,14 @@ "type": "int_const 2", "value": "2" }, - "id": 110, + "id": 1138, "name": "Literal", - "src": "3186:1:0" + "src": "3186:1:4" } ], - "id": 111, + "id": 1139, "name": "IndexAccess", - "src": "3180:8:0" + "src": "3180:8:4" }, { "attributes": { @@ -16215,7 +16215,7 @@ "isPure": false, "lValueRequested": false, "member_name": "X", - "referencedDeclaration": 3, + "referencedDeclaration": 1031, "type": "uint256" }, "children": [ @@ -16225,28 +16225,28 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 84, + "referencedDeclaration": 1112, "type": "struct Pairing.G1Point memory", "value": "p2" }, - "id": 112, + "id": 1140, "name": "Identifier", - "src": "3191:2:0" + "src": "3191:2:4" } ], - "id": 113, + "id": 1141, "name": "MemberAccess", - "src": "3191:4:0" + "src": "3191:4:4" } ], - "id": 114, + "id": 1142, "name": "Assignment", - "src": "3180:15:0" + "src": "3180:15:4" } ], - "id": 115, + "id": 1143, "name": "ExpressionStatement", - "src": "3180:15:0" + "src": "3180:15:4" }, { "children": [ @@ -16277,13 +16277,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 93, + "referencedDeclaration": 1121, "type": "uint256[4] memory", "value": "input" }, - "id": 116, + "id": 1144, "name": "Identifier", - "src": "3205:5:0" + "src": "3205:5:4" }, { "attributes": { @@ -16298,14 +16298,14 @@ "type": "int_const 3", "value": "3" }, - "id": 117, + "id": 1145, "name": "Literal", - "src": "3211:1:0" + "src": "3211:1:4" } ], - "id": 118, + "id": 1146, "name": "IndexAccess", - "src": "3205:8:0" + "src": "3205:8:4" }, { "attributes": { @@ -16315,7 +16315,7 @@ "isPure": false, "lValueRequested": false, "member_name": "Y", - "referencedDeclaration": 5, + "referencedDeclaration": 1033, "type": "uint256" }, "children": [ @@ -16325,33 +16325,33 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 84, + "referencedDeclaration": 1112, "type": "struct Pairing.G1Point memory", "value": "p2" }, - "id": 119, + "id": 1147, "name": "Identifier", - "src": "3216:2:0" + "src": "3216:2:4" } ], - "id": 120, + "id": 1148, "name": "MemberAccess", - "src": "3216:4:0" + "src": "3216:4:4" } ], - "id": 121, + "id": 1149, "name": "Assignment", - "src": "3205:15:0" + "src": "3205:15:4" } ], - "id": 122, + "id": 1150, "name": "ExpressionStatement", - "src": "3205:15:0" + "src": "3205:15:4" }, { "attributes": { "assignments": [ - 124 + 1152 ], "initialValue": null }, @@ -16360,7 +16360,7 @@ "attributes": { "constant": false, "name": "success", - "scope": 132, + "scope": 1160, "stateVariable": false, "storageLocation": "default", "type": "bool", @@ -16373,56 +16373,56 @@ "name": "bool", "type": "bool" }, - "id": 123, + "id": 1151, "name": "ElementaryTypeName", - "src": "3230:4:0" + "src": "3230:4:4" } ], - "id": 124, + "id": 1152, "name": "VariableDeclaration", - "src": "3230:12:0" + "src": "3230:12:4" } ], - "id": 125, + "id": 1153, "name": "VariableDeclarationStatement", - "src": "3230:12:0" + "src": "3230:12:4" }, { "attributes": { "externalReferences": [ { "success": { - "declaration": 124, + "declaration": 1152, "isOffset": false, "isSlot": false, - "src": "3339:7:0", + "src": "3339:7:4", "valueSize": 1 } }, { "input": { - "declaration": 93, + "declaration": 1121, "isOffset": false, "isSlot": false, - "src": "3380:5:0", + "src": "3380:5:4", "valueSize": 1 } }, { "r": { - "declaration": 87, + "declaration": 1115, "isOffset": false, "isSlot": false, - "src": "3393:1:0", + "src": "3393:1:4", "valueSize": 1 } }, { "success": { - "declaration": 124, + "declaration": 1152, "isOffset": false, "isSlot": false, - "src": "3478:7:0", + "src": "3478:7:4", "valueSize": 1 } } @@ -16430,9 +16430,9 @@ "operations": "{\n success := staticcall(sub(gas(), 2000), 6, input, 0xc0, r, 0x60)\n switch success\n case 0 { invalid() }\n}" }, "children": [], - "id": 126, + "id": 1154, "name": "InlineAssembly", - "src": "3316:200:0" + "src": "3316:200:4" }, { "children": [ @@ -16464,16 +16464,16 @@ } ], "overloadedDeclarations": [ - 1076, - 1077 + 2134, + 2135 ], - "referencedDeclaration": 1077, + "referencedDeclaration": 2135, "type": "function (bool,string memory) pure", "value": "require" }, - "id": 127, + "id": 1155, "name": "Identifier", - "src": "3525:7:0" + "src": "3525:7:4" }, { "attributes": { @@ -16481,13 +16481,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 124, + "referencedDeclaration": 1152, "type": "bool", "value": "success" }, - "id": 128, + "id": 1156, "name": "Identifier", - "src": "3533:7:0" + "src": "3533:7:4" }, { "attributes": { @@ -16502,29 +16502,29 @@ "type": "literal_string \"pairing-add-failed\"", "value": "pairing-add-failed" }, - "id": 129, + "id": 1157, "name": "Literal", - "src": "3541:20:0" + "src": "3541:20:4" } ], - "id": 130, + "id": 1158, "name": "FunctionCall", - "src": "3525:37:0" + "src": "3525:37:4" } ], - "id": 131, + "id": 1159, "name": "ExpressionStatement", - "src": "3525:37:0" + "src": "3525:37:4" } ], - "id": 132, + "id": 1160, "name": "Block", - "src": "3090:479:0" + "src": "3090:479:4" } ], - "id": 133, + "id": 1161, "name": "FunctionDefinition", - "src": "2993:576:0" + "src": "2993:576:4" }, { "attributes": { @@ -16536,7 +16536,7 @@ null ], "name": "scalar_mul", - "scope": 577, + "scope": 1605, "stateMutability": "view", "superFunction": null, "visibility": "internal" @@ -16548,7 +16548,7 @@ "attributes": { "constant": false, "name": "p", - "scope": 178, + "scope": 1206, "stateVariable": false, "storageLocation": "memory", "type": "struct Pairing.G1Point", @@ -16560,23 +16560,23 @@ "attributes": { "contractScope": null, "name": "G1Point", - "referencedDeclaration": 6, + "referencedDeclaration": 1034, "type": "struct Pairing.G1Point" }, - "id": 134, + "id": 1162, "name": "UserDefinedTypeName", - "src": "3742:7:0" + "src": "3742:7:4" } ], - "id": 135, + "id": 1163, "name": "VariableDeclaration", - "src": "3742:16:0" + "src": "3742:16:4" }, { "attributes": { "constant": false, "name": "s", - "scope": 178, + "scope": 1206, "stateVariable": false, "storageLocation": "default", "type": "uint256", @@ -16589,19 +16589,19 @@ "name": "uint", "type": "uint256" }, - "id": 136, + "id": 1164, "name": "ElementaryTypeName", - "src": "3760:4:0" + "src": "3760:4:4" } ], - "id": 137, + "id": 1165, "name": "VariableDeclaration", - "src": "3760:6:0" + "src": "3760:6:4" } ], - "id": 138, + "id": 1166, "name": "ParameterList", - "src": "3741:26:0" + "src": "3741:26:4" }, { "children": [ @@ -16609,7 +16609,7 @@ "attributes": { "constant": false, "name": "r", - "scope": 178, + "scope": 1206, "stateVariable": false, "storageLocation": "memory", "type": "struct Pairing.G1Point", @@ -16621,29 +16621,29 @@ "attributes": { "contractScope": null, "name": "G1Point", - "referencedDeclaration": 6, + "referencedDeclaration": 1034, "type": "struct Pairing.G1Point" }, - "id": 139, + "id": 1167, "name": "UserDefinedTypeName", - "src": "3791:7:0" + "src": "3791:7:4" } ], - "id": 140, + "id": 1168, "name": "VariableDeclaration", - "src": "3791:16:0" + "src": "3791:16:4" } ], - "id": 141, + "id": 1169, "name": "ParameterList", - "src": "3790:18:0" + "src": "3790:18:4" }, { "children": [ { "attributes": { "assignments": [ - 146 + 1174 ], "initialValue": null }, @@ -16652,7 +16652,7 @@ "attributes": { "constant": false, "name": "input", - "scope": 177, + "scope": 1205, "stateVariable": false, "storageLocation": "memory", "type": "uint256[3]", @@ -16670,9 +16670,9 @@ "name": "uint", "type": "uint256" }, - "id": 144, + "id": 1172, "name": "ElementaryTypeName", - "src": "3819:4:0" + "src": "3819:4:4" }, { "attributes": { @@ -16687,24 +16687,24 @@ "type": "int_const 3", "value": "3" }, - "id": 143, + "id": 1171, "name": "Literal", - "src": "3824:1:0" + "src": "3824:1:4" } ], - "id": 145, + "id": 1173, "name": "ArrayTypeName", - "src": "3819:7:0" + "src": "3819:7:4" } ], - "id": 146, + "id": 1174, "name": "VariableDeclaration", - "src": "3819:20:0" + "src": "3819:20:4" } ], - "id": 147, + "id": 1175, "name": "VariableDeclarationStatement", - "src": "3819:20:0" + "src": "3819:20:4" }, { "children": [ @@ -16735,13 +16735,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 146, + "referencedDeclaration": 1174, "type": "uint256[3] memory", "value": "input" }, - "id": 148, + "id": 1176, "name": "Identifier", - "src": "3849:5:0" + "src": "3849:5:4" }, { "attributes": { @@ -16756,14 +16756,14 @@ "type": "int_const 0", "value": "0" }, - "id": 149, + "id": 1177, "name": "Literal", - "src": "3855:1:0" + "src": "3855:1:4" } ], - "id": 150, + "id": 1178, "name": "IndexAccess", - "src": "3849:8:0" + "src": "3849:8:4" }, { "attributes": { @@ -16773,7 +16773,7 @@ "isPure": false, "lValueRequested": false, "member_name": "X", - "referencedDeclaration": 3, + "referencedDeclaration": 1031, "type": "uint256" }, "children": [ @@ -16783,28 +16783,28 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 135, + "referencedDeclaration": 1163, "type": "struct Pairing.G1Point memory", "value": "p" }, - "id": 151, + "id": 1179, "name": "Identifier", - "src": "3860:1:0" + "src": "3860:1:4" } ], - "id": 152, + "id": 1180, "name": "MemberAccess", - "src": "3860:3:0" + "src": "3860:3:4" } ], - "id": 153, + "id": 1181, "name": "Assignment", - "src": "3849:14:0" + "src": "3849:14:4" } ], - "id": 154, + "id": 1182, "name": "ExpressionStatement", - "src": "3849:14:0" + "src": "3849:14:4" }, { "children": [ @@ -16835,13 +16835,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 146, + "referencedDeclaration": 1174, "type": "uint256[3] memory", "value": "input" }, - "id": 155, + "id": 1183, "name": "Identifier", - "src": "3873:5:0" + "src": "3873:5:4" }, { "attributes": { @@ -16856,14 +16856,14 @@ "type": "int_const 1", "value": "1" }, - "id": 156, + "id": 1184, "name": "Literal", - "src": "3879:1:0" + "src": "3879:1:4" } ], - "id": 157, + "id": 1185, "name": "IndexAccess", - "src": "3873:8:0" + "src": "3873:8:4" }, { "attributes": { @@ -16873,7 +16873,7 @@ "isPure": false, "lValueRequested": false, "member_name": "Y", - "referencedDeclaration": 5, + "referencedDeclaration": 1033, "type": "uint256" }, "children": [ @@ -16883,28 +16883,28 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 135, + "referencedDeclaration": 1163, "type": "struct Pairing.G1Point memory", "value": "p" }, - "id": 158, + "id": 1186, "name": "Identifier", - "src": "3884:1:0" + "src": "3884:1:4" } ], - "id": 159, + "id": 1187, "name": "MemberAccess", - "src": "3884:3:0" + "src": "3884:3:4" } ], - "id": 160, + "id": 1188, "name": "Assignment", - "src": "3873:14:0" + "src": "3873:14:4" } ], - "id": 161, + "id": 1189, "name": "ExpressionStatement", - "src": "3873:14:0" + "src": "3873:14:4" }, { "children": [ @@ -16935,13 +16935,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 146, + "referencedDeclaration": 1174, "type": "uint256[3] memory", "value": "input" }, - "id": 162, + "id": 1190, "name": "Identifier", - "src": "3897:5:0" + "src": "3897:5:4" }, { "attributes": { @@ -16956,14 +16956,14 @@ "type": "int_const 2", "value": "2" }, - "id": 163, + "id": 1191, "name": "Literal", - "src": "3903:1:0" + "src": "3903:1:4" } ], - "id": 164, + "id": 1192, "name": "IndexAccess", - "src": "3897:8:0" + "src": "3897:8:4" }, { "attributes": { @@ -16971,28 +16971,28 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 137, + "referencedDeclaration": 1165, "type": "uint256", "value": "s" }, - "id": 165, + "id": 1193, "name": "Identifier", - "src": "3908:1:0" + "src": "3908:1:4" } ], - "id": 166, + "id": 1194, "name": "Assignment", - "src": "3897:12:0" + "src": "3897:12:4" } ], - "id": 167, + "id": 1195, "name": "ExpressionStatement", - "src": "3897:12:0" + "src": "3897:12:4" }, { "attributes": { "assignments": [ - 169 + 1197 ], "initialValue": null }, @@ -17001,7 +17001,7 @@ "attributes": { "constant": false, "name": "success", - "scope": 177, + "scope": 1205, "stateVariable": false, "storageLocation": "default", "type": "bool", @@ -17014,56 +17014,56 @@ "name": "bool", "type": "bool" }, - "id": 168, + "id": 1196, "name": "ElementaryTypeName", - "src": "3919:4:0" + "src": "3919:4:4" } ], - "id": 169, + "id": 1197, "name": "VariableDeclaration", - "src": "3919:12:0" + "src": "3919:12:4" } ], - "id": 170, + "id": 1198, "name": "VariableDeclarationStatement", - "src": "3919:12:0" + "src": "3919:12:4" }, { "attributes": { "externalReferences": [ { "success": { - "declaration": 169, + "declaration": 1197, "isOffset": false, "isSlot": false, - "src": "4028:7:0", - "valueSize": 1 - } - }, - { - "input": { - "declaration": 146, - "isOffset": false, - "isSlot": false, - "src": "4069:5:0", - "valueSize": 1 - } - }, - { - "r": { - "declaration": 140, - "isOffset": false, - "isSlot": false, - "src": "4082:1:0", + "src": "4028:7:4", "valueSize": 1 } }, { "success": { - "declaration": 169, + "declaration": 1197, "isOffset": false, "isSlot": false, - "src": "4167:7:0", + "src": "4167:7:4", + "valueSize": 1 + } + }, + { + "input": { + "declaration": 1174, + "isOffset": false, + "isSlot": false, + "src": "4069:5:4", + "valueSize": 1 + } + }, + { + "r": { + "declaration": 1168, + "isOffset": false, + "isSlot": false, + "src": "4082:1:4", "valueSize": 1 } } @@ -17071,9 +17071,9 @@ "operations": "{\n success := staticcall(sub(gas(), 2000), 7, input, 0x80, r, 0x60)\n switch success\n case 0 { invalid() }\n}" }, "children": [], - "id": 171, + "id": 1199, "name": "InlineAssembly", - "src": "4005:200:0" + "src": "4005:200:4" }, { "children": [ @@ -17105,16 +17105,16 @@ } ], "overloadedDeclarations": [ - 1076, - 1077 + 2134, + 2135 ], - "referencedDeclaration": 1077, + "referencedDeclaration": 2135, "type": "function (bool,string memory) pure", "value": "require" }, - "id": 172, + "id": 1200, "name": "Identifier", - "src": "4214:7:0" + "src": "4214:7:4" }, { "attributes": { @@ -17122,13 +17122,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 169, + "referencedDeclaration": 1197, "type": "bool", "value": "success" }, - "id": 173, + "id": 1201, "name": "Identifier", - "src": "4223:7:0" + "src": "4223:7:4" }, { "attributes": { @@ -17143,29 +17143,29 @@ "type": "literal_string \"pairing-mul-failed\"", "value": "pairing-mul-failed" }, - "id": 174, + "id": 1202, "name": "Literal", - "src": "4231:20:0" + "src": "4231:20:4" } ], - "id": 175, + "id": 1203, "name": "FunctionCall", - "src": "4214:38:0" + "src": "4214:38:4" } ], - "id": 176, + "id": 1204, "name": "ExpressionStatement", - "src": "4214:38:0" + "src": "4214:38:4" } ], - "id": 177, + "id": 1205, "name": "Block", - "src": "3809:450:0" + "src": "3809:450:4" } ], - "id": 178, + "id": 1206, "name": "FunctionDefinition", - "src": "3722:537:0" + "src": "3722:537:4" }, { "attributes": { @@ -17177,7 +17177,7 @@ null ], "name": "pairing", - "scope": 577, + "scope": 1605, "stateMutability": "view", "superFunction": null, "visibility": "internal" @@ -17189,7 +17189,7 @@ "attributes": { "constant": false, "name": "p1", - "scope": 339, + "scope": 1367, "stateVariable": false, "storageLocation": "memory", "type": "struct Pairing.G1Point[]", @@ -17207,28 +17207,28 @@ "attributes": { "contractScope": null, "name": "G1Point", - "referencedDeclaration": 6, + "referencedDeclaration": 1034, "type": "struct Pairing.G1Point" }, - "id": 179, + "id": 1207, "name": "UserDefinedTypeName", - "src": "4487:7:0" + "src": "4487:7:4" } ], - "id": 180, + "id": 1208, "name": "ArrayTypeName", - "src": "4487:9:0" + "src": "4487:9:4" } ], - "id": 181, + "id": 1209, "name": "VariableDeclaration", - "src": "4487:19:0" + "src": "4487:19:4" }, { "attributes": { "constant": false, "name": "p2", - "scope": 339, + "scope": 1367, "stateVariable": false, "storageLocation": "memory", "type": "struct Pairing.G2Point[]", @@ -17246,27 +17246,27 @@ "attributes": { "contractScope": null, "name": "G2Point", - "referencedDeclaration": 15, + "referencedDeclaration": 1043, "type": "struct Pairing.G2Point" }, - "id": 182, + "id": 1210, "name": "UserDefinedTypeName", - "src": "4508:7:0" + "src": "4508:7:4" } ], - "id": 183, + "id": 1211, "name": "ArrayTypeName", - "src": "4508:9:0" + "src": "4508:9:4" } ], - "id": 184, + "id": 1212, "name": "VariableDeclaration", - "src": "4508:19:0" + "src": "4508:19:4" } ], - "id": 185, + "id": 1213, "name": "ParameterList", - "src": "4486:42:0" + "src": "4486:42:4" }, { "children": [ @@ -17274,7 +17274,7 @@ "attributes": { "constant": false, "name": "", - "scope": 339, + "scope": 1367, "stateVariable": false, "storageLocation": "default", "type": "bool", @@ -17287,19 +17287,19 @@ "name": "bool", "type": "bool" }, - "id": 186, + "id": 1214, "name": "ElementaryTypeName", - "src": "4552:4:0" + "src": "4552:4:4" } ], - "id": 187, + "id": 1215, "name": "VariableDeclaration", - "src": "4552:4:0" + "src": "4552:4:4" } ], - "id": 188, + "id": 1216, "name": "ParameterList", - "src": "4551:6:0" + "src": "4551:6:4" }, { "children": [ @@ -17333,16 +17333,16 @@ } ], "overloadedDeclarations": [ - 1076, - 1077 + 2134, + 2135 ], - "referencedDeclaration": 1077, + "referencedDeclaration": 2135, "type": "function (bool,string memory) pure", "value": "require" }, - "id": 189, + "id": 1217, "name": "Identifier", - "src": "4568:7:0" + "src": "4568:7:4" }, { "attributes": { @@ -17377,18 +17377,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 181, + "referencedDeclaration": 1209, "type": "struct Pairing.G1Point memory[] memory", "value": "p1" }, - "id": 190, + "id": 1218, "name": "Identifier", - "src": "4576:2:0" + "src": "4576:2:4" } ], - "id": 191, + "id": 1219, "name": "MemberAccess", - "src": "4576:9:0" + "src": "4576:9:4" }, { "attributes": { @@ -17408,23 +17408,23 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 184, + "referencedDeclaration": 1212, "type": "struct Pairing.G2Point memory[] memory", "value": "p2" }, - "id": 192, + "id": 1220, "name": "Identifier", - "src": "4589:2:0" + "src": "4589:2:4" } ], - "id": 193, + "id": 1221, "name": "MemberAccess", - "src": "4589:9:0" + "src": "4589:9:4" } ], - "id": 194, + "id": 1222, "name": "BinaryOperation", - "src": "4576:22:0" + "src": "4576:22:4" }, { "attributes": { @@ -17439,24 +17439,24 @@ "type": "literal_string \"pairing-lengths-failed\"", "value": "pairing-lengths-failed" }, - "id": 195, + "id": 1223, "name": "Literal", - "src": "4599:24:0" + "src": "4599:24:4" } ], - "id": 196, + "id": 1224, "name": "FunctionCall", - "src": "4568:56:0" + "src": "4568:56:4" } ], - "id": 197, + "id": 1225, "name": "ExpressionStatement", - "src": "4568:56:0" + "src": "4568:56:4" }, { "attributes": { "assignments": [ - 199 + 1227 ] }, "children": [ @@ -17464,7 +17464,7 @@ "attributes": { "constant": false, "name": "elements", - "scope": 338, + "scope": 1366, "stateVariable": false, "storageLocation": "default", "type": "uint256", @@ -17477,14 +17477,14 @@ "name": "uint", "type": "uint256" }, - "id": 198, + "id": 1226, "name": "ElementaryTypeName", - "src": "4634:4:0" + "src": "4634:4:4" } ], - "id": 199, + "id": 1227, "name": "VariableDeclaration", - "src": "4634:13:0" + "src": "4634:13:4" }, { "attributes": { @@ -17504,28 +17504,28 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 181, + "referencedDeclaration": 1209, "type": "struct Pairing.G1Point memory[] memory", "value": "p1" }, - "id": 200, + "id": 1228, "name": "Identifier", - "src": "4650:2:0" + "src": "4650:2:4" } ], - "id": 201, + "id": 1229, "name": "MemberAccess", - "src": "4650:9:0" + "src": "4650:9:4" } ], - "id": 202, + "id": 1230, "name": "VariableDeclarationStatement", - "src": "4634:25:0" + "src": "4634:25:4" }, { "attributes": { "assignments": [ - 204 + 1232 ] }, "children": [ @@ -17533,7 +17533,7 @@ "attributes": { "constant": false, "name": "inputSize", - "scope": 338, + "scope": 1366, "stateVariable": false, "storageLocation": "default", "type": "uint256", @@ -17546,14 +17546,14 @@ "name": "uint", "type": "uint256" }, - "id": 203, + "id": 1231, "name": "ElementaryTypeName", - "src": "4669:4:0" + "src": "4669:4:4" } ], - "id": 204, + "id": 1232, "name": "VariableDeclaration", - "src": "4669:14:0" + "src": "4669:14:4" }, { "attributes": { @@ -17576,13 +17576,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 199, + "referencedDeclaration": 1227, "type": "uint256", "value": "elements" }, - "id": 205, + "id": 1233, "name": "Identifier", - "src": "4686:8:0" + "src": "4686:8:4" }, { "attributes": { @@ -17597,24 +17597,24 @@ "type": "int_const 6", "value": "6" }, - "id": 206, + "id": 1234, "name": "Literal", - "src": "4697:1:0" + "src": "4697:1:4" } ], - "id": 207, + "id": 1235, "name": "BinaryOperation", - "src": "4686:12:0" + "src": "4686:12:4" } ], - "id": 208, + "id": 1236, "name": "VariableDeclarationStatement", - "src": "4669:29:0" + "src": "4669:29:4" }, { "attributes": { "assignments": [ - 212 + 1240 ] }, "children": [ @@ -17622,7 +17622,7 @@ "attributes": { "constant": false, "name": "input", - "scope": 338, + "scope": 1366, "stateVariable": false, "storageLocation": "memory", "type": "uint256[]", @@ -17641,19 +17641,19 @@ "name": "uint", "type": "uint256" }, - "id": 210, + "id": 1238, "name": "ElementaryTypeName", - "src": "4708:4:0" + "src": "4708:4:4" } ], - "id": 211, + "id": 1239, "name": "ArrayTypeName", - "src": "4708:6:0" + "src": "4708:6:4" } ], - "id": 212, + "id": 1240, "name": "VariableDeclaration", - "src": "4708:19:0" + "src": "4708:19:4" }, { "attributes": { @@ -17696,19 +17696,19 @@ "name": "uint", "type": "uint256" }, - "id": 213, + "id": 1241, "name": "ElementaryTypeName", - "src": "4734:4:0" + "src": "4734:4:4" } ], - "id": 214, + "id": 1242, "name": "ArrayTypeName", - "src": "4734:6:0" + "src": "4734:6:4" } ], - "id": 215, + "id": 1243, "name": "NewExpression", - "src": "4730:10:0" + "src": "4730:10:4" }, { "attributes": { @@ -17716,30 +17716,30 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 204, + "referencedDeclaration": 1232, "type": "uint256", "value": "inputSize" }, - "id": 216, + "id": 1244, "name": "Identifier", - "src": "4741:9:0" + "src": "4741:9:4" } ], - "id": 217, + "id": 1245, "name": "FunctionCall", - "src": "4730:21:0" + "src": "4730:21:4" } ], - "id": 218, + "id": 1246, "name": "VariableDeclarationStatement", - "src": "4708:43:0" + "src": "4708:43:4" }, { "children": [ { "attributes": { "assignments": [ - 220 + 1248 ] }, "children": [ @@ -17747,7 +17747,7 @@ "attributes": { "constant": false, "name": "i", - "scope": 316, + "scope": 1344, "stateVariable": false, "storageLocation": "default", "type": "uint256", @@ -17760,14 +17760,14 @@ "name": "uint", "type": "uint256" }, - "id": 219, + "id": 1247, "name": "ElementaryTypeName", - "src": "4766:4:0" + "src": "4766:4:4" } ], - "id": 220, + "id": 1248, "name": "VariableDeclaration", - "src": "4766:6:0" + "src": "4766:6:4" }, { "attributes": { @@ -17782,14 +17782,14 @@ "type": "int_const 0", "value": "0" }, - "id": 221, + "id": 1249, "name": "Literal", - "src": "4775:1:0" + "src": "4775:1:4" } ], - "id": 222, + "id": 1250, "name": "VariableDeclarationStatement", - "src": "4766:10:0" + "src": "4766:10:4" }, { "attributes": { @@ -17812,13 +17812,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 220, + "referencedDeclaration": 1248, "type": "uint256", "value": "i" }, - "id": 223, + "id": 1251, "name": "Identifier", - "src": "4778:1:0" + "src": "4778:1:4" }, { "attributes": { @@ -17826,18 +17826,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 199, + "referencedDeclaration": 1227, "type": "uint256", "value": "elements" }, - "id": 224, + "id": 1252, "name": "Identifier", - "src": "4782:8:0" + "src": "4782:8:4" } ], - "id": 225, + "id": 1253, "name": "BinaryOperation", - "src": "4778:12:0" + "src": "4778:12:4" }, { "children": [ @@ -17859,23 +17859,23 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 220, + "referencedDeclaration": 1248, "type": "uint256", "value": "i" }, - "id": 226, + "id": 1254, "name": "Identifier", - "src": "4792:1:0" + "src": "4792:1:4" } ], - "id": 227, + "id": 1255, "name": "UnaryOperation", - "src": "4792:3:0" + "src": "4792:3:4" } ], - "id": 228, + "id": 1256, "name": "ExpressionStatement", - "src": "4792:3:0" + "src": "4792:3:4" }, { "children": [ @@ -17908,13 +17908,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 212, + "referencedDeclaration": 1240, "type": "uint256[] memory", "value": "input" }, - "id": 229, + "id": 1257, "name": "Identifier", - "src": "4819:5:0" + "src": "4819:5:4" }, { "attributes": { @@ -17952,13 +17952,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 220, + "referencedDeclaration": 1248, "type": "uint256", "value": "i" }, - "id": 230, + "id": 1258, "name": "Identifier", - "src": "4825:1:0" + "src": "4825:1:4" }, { "attributes": { @@ -17973,14 +17973,14 @@ "type": "int_const 6", "value": "6" }, - "id": 231, + "id": 1259, "name": "Literal", - "src": "4829:1:0" + "src": "4829:1:4" } ], - "id": 232, + "id": 1260, "name": "BinaryOperation", - "src": "4825:5:0" + "src": "4825:5:4" }, { "attributes": { @@ -17995,19 +17995,19 @@ "type": "int_const 0", "value": "0" }, - "id": 233, + "id": 1261, "name": "Literal", - "src": "4833:1:0" + "src": "4833:1:4" } ], - "id": 234, + "id": 1262, "name": "BinaryOperation", - "src": "4825:9:0" + "src": "4825:9:4" } ], - "id": 235, + "id": 1263, "name": "IndexAccess", - "src": "4819:16:0" + "src": "4819:16:4" }, { "attributes": { @@ -18017,7 +18017,7 @@ "isPure": false, "lValueRequested": false, "member_name": "X", - "referencedDeclaration": 3, + "referencedDeclaration": 1031, "type": "uint256" }, "children": [ @@ -18037,13 +18037,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 181, + "referencedDeclaration": 1209, "type": "struct Pairing.G1Point memory[] memory", "value": "p1" }, - "id": 236, + "id": 1264, "name": "Identifier", - "src": "4838:2:0" + "src": "4838:2:4" }, { "attributes": { @@ -18051,33 +18051,33 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 220, + "referencedDeclaration": 1248, "type": "uint256", "value": "i" }, - "id": 237, + "id": 1265, "name": "Identifier", - "src": "4841:1:0" + "src": "4841:1:4" } ], - "id": 238, + "id": 1266, "name": "IndexAccess", - "src": "4838:5:0" + "src": "4838:5:4" } ], - "id": 239, + "id": 1267, "name": "MemberAccess", - "src": "4838:7:0" + "src": "4838:7:4" } ], - "id": 240, + "id": 1268, "name": "Assignment", - "src": "4819:26:0" + "src": "4819:26:4" } ], - "id": 241, + "id": 1269, "name": "ExpressionStatement", - "src": "4819:26:0" + "src": "4819:26:4" }, { "children": [ @@ -18108,13 +18108,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 212, + "referencedDeclaration": 1240, "type": "uint256[] memory", "value": "input" }, - "id": 242, + "id": 1270, "name": "Identifier", - "src": "4859:5:0" + "src": "4859:5:4" }, { "attributes": { @@ -18152,13 +18152,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 220, + "referencedDeclaration": 1248, "type": "uint256", "value": "i" }, - "id": 243, + "id": 1271, "name": "Identifier", - "src": "4865:1:0" + "src": "4865:1:4" }, { "attributes": { @@ -18173,14 +18173,14 @@ "type": "int_const 6", "value": "6" }, - "id": 244, + "id": 1272, "name": "Literal", - "src": "4869:1:0" + "src": "4869:1:4" } ], - "id": 245, + "id": 1273, "name": "BinaryOperation", - "src": "4865:5:0" + "src": "4865:5:4" }, { "attributes": { @@ -18195,19 +18195,19 @@ "type": "int_const 1", "value": "1" }, - "id": 246, + "id": 1274, "name": "Literal", - "src": "4873:1:0" + "src": "4873:1:4" } ], - "id": 247, + "id": 1275, "name": "BinaryOperation", - "src": "4865:9:0" + "src": "4865:9:4" } ], - "id": 248, + "id": 1276, "name": "IndexAccess", - "src": "4859:16:0" + "src": "4859:16:4" }, { "attributes": { @@ -18217,7 +18217,7 @@ "isPure": false, "lValueRequested": false, "member_name": "Y", - "referencedDeclaration": 5, + "referencedDeclaration": 1033, "type": "uint256" }, "children": [ @@ -18237,13 +18237,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 181, + "referencedDeclaration": 1209, "type": "struct Pairing.G1Point memory[] memory", "value": "p1" }, - "id": 249, + "id": 1277, "name": "Identifier", - "src": "4878:2:0" + "src": "4878:2:4" }, { "attributes": { @@ -18251,33 +18251,33 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 220, + "referencedDeclaration": 1248, "type": "uint256", "value": "i" }, - "id": 250, + "id": 1278, "name": "Identifier", - "src": "4881:1:0" + "src": "4881:1:4" } ], - "id": 251, + "id": 1279, "name": "IndexAccess", - "src": "4878:5:0" + "src": "4878:5:4" } ], - "id": 252, + "id": 1280, "name": "MemberAccess", - "src": "4878:7:0" + "src": "4878:7:4" } ], - "id": 253, + "id": 1281, "name": "Assignment", - "src": "4859:26:0" + "src": "4859:26:4" } ], - "id": 254, + "id": 1282, "name": "ExpressionStatement", - "src": "4859:26:0" + "src": "4859:26:4" }, { "children": [ @@ -18308,13 +18308,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 212, + "referencedDeclaration": 1240, "type": "uint256[] memory", "value": "input" }, - "id": 255, + "id": 1283, "name": "Identifier", - "src": "4899:5:0" + "src": "4899:5:4" }, { "attributes": { @@ -18352,13 +18352,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 220, + "referencedDeclaration": 1248, "type": "uint256", "value": "i" }, - "id": 256, + "id": 1284, "name": "Identifier", - "src": "4905:1:0" + "src": "4905:1:4" }, { "attributes": { @@ -18373,14 +18373,14 @@ "type": "int_const 6", "value": "6" }, - "id": 257, + "id": 1285, "name": "Literal", - "src": "4909:1:0" + "src": "4909:1:4" } ], - "id": 258, + "id": 1286, "name": "BinaryOperation", - "src": "4905:5:0" + "src": "4905:5:4" }, { "attributes": { @@ -18395,19 +18395,19 @@ "type": "int_const 2", "value": "2" }, - "id": 259, + "id": 1287, "name": "Literal", - "src": "4913:1:0" + "src": "4913:1:4" } ], - "id": 260, + "id": 1288, "name": "BinaryOperation", - "src": "4905:9:0" + "src": "4905:9:4" } ], - "id": 261, + "id": 1289, "name": "IndexAccess", - "src": "4899:16:0" + "src": "4899:16:4" }, { "attributes": { @@ -18427,7 +18427,7 @@ "isPure": false, "lValueRequested": false, "member_name": "X", - "referencedDeclaration": 10, + "referencedDeclaration": 1038, "type": "uint256[2] memory" }, "children": [ @@ -18447,13 +18447,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 184, + "referencedDeclaration": 1212, "type": "struct Pairing.G2Point memory[] memory", "value": "p2" }, - "id": 262, + "id": 1290, "name": "Identifier", - "src": "4918:2:0" + "src": "4918:2:4" }, { "attributes": { @@ -18461,23 +18461,23 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 220, + "referencedDeclaration": 1248, "type": "uint256", "value": "i" }, - "id": 263, + "id": 1291, "name": "Identifier", - "src": "4921:1:0" + "src": "4921:1:4" } ], - "id": 264, + "id": 1292, "name": "IndexAccess", - "src": "4918:5:0" + "src": "4918:5:4" } ], - "id": 265, + "id": 1293, "name": "MemberAccess", - "src": "4918:7:0" + "src": "4918:7:4" }, { "attributes": { @@ -18492,24 +18492,24 @@ "type": "int_const 0", "value": "0" }, - "id": 266, + "id": 1294, "name": "Literal", - "src": "4926:1:0" + "src": "4926:1:4" } ], - "id": 267, + "id": 1295, "name": "IndexAccess", - "src": "4918:10:0" + "src": "4918:10:4" } ], - "id": 268, + "id": 1296, "name": "Assignment", - "src": "4899:29:0" + "src": "4899:29:4" } ], - "id": 269, + "id": 1297, "name": "ExpressionStatement", - "src": "4899:29:0" + "src": "4899:29:4" }, { "children": [ @@ -18540,13 +18540,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 212, + "referencedDeclaration": 1240, "type": "uint256[] memory", "value": "input" }, - "id": 270, + "id": 1298, "name": "Identifier", - "src": "4942:5:0" + "src": "4942:5:4" }, { "attributes": { @@ -18584,13 +18584,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 220, + "referencedDeclaration": 1248, "type": "uint256", "value": "i" }, - "id": 271, + "id": 1299, "name": "Identifier", - "src": "4948:1:0" + "src": "4948:1:4" }, { "attributes": { @@ -18605,14 +18605,14 @@ "type": "int_const 6", "value": "6" }, - "id": 272, + "id": 1300, "name": "Literal", - "src": "4952:1:0" + "src": "4952:1:4" } ], - "id": 273, + "id": 1301, "name": "BinaryOperation", - "src": "4948:5:0" + "src": "4948:5:4" }, { "attributes": { @@ -18627,19 +18627,19 @@ "type": "int_const 3", "value": "3" }, - "id": 274, + "id": 1302, "name": "Literal", - "src": "4956:1:0" + "src": "4956:1:4" } ], - "id": 275, + "id": 1303, "name": "BinaryOperation", - "src": "4948:9:0" + "src": "4948:9:4" } ], - "id": 276, + "id": 1304, "name": "IndexAccess", - "src": "4942:16:0" + "src": "4942:16:4" }, { "attributes": { @@ -18659,7 +18659,7 @@ "isPure": false, "lValueRequested": false, "member_name": "X", - "referencedDeclaration": 10, + "referencedDeclaration": 1038, "type": "uint256[2] memory" }, "children": [ @@ -18679,13 +18679,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 184, + "referencedDeclaration": 1212, "type": "struct Pairing.G2Point memory[] memory", "value": "p2" }, - "id": 277, + "id": 1305, "name": "Identifier", - "src": "4961:2:0" + "src": "4961:2:4" }, { "attributes": { @@ -18693,23 +18693,23 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 220, + "referencedDeclaration": 1248, "type": "uint256", "value": "i" }, - "id": 278, + "id": 1306, "name": "Identifier", - "src": "4964:1:0" + "src": "4964:1:4" } ], - "id": 279, + "id": 1307, "name": "IndexAccess", - "src": "4961:5:0" + "src": "4961:5:4" } ], - "id": 280, + "id": 1308, "name": "MemberAccess", - "src": "4961:7:0" + "src": "4961:7:4" }, { "attributes": { @@ -18724,24 +18724,24 @@ "type": "int_const 1", "value": "1" }, - "id": 281, + "id": 1309, "name": "Literal", - "src": "4969:1:0" + "src": "4969:1:4" } ], - "id": 282, + "id": 1310, "name": "IndexAccess", - "src": "4961:10:0" + "src": "4961:10:4" } ], - "id": 283, + "id": 1311, "name": "Assignment", - "src": "4942:29:0" + "src": "4942:29:4" } ], - "id": 284, + "id": 1312, "name": "ExpressionStatement", - "src": "4942:29:0" + "src": "4942:29:4" }, { "children": [ @@ -18772,13 +18772,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 212, + "referencedDeclaration": 1240, "type": "uint256[] memory", "value": "input" }, - "id": 285, + "id": 1313, "name": "Identifier", - "src": "4985:5:0" + "src": "4985:5:4" }, { "attributes": { @@ -18816,13 +18816,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 220, + "referencedDeclaration": 1248, "type": "uint256", "value": "i" }, - "id": 286, + "id": 1314, "name": "Identifier", - "src": "4991:1:0" + "src": "4991:1:4" }, { "attributes": { @@ -18837,14 +18837,14 @@ "type": "int_const 6", "value": "6" }, - "id": 287, + "id": 1315, "name": "Literal", - "src": "4995:1:0" + "src": "4995:1:4" } ], - "id": 288, + "id": 1316, "name": "BinaryOperation", - "src": "4991:5:0" + "src": "4991:5:4" }, { "attributes": { @@ -18859,19 +18859,19 @@ "type": "int_const 4", "value": "4" }, - "id": 289, + "id": 1317, "name": "Literal", - "src": "4999:1:0" + "src": "4999:1:4" } ], - "id": 290, + "id": 1318, "name": "BinaryOperation", - "src": "4991:9:0" + "src": "4991:9:4" } ], - "id": 291, + "id": 1319, "name": "IndexAccess", - "src": "4985:16:0" + "src": "4985:16:4" }, { "attributes": { @@ -18891,7 +18891,7 @@ "isPure": false, "lValueRequested": false, "member_name": "Y", - "referencedDeclaration": 14, + "referencedDeclaration": 1042, "type": "uint256[2] memory" }, "children": [ @@ -18911,13 +18911,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 184, + "referencedDeclaration": 1212, "type": "struct Pairing.G2Point memory[] memory", "value": "p2" }, - "id": 292, + "id": 1320, "name": "Identifier", - "src": "5004:2:0" + "src": "5004:2:4" }, { "attributes": { @@ -18925,23 +18925,23 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 220, + "referencedDeclaration": 1248, "type": "uint256", "value": "i" }, - "id": 293, + "id": 1321, "name": "Identifier", - "src": "5007:1:0" + "src": "5007:1:4" } ], - "id": 294, + "id": 1322, "name": "IndexAccess", - "src": "5004:5:0" + "src": "5004:5:4" } ], - "id": 295, + "id": 1323, "name": "MemberAccess", - "src": "5004:7:0" + "src": "5004:7:4" }, { "attributes": { @@ -18956,24 +18956,24 @@ "type": "int_const 0", "value": "0" }, - "id": 296, + "id": 1324, "name": "Literal", - "src": "5012:1:0" + "src": "5012:1:4" } ], - "id": 297, + "id": 1325, "name": "IndexAccess", - "src": "5004:10:0" + "src": "5004:10:4" } ], - "id": 298, + "id": 1326, "name": "Assignment", - "src": "4985:29:0" + "src": "4985:29:4" } ], - "id": 299, + "id": 1327, "name": "ExpressionStatement", - "src": "4985:29:0" + "src": "4985:29:4" }, { "children": [ @@ -19004,13 +19004,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 212, + "referencedDeclaration": 1240, "type": "uint256[] memory", "value": "input" }, - "id": 300, + "id": 1328, "name": "Identifier", - "src": "5028:5:0" + "src": "5028:5:4" }, { "attributes": { @@ -19048,13 +19048,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 220, + "referencedDeclaration": 1248, "type": "uint256", "value": "i" }, - "id": 301, + "id": 1329, "name": "Identifier", - "src": "5034:1:0" + "src": "5034:1:4" }, { "attributes": { @@ -19069,14 +19069,14 @@ "type": "int_const 6", "value": "6" }, - "id": 302, + "id": 1330, "name": "Literal", - "src": "5038:1:0" + "src": "5038:1:4" } ], - "id": 303, + "id": 1331, "name": "BinaryOperation", - "src": "5034:5:0" + "src": "5034:5:4" }, { "attributes": { @@ -19091,19 +19091,19 @@ "type": "int_const 5", "value": "5" }, - "id": 304, + "id": 1332, "name": "Literal", - "src": "5042:1:0" + "src": "5042:1:4" } ], - "id": 305, + "id": 1333, "name": "BinaryOperation", - "src": "5034:9:0" + "src": "5034:9:4" } ], - "id": 306, + "id": 1334, "name": "IndexAccess", - "src": "5028:16:0" + "src": "5028:16:4" }, { "attributes": { @@ -19123,7 +19123,7 @@ "isPure": false, "lValueRequested": false, "member_name": "Y", - "referencedDeclaration": 14, + "referencedDeclaration": 1042, "type": "uint256[2] memory" }, "children": [ @@ -19143,13 +19143,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 184, + "referencedDeclaration": 1212, "type": "struct Pairing.G2Point memory[] memory", "value": "p2" }, - "id": 307, + "id": 1335, "name": "Identifier", - "src": "5047:2:0" + "src": "5047:2:4" }, { "attributes": { @@ -19157,23 +19157,23 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 220, + "referencedDeclaration": 1248, "type": "uint256", "value": "i" }, - "id": 308, + "id": 1336, "name": "Identifier", - "src": "5050:1:0" + "src": "5050:1:4" } ], - "id": 309, + "id": 1337, "name": "IndexAccess", - "src": "5047:5:0" + "src": "5047:5:4" } ], - "id": 310, + "id": 1338, "name": "MemberAccess", - "src": "5047:7:0" + "src": "5047:7:4" }, { "attributes": { @@ -19188,39 +19188,39 @@ "type": "int_const 1", "value": "1" }, - "id": 311, + "id": 1339, "name": "Literal", - "src": "5055:1:0" + "src": "5055:1:4" } ], - "id": 312, + "id": 1340, "name": "IndexAccess", - "src": "5047:10:0" + "src": "5047:10:4" } ], - "id": 313, + "id": 1341, "name": "Assignment", - "src": "5028:29:0" + "src": "5028:29:4" } ], - "id": 314, + "id": 1342, "name": "ExpressionStatement", - "src": "5028:29:0" + "src": "5028:29:4" } ], - "id": 315, + "id": 1343, "name": "Block", - "src": "4805:263:0" + "src": "4805:263:4" } ], - "id": 316, + "id": 1344, "name": "ForStatement", - "src": "4761:307:0" + "src": "4761:307:4" }, { "attributes": { "assignments": [ - 321 + 1349 ], "initialValue": null }, @@ -19229,7 +19229,7 @@ "attributes": { "constant": false, "name": "out", - "scope": 338, + "scope": 1366, "stateVariable": false, "storageLocation": "memory", "type": "uint256[1]", @@ -19247,9 +19247,9 @@ "name": "uint", "type": "uint256" }, - "id": 319, + "id": 1347, "name": "ElementaryTypeName", - "src": "5077:4:0" + "src": "5077:4:4" }, { "attributes": { @@ -19264,29 +19264,29 @@ "type": "int_const 1", "value": "1" }, - "id": 318, + "id": 1346, "name": "Literal", - "src": "5082:1:0" + "src": "5082:1:4" } ], - "id": 320, + "id": 1348, "name": "ArrayTypeName", - "src": "5077:7:0" + "src": "5077:7:4" } ], - "id": 321, + "id": 1349, "name": "VariableDeclaration", - "src": "5077:18:0" + "src": "5077:18:4" } ], - "id": 322, + "id": 1350, "name": "VariableDeclarationStatement", - "src": "5077:18:0" + "src": "5077:18:4" }, { "attributes": { "assignments": [ - 324 + 1352 ], "initialValue": null }, @@ -19295,7 +19295,7 @@ "attributes": { "constant": false, "name": "success", - "scope": 338, + "scope": 1366, "stateVariable": false, "storageLocation": "default", "type": "bool", @@ -19308,65 +19308,65 @@ "name": "bool", "type": "bool" }, - "id": 323, + "id": 1351, "name": "ElementaryTypeName", - "src": "5105:4:0" + "src": "5105:4:4" } ], - "id": 324, + "id": 1352, "name": "VariableDeclaration", - "src": "5105:12:0" + "src": "5105:12:4" } ], - "id": 325, + "id": 1353, "name": "VariableDeclarationStatement", - "src": "5105:12:0" + "src": "5105:12:4" }, { "attributes": { "externalReferences": [ { "success": { - "declaration": 324, + "declaration": 1352, "isOffset": false, "isSlot": false, - "src": "5214:7:0", + "src": "5214:7:4", "valueSize": 1 } }, { "input": { - "declaration": 212, + "declaration": 1240, "isOffset": false, "isSlot": false, - "src": "5259:5:0", + "src": "5259:5:4", "valueSize": 1 } }, { "success": { - "declaration": 324, + "declaration": 1352, "isOffset": false, "isSlot": false, - "src": "5382:7:0", + "src": "5382:7:4", "valueSize": 1 } }, { "inputSize": { - "declaration": 204, + "declaration": 1232, "isOffset": false, "isSlot": false, - "src": "5277:9:0", + "src": "5277:9:4", "valueSize": 1 } }, { "out": { - "declaration": 321, + "declaration": 1349, "isOffset": false, "isSlot": false, - "src": "5295:3:0", + "src": "5295:3:4", "valueSize": 1 } } @@ -19374,9 +19374,9 @@ "operations": "{\n success := staticcall(sub(gas(), 2000), 8, add(input, 0x20), mul(inputSize, 0x20), out, 0x20)\n switch success\n case 0 { invalid() }\n}" }, "children": [], - "id": 326, + "id": 1354, "name": "InlineAssembly", - "src": "5191:229:0" + "src": "5191:229:4" }, { "children": [ @@ -19408,16 +19408,16 @@ } ], "overloadedDeclarations": [ - 1076, - 1077 + 2134, + 2135 ], - "referencedDeclaration": 1077, + "referencedDeclaration": 2135, "type": "function (bool,string memory) pure", "value": "require" }, - "id": 327, + "id": 1355, "name": "Identifier", - "src": "5429:7:0" + "src": "5429:7:4" }, { "attributes": { @@ -19425,13 +19425,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 324, + "referencedDeclaration": 1352, "type": "bool", "value": "success" }, - "id": 328, + "id": 1356, "name": "Identifier", - "src": "5437:7:0" + "src": "5437:7:4" }, { "attributes": { @@ -19446,23 +19446,23 @@ "type": "literal_string \"pairing-opcode-failed\"", "value": "pairing-opcode-failed" }, - "id": 329, + "id": 1357, "name": "Literal", - "src": "5445:23:0" + "src": "5445:23:4" } ], - "id": 330, + "id": 1358, "name": "FunctionCall", - "src": "5429:40:0" + "src": "5429:40:4" } ], - "id": 331, + "id": 1359, "name": "ExpressionStatement", - "src": "5429:40:0" + "src": "5429:40:4" }, { "attributes": { - "functionReturnParameters": 188 + "functionReturnParameters": 1216 }, "children": [ { @@ -19496,13 +19496,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 321, + "referencedDeclaration": 1349, "type": "uint256[1] memory", "value": "out" }, - "id": 332, + "id": 1360, "name": "Identifier", - "src": "5486:3:0" + "src": "5486:3:4" }, { "attributes": { @@ -19517,14 +19517,14 @@ "type": "int_const 0", "value": "0" }, - "id": 333, + "id": 1361, "name": "Literal", - "src": "5490:1:0" + "src": "5490:1:4" } ], - "id": 334, + "id": 1362, "name": "IndexAccess", - "src": "5486:6:0" + "src": "5486:6:4" }, { "attributes": { @@ -19539,29 +19539,29 @@ "type": "int_const 0", "value": "0" }, - "id": 335, + "id": 1363, "name": "Literal", - "src": "5496:1:0" + "src": "5496:1:4" } ], - "id": 336, + "id": 1364, "name": "BinaryOperation", - "src": "5486:11:0" + "src": "5486:11:4" } ], - "id": 337, + "id": 1365, "name": "Return", - "src": "5479:18:0" + "src": "5479:18:4" } ], - "id": 338, + "id": 1366, "name": "Block", - "src": "4558:946:0" + "src": "4558:946:4" } ], - "id": 339, + "id": 1367, "name": "FunctionDefinition", - "src": "4470:1034:0" + "src": "4470:1034:4" }, { "attributes": { @@ -19573,7 +19573,7 @@ null ], "name": "pairingProd2", - "scope": 577, + "scope": 1605, "stateMutability": "view", "superFunction": null, "visibility": "internal" @@ -19585,7 +19585,7 @@ "attributes": { "constant": false, "name": "a1", - "scope": 402, + "scope": 1430, "stateVariable": false, "storageLocation": "memory", "type": "struct Pairing.G1Point", @@ -19597,23 +19597,23 @@ "attributes": { "contractScope": null, "name": "G1Point", - "referencedDeclaration": 6, + "referencedDeclaration": 1034, "type": "struct Pairing.G1Point" }, - "id": 340, + "id": 1368, "name": "UserDefinedTypeName", - "src": "5593:7:0" + "src": "5593:7:4" } ], - "id": 341, + "id": 1369, "name": "VariableDeclaration", - "src": "5593:17:0" + "src": "5593:17:4" }, { "attributes": { "constant": false, "name": "a2", - "scope": 402, + "scope": 1430, "stateVariable": false, "storageLocation": "memory", "type": "struct Pairing.G2Point", @@ -19625,23 +19625,23 @@ "attributes": { "contractScope": null, "name": "G2Point", - "referencedDeclaration": 15, + "referencedDeclaration": 1043, "type": "struct Pairing.G2Point" }, - "id": 342, + "id": 1370, "name": "UserDefinedTypeName", - "src": "5612:7:0" + "src": "5612:7:4" } ], - "id": 343, + "id": 1371, "name": "VariableDeclaration", - "src": "5612:17:0" + "src": "5612:17:4" }, { "attributes": { "constant": false, "name": "b1", - "scope": 402, + "scope": 1430, "stateVariable": false, "storageLocation": "memory", "type": "struct Pairing.G1Point", @@ -19653,23 +19653,23 @@ "attributes": { "contractScope": null, "name": "G1Point", - "referencedDeclaration": 6, + "referencedDeclaration": 1034, "type": "struct Pairing.G1Point" }, - "id": 344, + "id": 1372, "name": "UserDefinedTypeName", - "src": "5631:7:0" + "src": "5631:7:4" } ], - "id": 345, + "id": 1373, "name": "VariableDeclaration", - "src": "5631:17:0" + "src": "5631:17:4" }, { "attributes": { "constant": false, "name": "b2", - "scope": 402, + "scope": 1430, "stateVariable": false, "storageLocation": "memory", "type": "struct Pairing.G2Point", @@ -19681,22 +19681,22 @@ "attributes": { "contractScope": null, "name": "G2Point", - "referencedDeclaration": 15, + "referencedDeclaration": 1043, "type": "struct Pairing.G2Point" }, - "id": 346, + "id": 1374, "name": "UserDefinedTypeName", - "src": "5650:7:0" + "src": "5650:7:4" } ], - "id": 347, + "id": 1375, "name": "VariableDeclaration", - "src": "5650:17:0" + "src": "5650:17:4" } ], - "id": 348, + "id": 1376, "name": "ParameterList", - "src": "5592:76:0" + "src": "5592:76:4" }, { "children": [ @@ -19704,7 +19704,7 @@ "attributes": { "constant": false, "name": "", - "scope": 402, + "scope": 1430, "stateVariable": false, "storageLocation": "default", "type": "bool", @@ -19717,26 +19717,26 @@ "name": "bool", "type": "bool" }, - "id": 349, + "id": 1377, "name": "ElementaryTypeName", - "src": "5692:4:0" + "src": "5692:4:4" } ], - "id": 350, + "id": 1378, "name": "VariableDeclaration", - "src": "5692:4:0" + "src": "5692:4:4" } ], - "id": 351, + "id": 1379, "name": "ParameterList", - "src": "5691:6:0" + "src": "5691:6:4" }, { "children": [ { "attributes": { "assignments": [ - 355 + 1383 ] }, "children": [ @@ -19744,7 +19744,7 @@ "attributes": { "constant": false, "name": "p1", - "scope": 401, + "scope": 1429, "stateVariable": false, "storageLocation": "memory", "type": "struct Pairing.G1Point[]", @@ -19762,22 +19762,22 @@ "attributes": { "contractScope": null, "name": "G1Point", - "referencedDeclaration": 6, + "referencedDeclaration": 1034, "type": "struct Pairing.G1Point" }, - "id": 353, + "id": 1381, "name": "UserDefinedTypeName", - "src": "5708:7:0" + "src": "5708:7:4" } ], - "id": 354, + "id": 1382, "name": "ArrayTypeName", - "src": "5708:9:0" + "src": "5708:9:4" } ], - "id": 355, + "id": 1383, "name": "VariableDeclaration", - "src": "5708:19:0" + "src": "5708:19:4" }, { "attributes": { @@ -19819,22 +19819,22 @@ "attributes": { "contractScope": null, "name": "G1Point", - "referencedDeclaration": 6, + "referencedDeclaration": 1034, "type": "struct Pairing.G1Point" }, - "id": 356, + "id": 1384, "name": "UserDefinedTypeName", - "src": "5734:7:0" + "src": "5734:7:4" } ], - "id": 357, + "id": 1385, "name": "ArrayTypeName", - "src": "5734:9:0" + "src": "5734:9:4" } ], - "id": 358, + "id": 1386, "name": "NewExpression", - "src": "5730:13:0" + "src": "5730:13:4" }, { "attributes": { @@ -19849,24 +19849,24 @@ "type": "int_const 2", "value": "2" }, - "id": 359, + "id": 1387, "name": "Literal", - "src": "5744:1:0" + "src": "5744:1:4" } ], - "id": 360, + "id": 1388, "name": "FunctionCall", - "src": "5730:16:0" + "src": "5730:16:4" } ], - "id": 361, + "id": 1389, "name": "VariableDeclarationStatement", - "src": "5708:38:0" + "src": "5708:38:4" }, { "attributes": { "assignments": [ - 365 + 1393 ] }, "children": [ @@ -19874,7 +19874,7 @@ "attributes": { "constant": false, "name": "p2", - "scope": 401, + "scope": 1429, "stateVariable": false, "storageLocation": "memory", "type": "struct Pairing.G2Point[]", @@ -19892,22 +19892,22 @@ "attributes": { "contractScope": null, "name": "G2Point", - "referencedDeclaration": 15, + "referencedDeclaration": 1043, "type": "struct Pairing.G2Point" }, - "id": 363, + "id": 1391, "name": "UserDefinedTypeName", - "src": "5756:7:0" + "src": "5756:7:4" } ], - "id": 364, + "id": 1392, "name": "ArrayTypeName", - "src": "5756:9:0" + "src": "5756:9:4" } ], - "id": 365, + "id": 1393, "name": "VariableDeclaration", - "src": "5756:19:0" + "src": "5756:19:4" }, { "attributes": { @@ -19949,22 +19949,22 @@ "attributes": { "contractScope": null, "name": "G2Point", - "referencedDeclaration": 15, + "referencedDeclaration": 1043, "type": "struct Pairing.G2Point" }, - "id": 366, + "id": 1394, "name": "UserDefinedTypeName", - "src": "5782:7:0" + "src": "5782:7:4" } ], - "id": 367, + "id": 1395, "name": "ArrayTypeName", - "src": "5782:9:0" + "src": "5782:9:4" } ], - "id": 368, + "id": 1396, "name": "NewExpression", - "src": "5778:13:0" + "src": "5778:13:4" }, { "attributes": { @@ -19979,19 +19979,19 @@ "type": "int_const 2", "value": "2" }, - "id": 369, + "id": 1397, "name": "Literal", - "src": "5792:1:0" + "src": "5792:1:4" } ], - "id": 370, + "id": 1398, "name": "FunctionCall", - "src": "5778:16:0" + "src": "5778:16:4" } ], - "id": 371, + "id": 1399, "name": "VariableDeclarationStatement", - "src": "5756:38:0" + "src": "5756:38:4" }, { "children": [ @@ -20022,13 +20022,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 355, + "referencedDeclaration": 1383, "type": "struct Pairing.G1Point memory[] memory", "value": "p1" }, - "id": 372, + "id": 1400, "name": "Identifier", - "src": "5804:2:0" + "src": "5804:2:4" }, { "attributes": { @@ -20043,14 +20043,14 @@ "type": "int_const 0", "value": "0" }, - "id": 373, + "id": 1401, "name": "Literal", - "src": "5807:1:0" + "src": "5807:1:4" } ], - "id": 374, + "id": 1402, "name": "IndexAccess", - "src": "5804:5:0" + "src": "5804:5:4" }, { "attributes": { @@ -20058,23 +20058,23 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 341, + "referencedDeclaration": 1369, "type": "struct Pairing.G1Point memory", "value": "a1" }, - "id": 375, + "id": 1403, "name": "Identifier", - "src": "5812:2:0" + "src": "5812:2:4" } ], - "id": 376, + "id": 1404, "name": "Assignment", - "src": "5804:10:0" + "src": "5804:10:4" } ], - "id": 377, + "id": 1405, "name": "ExpressionStatement", - "src": "5804:10:0" + "src": "5804:10:4" }, { "children": [ @@ -20105,13 +20105,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 355, + "referencedDeclaration": 1383, "type": "struct Pairing.G1Point memory[] memory", "value": "p1" }, - "id": 378, + "id": 1406, "name": "Identifier", - "src": "5824:2:0" + "src": "5824:2:4" }, { "attributes": { @@ -20126,14 +20126,14 @@ "type": "int_const 1", "value": "1" }, - "id": 379, + "id": 1407, "name": "Literal", - "src": "5827:1:0" + "src": "5827:1:4" } ], - "id": 380, + "id": 1408, "name": "IndexAccess", - "src": "5824:5:0" + "src": "5824:5:4" }, { "attributes": { @@ -20141,23 +20141,23 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 345, + "referencedDeclaration": 1373, "type": "struct Pairing.G1Point memory", "value": "b1" }, - "id": 381, + "id": 1409, "name": "Identifier", - "src": "5832:2:0" + "src": "5832:2:4" } ], - "id": 382, + "id": 1410, "name": "Assignment", - "src": "5824:10:0" + "src": "5824:10:4" } ], - "id": 383, + "id": 1411, "name": "ExpressionStatement", - "src": "5824:10:0" + "src": "5824:10:4" }, { "children": [ @@ -20188,13 +20188,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 365, + "referencedDeclaration": 1393, "type": "struct Pairing.G2Point memory[] memory", "value": "p2" }, - "id": 384, + "id": 1412, "name": "Identifier", - "src": "5844:2:0" + "src": "5844:2:4" }, { "attributes": { @@ -20209,14 +20209,14 @@ "type": "int_const 0", "value": "0" }, - "id": 385, + "id": 1413, "name": "Literal", - "src": "5847:1:0" + "src": "5847:1:4" } ], - "id": 386, + "id": 1414, "name": "IndexAccess", - "src": "5844:5:0" + "src": "5844:5:4" }, { "attributes": { @@ -20224,23 +20224,23 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 343, + "referencedDeclaration": 1371, "type": "struct Pairing.G2Point memory", "value": "a2" }, - "id": 387, + "id": 1415, "name": "Identifier", - "src": "5852:2:0" + "src": "5852:2:4" } ], - "id": 388, + "id": 1416, "name": "Assignment", - "src": "5844:10:0" + "src": "5844:10:4" } ], - "id": 389, + "id": 1417, "name": "ExpressionStatement", - "src": "5844:10:0" + "src": "5844:10:4" }, { "children": [ @@ -20271,13 +20271,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 365, + "referencedDeclaration": 1393, "type": "struct Pairing.G2Point memory[] memory", "value": "p2" }, - "id": 390, + "id": 1418, "name": "Identifier", - "src": "5864:2:0" + "src": "5864:2:4" }, { "attributes": { @@ -20292,14 +20292,14 @@ "type": "int_const 1", "value": "1" }, - "id": 391, + "id": 1419, "name": "Literal", - "src": "5867:1:0" + "src": "5867:1:4" } ], - "id": 392, + "id": 1420, "name": "IndexAccess", - "src": "5864:5:0" + "src": "5864:5:4" }, { "attributes": { @@ -20307,27 +20307,27 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 347, + "referencedDeclaration": 1375, "type": "struct Pairing.G2Point memory", "value": "b2" }, - "id": 393, + "id": 1421, "name": "Identifier", - "src": "5872:2:0" + "src": "5872:2:4" } ], - "id": 394, + "id": 1422, "name": "Assignment", - "src": "5864:10:0" + "src": "5864:10:4" } ], - "id": 395, + "id": 1423, "name": "ExpressionStatement", - "src": "5864:10:0" + "src": "5864:10:4" }, { "attributes": { - "functionReturnParameters": 351 + "functionReturnParameters": 1379 }, "children": [ { @@ -20349,24 +20349,24 @@ "attributes": { "argumentTypes": [ { - "typeIdentifier": "t_array$_t_struct$_G1Point_$6_memory_$dyn_memory_ptr", + "typeIdentifier": "t_array$_t_struct$_G1Point_$1034_memory_$dyn_memory_ptr", "typeString": "struct Pairing.G1Point memory[] memory" }, { - "typeIdentifier": "t_array$_t_struct$_G2Point_$15_memory_$dyn_memory_ptr", + "typeIdentifier": "t_array$_t_struct$_G2Point_$1043_memory_$dyn_memory_ptr", "typeString": "struct Pairing.G2Point memory[] memory" } ], "overloadedDeclarations": [ null ], - "referencedDeclaration": 339, + "referencedDeclaration": 1367, "type": "function (struct Pairing.G1Point memory[] memory,struct Pairing.G2Point memory[] memory) view returns (bool)", "value": "pairing" }, - "id": 396, + "id": 1424, "name": "Identifier", - "src": "5891:7:0" + "src": "5891:7:4" }, { "attributes": { @@ -20374,13 +20374,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 355, + "referencedDeclaration": 1383, "type": "struct Pairing.G1Point memory[] memory", "value": "p1" }, - "id": 397, + "id": 1425, "name": "Identifier", - "src": "5899:2:0" + "src": "5899:2:4" }, { "attributes": { @@ -20388,33 +20388,33 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 365, + "referencedDeclaration": 1393, "type": "struct Pairing.G2Point memory[] memory", "value": "p2" }, - "id": 398, + "id": 1426, "name": "Identifier", - "src": "5903:2:0" + "src": "5903:2:4" } ], - "id": 399, + "id": 1427, "name": "FunctionCall", - "src": "5891:15:0" + "src": "5891:15:4" } ], - "id": 400, + "id": 1428, "name": "Return", - "src": "5884:22:0" + "src": "5884:22:4" } ], - "id": 401, + "id": 1429, "name": "Block", - "src": "5698:215:0" + "src": "5698:215:4" } ], - "id": 402, + "id": 1430, "name": "FunctionDefinition", - "src": "5571:342:0" + "src": "5571:342:4" }, { "attributes": { @@ -20426,7 +20426,7 @@ null ], "name": "pairingProd3", - "scope": 577, + "scope": 1605, "stateMutability": "view", "superFunction": null, "visibility": "internal" @@ -20438,7 +20438,7 @@ "attributes": { "constant": false, "name": "a1", - "scope": 481, + "scope": 1509, "stateVariable": false, "storageLocation": "memory", "type": "struct Pairing.G1Point", @@ -20450,23 +20450,23 @@ "attributes": { "contractScope": null, "name": "G1Point", - "referencedDeclaration": 6, + "referencedDeclaration": 1034, "type": "struct Pairing.G1Point" }, - "id": 403, + "id": 1431, "name": "UserDefinedTypeName", - "src": "6017:7:0" + "src": "6017:7:4" } ], - "id": 404, + "id": 1432, "name": "VariableDeclaration", - "src": "6017:17:0" + "src": "6017:17:4" }, { "attributes": { "constant": false, "name": "a2", - "scope": 481, + "scope": 1509, "stateVariable": false, "storageLocation": "memory", "type": "struct Pairing.G2Point", @@ -20478,23 +20478,23 @@ "attributes": { "contractScope": null, "name": "G2Point", - "referencedDeclaration": 15, + "referencedDeclaration": 1043, "type": "struct Pairing.G2Point" }, - "id": 405, + "id": 1433, "name": "UserDefinedTypeName", - "src": "6036:7:0" + "src": "6036:7:4" } ], - "id": 406, + "id": 1434, "name": "VariableDeclaration", - "src": "6036:17:0" + "src": "6036:17:4" }, { "attributes": { "constant": false, "name": "b1", - "scope": 481, + "scope": 1509, "stateVariable": false, "storageLocation": "memory", "type": "struct Pairing.G1Point", @@ -20506,23 +20506,23 @@ "attributes": { "contractScope": null, "name": "G1Point", - "referencedDeclaration": 6, + "referencedDeclaration": 1034, "type": "struct Pairing.G1Point" }, - "id": 407, + "id": 1435, "name": "UserDefinedTypeName", - "src": "6067:7:0" + "src": "6067:7:4" } ], - "id": 408, + "id": 1436, "name": "VariableDeclaration", - "src": "6067:17:0" + "src": "6067:17:4" }, { "attributes": { "constant": false, "name": "b2", - "scope": 481, + "scope": 1509, "stateVariable": false, "storageLocation": "memory", "type": "struct Pairing.G2Point", @@ -20534,23 +20534,23 @@ "attributes": { "contractScope": null, "name": "G2Point", - "referencedDeclaration": 15, + "referencedDeclaration": 1043, "type": "struct Pairing.G2Point" }, - "id": 409, + "id": 1437, "name": "UserDefinedTypeName", - "src": "6086:7:0" + "src": "6086:7:4" } ], - "id": 410, + "id": 1438, "name": "VariableDeclaration", - "src": "6086:17:0" + "src": "6086:17:4" }, { "attributes": { "constant": false, "name": "c1", - "scope": 481, + "scope": 1509, "stateVariable": false, "storageLocation": "memory", "type": "struct Pairing.G1Point", @@ -20562,23 +20562,23 @@ "attributes": { "contractScope": null, "name": "G1Point", - "referencedDeclaration": 6, + "referencedDeclaration": 1034, "type": "struct Pairing.G1Point" }, - "id": 411, + "id": 1439, "name": "UserDefinedTypeName", - "src": "6117:7:0" + "src": "6117:7:4" } ], - "id": 412, + "id": 1440, "name": "VariableDeclaration", - "src": "6117:17:0" + "src": "6117:17:4" }, { "attributes": { "constant": false, "name": "c2", - "scope": 481, + "scope": 1509, "stateVariable": false, "storageLocation": "memory", "type": "struct Pairing.G2Point", @@ -20590,22 +20590,22 @@ "attributes": { "contractScope": null, "name": "G2Point", - "referencedDeclaration": 15, + "referencedDeclaration": 1043, "type": "struct Pairing.G2Point" }, - "id": 413, + "id": 1441, "name": "UserDefinedTypeName", - "src": "6136:7:0" + "src": "6136:7:4" } ], - "id": 414, + "id": 1442, "name": "VariableDeclaration", - "src": "6136:17:0" + "src": "6136:17:4" } ], - "id": 415, + "id": 1443, "name": "ParameterList", - "src": "6003:156:0" + "src": "6003:156:4" }, { "children": [ @@ -20613,7 +20613,7 @@ "attributes": { "constant": false, "name": "", - "scope": 481, + "scope": 1509, "stateVariable": false, "storageLocation": "default", "type": "bool", @@ -20626,26 +20626,26 @@ "name": "bool", "type": "bool" }, - "id": 416, + "id": 1444, "name": "ElementaryTypeName", - "src": "6183:4:0" + "src": "6183:4:4" } ], - "id": 417, + "id": 1445, "name": "VariableDeclaration", - "src": "6183:4:0" + "src": "6183:4:4" } ], - "id": 418, + "id": 1446, "name": "ParameterList", - "src": "6182:6:0" + "src": "6182:6:4" }, { "children": [ { "attributes": { "assignments": [ - 422 + 1450 ] }, "children": [ @@ -20653,7 +20653,7 @@ "attributes": { "constant": false, "name": "p1", - "scope": 480, + "scope": 1508, "stateVariable": false, "storageLocation": "memory", "type": "struct Pairing.G1Point[]", @@ -20671,22 +20671,22 @@ "attributes": { "contractScope": null, "name": "G1Point", - "referencedDeclaration": 6, + "referencedDeclaration": 1034, "type": "struct Pairing.G1Point" }, - "id": 420, + "id": 1448, "name": "UserDefinedTypeName", - "src": "6199:7:0" + "src": "6199:7:4" } ], - "id": 421, + "id": 1449, "name": "ArrayTypeName", - "src": "6199:9:0" + "src": "6199:9:4" } ], - "id": 422, + "id": 1450, "name": "VariableDeclaration", - "src": "6199:19:0" + "src": "6199:19:4" }, { "attributes": { @@ -20728,22 +20728,22 @@ "attributes": { "contractScope": null, "name": "G1Point", - "referencedDeclaration": 6, + "referencedDeclaration": 1034, "type": "struct Pairing.G1Point" }, - "id": 423, + "id": 1451, "name": "UserDefinedTypeName", - "src": "6225:7:0" + "src": "6225:7:4" } ], - "id": 424, + "id": 1452, "name": "ArrayTypeName", - "src": "6225:9:0" + "src": "6225:9:4" } ], - "id": 425, + "id": 1453, "name": "NewExpression", - "src": "6221:13:0" + "src": "6221:13:4" }, { "attributes": { @@ -20758,24 +20758,24 @@ "type": "int_const 3", "value": "3" }, - "id": 426, + "id": 1454, "name": "Literal", - "src": "6235:1:0" + "src": "6235:1:4" } ], - "id": 427, + "id": 1455, "name": "FunctionCall", - "src": "6221:16:0" + "src": "6221:16:4" } ], - "id": 428, + "id": 1456, "name": "VariableDeclarationStatement", - "src": "6199:38:0" + "src": "6199:38:4" }, { "attributes": { "assignments": [ - 432 + 1460 ] }, "children": [ @@ -20783,7 +20783,7 @@ "attributes": { "constant": false, "name": "p2", - "scope": 480, + "scope": 1508, "stateVariable": false, "storageLocation": "memory", "type": "struct Pairing.G2Point[]", @@ -20801,22 +20801,22 @@ "attributes": { "contractScope": null, "name": "G2Point", - "referencedDeclaration": 15, + "referencedDeclaration": 1043, "type": "struct Pairing.G2Point" }, - "id": 430, + "id": 1458, "name": "UserDefinedTypeName", - "src": "6247:7:0" + "src": "6247:7:4" } ], - "id": 431, + "id": 1459, "name": "ArrayTypeName", - "src": "6247:9:0" + "src": "6247:9:4" } ], - "id": 432, + "id": 1460, "name": "VariableDeclaration", - "src": "6247:19:0" + "src": "6247:19:4" }, { "attributes": { @@ -20858,22 +20858,22 @@ "attributes": { "contractScope": null, "name": "G2Point", - "referencedDeclaration": 15, + "referencedDeclaration": 1043, "type": "struct Pairing.G2Point" }, - "id": 433, + "id": 1461, "name": "UserDefinedTypeName", - "src": "6273:7:0" + "src": "6273:7:4" } ], - "id": 434, + "id": 1462, "name": "ArrayTypeName", - "src": "6273:9:0" + "src": "6273:9:4" } ], - "id": 435, + "id": 1463, "name": "NewExpression", - "src": "6269:13:0" + "src": "6269:13:4" }, { "attributes": { @@ -20888,19 +20888,19 @@ "type": "int_const 3", "value": "3" }, - "id": 436, + "id": 1464, "name": "Literal", - "src": "6283:1:0" + "src": "6283:1:4" } ], - "id": 437, + "id": 1465, "name": "FunctionCall", - "src": "6269:16:0" + "src": "6269:16:4" } ], - "id": 438, + "id": 1466, "name": "VariableDeclarationStatement", - "src": "6247:38:0" + "src": "6247:38:4" }, { "children": [ @@ -20931,13 +20931,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 422, + "referencedDeclaration": 1450, "type": "struct Pairing.G1Point memory[] memory", "value": "p1" }, - "id": 439, + "id": 1467, "name": "Identifier", - "src": "6295:2:0" + "src": "6295:2:4" }, { "attributes": { @@ -20952,14 +20952,14 @@ "type": "int_const 0", "value": "0" }, - "id": 440, + "id": 1468, "name": "Literal", - "src": "6298:1:0" + "src": "6298:1:4" } ], - "id": 441, + "id": 1469, "name": "IndexAccess", - "src": "6295:5:0" + "src": "6295:5:4" }, { "attributes": { @@ -20967,23 +20967,23 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 404, + "referencedDeclaration": 1432, "type": "struct Pairing.G1Point memory", "value": "a1" }, - "id": 442, + "id": 1470, "name": "Identifier", - "src": "6303:2:0" + "src": "6303:2:4" } ], - "id": 443, + "id": 1471, "name": "Assignment", - "src": "6295:10:0" + "src": "6295:10:4" } ], - "id": 444, + "id": 1472, "name": "ExpressionStatement", - "src": "6295:10:0" + "src": "6295:10:4" }, { "children": [ @@ -21014,13 +21014,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 422, + "referencedDeclaration": 1450, "type": "struct Pairing.G1Point memory[] memory", "value": "p1" }, - "id": 445, + "id": 1473, "name": "Identifier", - "src": "6315:2:0" + "src": "6315:2:4" }, { "attributes": { @@ -21035,14 +21035,14 @@ "type": "int_const 1", "value": "1" }, - "id": 446, + "id": 1474, "name": "Literal", - "src": "6318:1:0" + "src": "6318:1:4" } ], - "id": 447, + "id": 1475, "name": "IndexAccess", - "src": "6315:5:0" + "src": "6315:5:4" }, { "attributes": { @@ -21050,23 +21050,23 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 408, + "referencedDeclaration": 1436, "type": "struct Pairing.G1Point memory", "value": "b1" }, - "id": 448, + "id": 1476, "name": "Identifier", - "src": "6323:2:0" + "src": "6323:2:4" } ], - "id": 449, + "id": 1477, "name": "Assignment", - "src": "6315:10:0" + "src": "6315:10:4" } ], - "id": 450, + "id": 1478, "name": "ExpressionStatement", - "src": "6315:10:0" + "src": "6315:10:4" }, { "children": [ @@ -21097,13 +21097,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 422, + "referencedDeclaration": 1450, "type": "struct Pairing.G1Point memory[] memory", "value": "p1" }, - "id": 451, + "id": 1479, "name": "Identifier", - "src": "6335:2:0" + "src": "6335:2:4" }, { "attributes": { @@ -21118,14 +21118,14 @@ "type": "int_const 2", "value": "2" }, - "id": 452, + "id": 1480, "name": "Literal", - "src": "6338:1:0" + "src": "6338:1:4" } ], - "id": 453, + "id": 1481, "name": "IndexAccess", - "src": "6335:5:0" + "src": "6335:5:4" }, { "attributes": { @@ -21133,23 +21133,23 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 412, + "referencedDeclaration": 1440, "type": "struct Pairing.G1Point memory", "value": "c1" }, - "id": 454, + "id": 1482, "name": "Identifier", - "src": "6343:2:0" + "src": "6343:2:4" } ], - "id": 455, + "id": 1483, "name": "Assignment", - "src": "6335:10:0" + "src": "6335:10:4" } ], - "id": 456, + "id": 1484, "name": "ExpressionStatement", - "src": "6335:10:0" + "src": "6335:10:4" }, { "children": [ @@ -21180,13 +21180,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 432, + "referencedDeclaration": 1460, "type": "struct Pairing.G2Point memory[] memory", "value": "p2" }, - "id": 457, + "id": 1485, "name": "Identifier", - "src": "6355:2:0" + "src": "6355:2:4" }, { "attributes": { @@ -21201,14 +21201,14 @@ "type": "int_const 0", "value": "0" }, - "id": 458, + "id": 1486, "name": "Literal", - "src": "6358:1:0" + "src": "6358:1:4" } ], - "id": 459, + "id": 1487, "name": "IndexAccess", - "src": "6355:5:0" + "src": "6355:5:4" }, { "attributes": { @@ -21216,23 +21216,23 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 406, + "referencedDeclaration": 1434, "type": "struct Pairing.G2Point memory", "value": "a2" }, - "id": 460, + "id": 1488, "name": "Identifier", - "src": "6363:2:0" + "src": "6363:2:4" } ], - "id": 461, + "id": 1489, "name": "Assignment", - "src": "6355:10:0" + "src": "6355:10:4" } ], - "id": 462, + "id": 1490, "name": "ExpressionStatement", - "src": "6355:10:0" + "src": "6355:10:4" }, { "children": [ @@ -21263,13 +21263,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 432, + "referencedDeclaration": 1460, "type": "struct Pairing.G2Point memory[] memory", "value": "p2" }, - "id": 463, + "id": 1491, "name": "Identifier", - "src": "6375:2:0" + "src": "6375:2:4" }, { "attributes": { @@ -21284,14 +21284,14 @@ "type": "int_const 1", "value": "1" }, - "id": 464, + "id": 1492, "name": "Literal", - "src": "6378:1:0" + "src": "6378:1:4" } ], - "id": 465, + "id": 1493, "name": "IndexAccess", - "src": "6375:5:0" + "src": "6375:5:4" }, { "attributes": { @@ -21299,23 +21299,23 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 410, + "referencedDeclaration": 1438, "type": "struct Pairing.G2Point memory", "value": "b2" }, - "id": 466, + "id": 1494, "name": "Identifier", - "src": "6383:2:0" + "src": "6383:2:4" } ], - "id": 467, + "id": 1495, "name": "Assignment", - "src": "6375:10:0" + "src": "6375:10:4" } ], - "id": 468, + "id": 1496, "name": "ExpressionStatement", - "src": "6375:10:0" + "src": "6375:10:4" }, { "children": [ @@ -21346,13 +21346,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 432, + "referencedDeclaration": 1460, "type": "struct Pairing.G2Point memory[] memory", "value": "p2" }, - "id": 469, + "id": 1497, "name": "Identifier", - "src": "6395:2:0" + "src": "6395:2:4" }, { "attributes": { @@ -21367,14 +21367,14 @@ "type": "int_const 2", "value": "2" }, - "id": 470, + "id": 1498, "name": "Literal", - "src": "6398:1:0" + "src": "6398:1:4" } ], - "id": 471, + "id": 1499, "name": "IndexAccess", - "src": "6395:5:0" + "src": "6395:5:4" }, { "attributes": { @@ -21382,27 +21382,27 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 414, + "referencedDeclaration": 1442, "type": "struct Pairing.G2Point memory", "value": "c2" }, - "id": 472, + "id": 1500, "name": "Identifier", - "src": "6403:2:0" + "src": "6403:2:4" } ], - "id": 473, + "id": 1501, "name": "Assignment", - "src": "6395:10:0" + "src": "6395:10:4" } ], - "id": 474, + "id": 1502, "name": "ExpressionStatement", - "src": "6395:10:0" + "src": "6395:10:4" }, { "attributes": { - "functionReturnParameters": 418 + "functionReturnParameters": 1446 }, "children": [ { @@ -21424,24 +21424,24 @@ "attributes": { "argumentTypes": [ { - "typeIdentifier": "t_array$_t_struct$_G1Point_$6_memory_$dyn_memory_ptr", + "typeIdentifier": "t_array$_t_struct$_G1Point_$1034_memory_$dyn_memory_ptr", "typeString": "struct Pairing.G1Point memory[] memory" }, { - "typeIdentifier": "t_array$_t_struct$_G2Point_$15_memory_$dyn_memory_ptr", + "typeIdentifier": "t_array$_t_struct$_G2Point_$1043_memory_$dyn_memory_ptr", "typeString": "struct Pairing.G2Point memory[] memory" } ], "overloadedDeclarations": [ null ], - "referencedDeclaration": 339, + "referencedDeclaration": 1367, "type": "function (struct Pairing.G1Point memory[] memory,struct Pairing.G2Point memory[] memory) view returns (bool)", "value": "pairing" }, - "id": 475, + "id": 1503, "name": "Identifier", - "src": "6422:7:0" + "src": "6422:7:4" }, { "attributes": { @@ -21449,13 +21449,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 422, + "referencedDeclaration": 1450, "type": "struct Pairing.G1Point memory[] memory", "value": "p1" }, - "id": 476, + "id": 1504, "name": "Identifier", - "src": "6430:2:0" + "src": "6430:2:4" }, { "attributes": { @@ -21463,33 +21463,33 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 432, + "referencedDeclaration": 1460, "type": "struct Pairing.G2Point memory[] memory", "value": "p2" }, - "id": 477, + "id": 1505, "name": "Identifier", - "src": "6434:2:0" + "src": "6434:2:4" } ], - "id": 478, + "id": 1506, "name": "FunctionCall", - "src": "6422:15:0" + "src": "6422:15:4" } ], - "id": 479, + "id": 1507, "name": "Return", - "src": "6415:22:0" + "src": "6415:22:4" } ], - "id": 480, + "id": 1508, "name": "Block", - "src": "6189:255:0" + "src": "6189:255:4" } ], - "id": 481, + "id": 1509, "name": "FunctionDefinition", - "src": "5982:462:0" + "src": "5982:462:4" }, { "attributes": { @@ -21501,7 +21501,7 @@ null ], "name": "pairingProd4", - "scope": 577, + "scope": 1605, "stateMutability": "view", "superFunction": null, "visibility": "internal" @@ -21513,7 +21513,7 @@ "attributes": { "constant": false, "name": "a1", - "scope": 576, + "scope": 1604, "stateVariable": false, "storageLocation": "memory", "type": "struct Pairing.G1Point", @@ -21525,23 +21525,23 @@ "attributes": { "contractScope": null, "name": "G1Point", - "referencedDeclaration": 6, + "referencedDeclaration": 1034, "type": "struct Pairing.G1Point" }, - "id": 482, + "id": 1510, "name": "UserDefinedTypeName", - "src": "6547:7:0" + "src": "6547:7:4" } ], - "id": 483, + "id": 1511, "name": "VariableDeclaration", - "src": "6547:17:0" + "src": "6547:17:4" }, { "attributes": { "constant": false, "name": "a2", - "scope": 576, + "scope": 1604, "stateVariable": false, "storageLocation": "memory", "type": "struct Pairing.G2Point", @@ -21553,23 +21553,23 @@ "attributes": { "contractScope": null, "name": "G2Point", - "referencedDeclaration": 15, + "referencedDeclaration": 1043, "type": "struct Pairing.G2Point" }, - "id": 484, + "id": 1512, "name": "UserDefinedTypeName", - "src": "6566:7:0" + "src": "6566:7:4" } ], - "id": 485, + "id": 1513, "name": "VariableDeclaration", - "src": "6566:17:0" + "src": "6566:17:4" }, { "attributes": { "constant": false, "name": "b1", - "scope": 576, + "scope": 1604, "stateVariable": false, "storageLocation": "memory", "type": "struct Pairing.G1Point", @@ -21581,23 +21581,23 @@ "attributes": { "contractScope": null, "name": "G1Point", - "referencedDeclaration": 6, + "referencedDeclaration": 1034, "type": "struct Pairing.G1Point" }, - "id": 486, + "id": 1514, "name": "UserDefinedTypeName", - "src": "6597:7:0" + "src": "6597:7:4" } ], - "id": 487, + "id": 1515, "name": "VariableDeclaration", - "src": "6597:17:0" + "src": "6597:17:4" }, { "attributes": { "constant": false, "name": "b2", - "scope": 576, + "scope": 1604, "stateVariable": false, "storageLocation": "memory", "type": "struct Pairing.G2Point", @@ -21609,23 +21609,23 @@ "attributes": { "contractScope": null, "name": "G2Point", - "referencedDeclaration": 15, + "referencedDeclaration": 1043, "type": "struct Pairing.G2Point" }, - "id": 488, + "id": 1516, "name": "UserDefinedTypeName", - "src": "6616:7:0" + "src": "6616:7:4" } ], - "id": 489, + "id": 1517, "name": "VariableDeclaration", - "src": "6616:17:0" + "src": "6616:17:4" }, { "attributes": { "constant": false, "name": "c1", - "scope": 576, + "scope": 1604, "stateVariable": false, "storageLocation": "memory", "type": "struct Pairing.G1Point", @@ -21637,23 +21637,23 @@ "attributes": { "contractScope": null, "name": "G1Point", - "referencedDeclaration": 6, + "referencedDeclaration": 1034, "type": "struct Pairing.G1Point" }, - "id": 490, + "id": 1518, "name": "UserDefinedTypeName", - "src": "6647:7:0" + "src": "6647:7:4" } ], - "id": 491, + "id": 1519, "name": "VariableDeclaration", - "src": "6647:17:0" + "src": "6647:17:4" }, { "attributes": { "constant": false, "name": "c2", - "scope": 576, + "scope": 1604, "stateVariable": false, "storageLocation": "memory", "type": "struct Pairing.G2Point", @@ -21665,23 +21665,23 @@ "attributes": { "contractScope": null, "name": "G2Point", - "referencedDeclaration": 15, + "referencedDeclaration": 1043, "type": "struct Pairing.G2Point" }, - "id": 492, + "id": 1520, "name": "UserDefinedTypeName", - "src": "6666:7:0" + "src": "6666:7:4" } ], - "id": 493, + "id": 1521, "name": "VariableDeclaration", - "src": "6666:17:0" + "src": "6666:17:4" }, { "attributes": { "constant": false, "name": "d1", - "scope": 576, + "scope": 1604, "stateVariable": false, "storageLocation": "memory", "type": "struct Pairing.G1Point", @@ -21693,23 +21693,23 @@ "attributes": { "contractScope": null, "name": "G1Point", - "referencedDeclaration": 6, + "referencedDeclaration": 1034, "type": "struct Pairing.G1Point" }, - "id": 494, + "id": 1522, "name": "UserDefinedTypeName", - "src": "6697:7:0" + "src": "6697:7:4" } ], - "id": 495, + "id": 1523, "name": "VariableDeclaration", - "src": "6697:17:0" + "src": "6697:17:4" }, { "attributes": { "constant": false, "name": "d2", - "scope": 576, + "scope": 1604, "stateVariable": false, "storageLocation": "memory", "type": "struct Pairing.G2Point", @@ -21721,22 +21721,22 @@ "attributes": { "contractScope": null, "name": "G2Point", - "referencedDeclaration": 15, + "referencedDeclaration": 1043, "type": "struct Pairing.G2Point" }, - "id": 496, + "id": 1524, "name": "UserDefinedTypeName", - "src": "6716:7:0" + "src": "6716:7:4" } ], - "id": 497, + "id": 1525, "name": "VariableDeclaration", - "src": "6716:17:0" + "src": "6716:17:4" } ], - "id": 498, + "id": 1526, "name": "ParameterList", - "src": "6533:206:0" + "src": "6533:206:4" }, { "children": [ @@ -21744,7 +21744,7 @@ "attributes": { "constant": false, "name": "", - "scope": 576, + "scope": 1604, "stateVariable": false, "storageLocation": "default", "type": "bool", @@ -21757,26 +21757,26 @@ "name": "bool", "type": "bool" }, - "id": 499, + "id": 1527, "name": "ElementaryTypeName", - "src": "6763:4:0" + "src": "6763:4:4" } ], - "id": 500, + "id": 1528, "name": "VariableDeclaration", - "src": "6763:4:0" + "src": "6763:4:4" } ], - "id": 501, + "id": 1529, "name": "ParameterList", - "src": "6762:6:0" + "src": "6762:6:4" }, { "children": [ { "attributes": { "assignments": [ - 505 + 1533 ] }, "children": [ @@ -21784,7 +21784,7 @@ "attributes": { "constant": false, "name": "p1", - "scope": 575, + "scope": 1603, "stateVariable": false, "storageLocation": "memory", "type": "struct Pairing.G1Point[]", @@ -21802,22 +21802,22 @@ "attributes": { "contractScope": null, "name": "G1Point", - "referencedDeclaration": 6, + "referencedDeclaration": 1034, "type": "struct Pairing.G1Point" }, - "id": 503, + "id": 1531, "name": "UserDefinedTypeName", - "src": "6779:7:0" + "src": "6779:7:4" } ], - "id": 504, + "id": 1532, "name": "ArrayTypeName", - "src": "6779:9:0" + "src": "6779:9:4" } ], - "id": 505, + "id": 1533, "name": "VariableDeclaration", - "src": "6779:19:0" + "src": "6779:19:4" }, { "attributes": { @@ -21859,22 +21859,22 @@ "attributes": { "contractScope": null, "name": "G1Point", - "referencedDeclaration": 6, + "referencedDeclaration": 1034, "type": "struct Pairing.G1Point" }, - "id": 506, + "id": 1534, "name": "UserDefinedTypeName", - "src": "6805:7:0" + "src": "6805:7:4" } ], - "id": 507, + "id": 1535, "name": "ArrayTypeName", - "src": "6805:9:0" + "src": "6805:9:4" } ], - "id": 508, + "id": 1536, "name": "NewExpression", - "src": "6801:13:0" + "src": "6801:13:4" }, { "attributes": { @@ -21889,24 +21889,24 @@ "type": "int_const 4", "value": "4" }, - "id": 509, + "id": 1537, "name": "Literal", - "src": "6815:1:0" + "src": "6815:1:4" } ], - "id": 510, + "id": 1538, "name": "FunctionCall", - "src": "6801:16:0" + "src": "6801:16:4" } ], - "id": 511, + "id": 1539, "name": "VariableDeclarationStatement", - "src": "6779:38:0" + "src": "6779:38:4" }, { "attributes": { "assignments": [ - 515 + 1543 ] }, "children": [ @@ -21914,7 +21914,7 @@ "attributes": { "constant": false, "name": "p2", - "scope": 575, + "scope": 1603, "stateVariable": false, "storageLocation": "memory", "type": "struct Pairing.G2Point[]", @@ -21932,22 +21932,22 @@ "attributes": { "contractScope": null, "name": "G2Point", - "referencedDeclaration": 15, + "referencedDeclaration": 1043, "type": "struct Pairing.G2Point" }, - "id": 513, + "id": 1541, "name": "UserDefinedTypeName", - "src": "6827:7:0" + "src": "6827:7:4" } ], - "id": 514, + "id": 1542, "name": "ArrayTypeName", - "src": "6827:9:0" + "src": "6827:9:4" } ], - "id": 515, + "id": 1543, "name": "VariableDeclaration", - "src": "6827:19:0" + "src": "6827:19:4" }, { "attributes": { @@ -21989,22 +21989,22 @@ "attributes": { "contractScope": null, "name": "G2Point", - "referencedDeclaration": 15, + "referencedDeclaration": 1043, "type": "struct Pairing.G2Point" }, - "id": 516, + "id": 1544, "name": "UserDefinedTypeName", - "src": "6853:7:0" + "src": "6853:7:4" } ], - "id": 517, + "id": 1545, "name": "ArrayTypeName", - "src": "6853:9:0" + "src": "6853:9:4" } ], - "id": 518, + "id": 1546, "name": "NewExpression", - "src": "6849:13:0" + "src": "6849:13:4" }, { "attributes": { @@ -22019,19 +22019,19 @@ "type": "int_const 4", "value": "4" }, - "id": 519, + "id": 1547, "name": "Literal", - "src": "6863:1:0" + "src": "6863:1:4" } ], - "id": 520, + "id": 1548, "name": "FunctionCall", - "src": "6849:16:0" + "src": "6849:16:4" } ], - "id": 521, + "id": 1549, "name": "VariableDeclarationStatement", - "src": "6827:38:0" + "src": "6827:38:4" }, { "children": [ @@ -22062,13 +22062,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 505, + "referencedDeclaration": 1533, "type": "struct Pairing.G1Point memory[] memory", "value": "p1" }, - "id": 522, + "id": 1550, "name": "Identifier", - "src": "6875:2:0" + "src": "6875:2:4" }, { "attributes": { @@ -22083,14 +22083,14 @@ "type": "int_const 0", "value": "0" }, - "id": 523, + "id": 1551, "name": "Literal", - "src": "6878:1:0" + "src": "6878:1:4" } ], - "id": 524, + "id": 1552, "name": "IndexAccess", - "src": "6875:5:0" + "src": "6875:5:4" }, { "attributes": { @@ -22098,23 +22098,23 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 483, + "referencedDeclaration": 1511, "type": "struct Pairing.G1Point memory", "value": "a1" }, - "id": 525, + "id": 1553, "name": "Identifier", - "src": "6883:2:0" + "src": "6883:2:4" } ], - "id": 526, + "id": 1554, "name": "Assignment", - "src": "6875:10:0" + "src": "6875:10:4" } ], - "id": 527, + "id": 1555, "name": "ExpressionStatement", - "src": "6875:10:0" + "src": "6875:10:4" }, { "children": [ @@ -22145,13 +22145,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 505, + "referencedDeclaration": 1533, "type": "struct Pairing.G1Point memory[] memory", "value": "p1" }, - "id": 528, + "id": 1556, "name": "Identifier", - "src": "6895:2:0" + "src": "6895:2:4" }, { "attributes": { @@ -22166,14 +22166,14 @@ "type": "int_const 1", "value": "1" }, - "id": 529, + "id": 1557, "name": "Literal", - "src": "6898:1:0" + "src": "6898:1:4" } ], - "id": 530, + "id": 1558, "name": "IndexAccess", - "src": "6895:5:0" + "src": "6895:5:4" }, { "attributes": { @@ -22181,23 +22181,23 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 487, + "referencedDeclaration": 1515, "type": "struct Pairing.G1Point memory", "value": "b1" }, - "id": 531, + "id": 1559, "name": "Identifier", - "src": "6903:2:0" + "src": "6903:2:4" } ], - "id": 532, + "id": 1560, "name": "Assignment", - "src": "6895:10:0" + "src": "6895:10:4" } ], - "id": 533, + "id": 1561, "name": "ExpressionStatement", - "src": "6895:10:0" + "src": "6895:10:4" }, { "children": [ @@ -22228,13 +22228,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 505, + "referencedDeclaration": 1533, "type": "struct Pairing.G1Point memory[] memory", "value": "p1" }, - "id": 534, + "id": 1562, "name": "Identifier", - "src": "6915:2:0" + "src": "6915:2:4" }, { "attributes": { @@ -22249,14 +22249,14 @@ "type": "int_const 2", "value": "2" }, - "id": 535, + "id": 1563, "name": "Literal", - "src": "6918:1:0" + "src": "6918:1:4" } ], - "id": 536, + "id": 1564, "name": "IndexAccess", - "src": "6915:5:0" + "src": "6915:5:4" }, { "attributes": { @@ -22264,23 +22264,23 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 491, + "referencedDeclaration": 1519, "type": "struct Pairing.G1Point memory", "value": "c1" }, - "id": 537, + "id": 1565, "name": "Identifier", - "src": "6923:2:0" + "src": "6923:2:4" } ], - "id": 538, + "id": 1566, "name": "Assignment", - "src": "6915:10:0" + "src": "6915:10:4" } ], - "id": 539, + "id": 1567, "name": "ExpressionStatement", - "src": "6915:10:0" + "src": "6915:10:4" }, { "children": [ @@ -22311,13 +22311,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 505, + "referencedDeclaration": 1533, "type": "struct Pairing.G1Point memory[] memory", "value": "p1" }, - "id": 540, + "id": 1568, "name": "Identifier", - "src": "6935:2:0" + "src": "6935:2:4" }, { "attributes": { @@ -22332,14 +22332,14 @@ "type": "int_const 3", "value": "3" }, - "id": 541, + "id": 1569, "name": "Literal", - "src": "6938:1:0" + "src": "6938:1:4" } ], - "id": 542, + "id": 1570, "name": "IndexAccess", - "src": "6935:5:0" + "src": "6935:5:4" }, { "attributes": { @@ -22347,23 +22347,23 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 495, + "referencedDeclaration": 1523, "type": "struct Pairing.G1Point memory", "value": "d1" }, - "id": 543, + "id": 1571, "name": "Identifier", - "src": "6943:2:0" + "src": "6943:2:4" } ], - "id": 544, + "id": 1572, "name": "Assignment", - "src": "6935:10:0" + "src": "6935:10:4" } ], - "id": 545, + "id": 1573, "name": "ExpressionStatement", - "src": "6935:10:0" + "src": "6935:10:4" }, { "children": [ @@ -22394,13 +22394,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 515, + "referencedDeclaration": 1543, "type": "struct Pairing.G2Point memory[] memory", "value": "p2" }, - "id": 546, + "id": 1574, "name": "Identifier", - "src": "6955:2:0" + "src": "6955:2:4" }, { "attributes": { @@ -22415,14 +22415,14 @@ "type": "int_const 0", "value": "0" }, - "id": 547, + "id": 1575, "name": "Literal", - "src": "6958:1:0" + "src": "6958:1:4" } ], - "id": 548, + "id": 1576, "name": "IndexAccess", - "src": "6955:5:0" + "src": "6955:5:4" }, { "attributes": { @@ -22430,23 +22430,23 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 485, + "referencedDeclaration": 1513, "type": "struct Pairing.G2Point memory", "value": "a2" }, - "id": 549, + "id": 1577, "name": "Identifier", - "src": "6963:2:0" + "src": "6963:2:4" } ], - "id": 550, + "id": 1578, "name": "Assignment", - "src": "6955:10:0" + "src": "6955:10:4" } ], - "id": 551, + "id": 1579, "name": "ExpressionStatement", - "src": "6955:10:0" + "src": "6955:10:4" }, { "children": [ @@ -22477,13 +22477,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 515, + "referencedDeclaration": 1543, "type": "struct Pairing.G2Point memory[] memory", "value": "p2" }, - "id": 552, + "id": 1580, "name": "Identifier", - "src": "6975:2:0" + "src": "6975:2:4" }, { "attributes": { @@ -22498,14 +22498,14 @@ "type": "int_const 1", "value": "1" }, - "id": 553, + "id": 1581, "name": "Literal", - "src": "6978:1:0" + "src": "6978:1:4" } ], - "id": 554, + "id": 1582, "name": "IndexAccess", - "src": "6975:5:0" + "src": "6975:5:4" }, { "attributes": { @@ -22513,23 +22513,23 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 489, + "referencedDeclaration": 1517, "type": "struct Pairing.G2Point memory", "value": "b2" }, - "id": 555, + "id": 1583, "name": "Identifier", - "src": "6983:2:0" + "src": "6983:2:4" } ], - "id": 556, + "id": 1584, "name": "Assignment", - "src": "6975:10:0" + "src": "6975:10:4" } ], - "id": 557, + "id": 1585, "name": "ExpressionStatement", - "src": "6975:10:0" + "src": "6975:10:4" }, { "children": [ @@ -22560,13 +22560,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 515, + "referencedDeclaration": 1543, "type": "struct Pairing.G2Point memory[] memory", "value": "p2" }, - "id": 558, + "id": 1586, "name": "Identifier", - "src": "6995:2:0" + "src": "6995:2:4" }, { "attributes": { @@ -22581,14 +22581,14 @@ "type": "int_const 2", "value": "2" }, - "id": 559, + "id": 1587, "name": "Literal", - "src": "6998:1:0" + "src": "6998:1:4" } ], - "id": 560, + "id": 1588, "name": "IndexAccess", - "src": "6995:5:0" + "src": "6995:5:4" }, { "attributes": { @@ -22596,23 +22596,23 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 493, + "referencedDeclaration": 1521, "type": "struct Pairing.G2Point memory", "value": "c2" }, - "id": 561, + "id": 1589, "name": "Identifier", - "src": "7003:2:0" + "src": "7003:2:4" } ], - "id": 562, + "id": 1590, "name": "Assignment", - "src": "6995:10:0" + "src": "6995:10:4" } ], - "id": 563, + "id": 1591, "name": "ExpressionStatement", - "src": "6995:10:0" + "src": "6995:10:4" }, { "children": [ @@ -22643,13 +22643,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 515, + "referencedDeclaration": 1543, "type": "struct Pairing.G2Point memory[] memory", "value": "p2" }, - "id": 564, + "id": 1592, "name": "Identifier", - "src": "7015:2:0" + "src": "7015:2:4" }, { "attributes": { @@ -22664,14 +22664,14 @@ "type": "int_const 3", "value": "3" }, - "id": 565, + "id": 1593, "name": "Literal", - "src": "7018:1:0" + "src": "7018:1:4" } ], - "id": 566, + "id": 1594, "name": "IndexAccess", - "src": "7015:5:0" + "src": "7015:5:4" }, { "attributes": { @@ -22679,27 +22679,27 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 497, + "referencedDeclaration": 1525, "type": "struct Pairing.G2Point memory", "value": "d2" }, - "id": 567, + "id": 1595, "name": "Identifier", - "src": "7023:2:0" + "src": "7023:2:4" } ], - "id": 568, + "id": 1596, "name": "Assignment", - "src": "7015:10:0" + "src": "7015:10:4" } ], - "id": 569, + "id": 1597, "name": "ExpressionStatement", - "src": "7015:10:0" + "src": "7015:10:4" }, { "attributes": { - "functionReturnParameters": 501 + "functionReturnParameters": 1529 }, "children": [ { @@ -22721,24 +22721,24 @@ "attributes": { "argumentTypes": [ { - "typeIdentifier": "t_array$_t_struct$_G1Point_$6_memory_$dyn_memory_ptr", + "typeIdentifier": "t_array$_t_struct$_G1Point_$1034_memory_$dyn_memory_ptr", "typeString": "struct Pairing.G1Point memory[] memory" }, { - "typeIdentifier": "t_array$_t_struct$_G2Point_$15_memory_$dyn_memory_ptr", + "typeIdentifier": "t_array$_t_struct$_G2Point_$1043_memory_$dyn_memory_ptr", "typeString": "struct Pairing.G2Point memory[] memory" } ], "overloadedDeclarations": [ null ], - "referencedDeclaration": 339, + "referencedDeclaration": 1367, "type": "function (struct Pairing.G1Point memory[] memory,struct Pairing.G2Point memory[] memory) view returns (bool)", "value": "pairing" }, - "id": 570, + "id": 1598, "name": "Identifier", - "src": "7042:7:0" + "src": "7042:7:4" }, { "attributes": { @@ -22746,13 +22746,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 505, + "referencedDeclaration": 1533, "type": "struct Pairing.G1Point memory[] memory", "value": "p1" }, - "id": 571, + "id": 1599, "name": "Identifier", - "src": "7050:2:0" + "src": "7050:2:4" }, { "attributes": { @@ -22760,38 +22760,38 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 515, + "referencedDeclaration": 1543, "type": "struct Pairing.G2Point memory[] memory", "value": "p2" }, - "id": 572, + "id": 1600, "name": "Identifier", - "src": "7054:2:0" + "src": "7054:2:4" } ], - "id": 573, + "id": 1601, "name": "FunctionCall", - "src": "7042:15:0" + "src": "7042:15:4" } ], - "id": 574, + "id": 1602, "name": "Return", - "src": "7035:22:0" + "src": "7035:22:4" } ], - "id": 575, + "id": 1603, "name": "Block", - "src": "6769:295:0" + "src": "6769:295:4" } ], - "id": 576, + "id": 1604, "name": "FunctionDefinition", - "src": "6512:552:0" + "src": "6512:552:4" } ], - "id": 577, + "id": 1605, "name": "ContractDefinition", - "src": "1217:5849:0" + "src": "1217:5849:4" }, { "attributes": { @@ -22805,10 +22805,10 @@ "documentation": null, "fullyImplemented": true, "linearizedBaseContracts": [ - 1058 + 2086 ], "name": "Verifier", - "scope": 1059 + "scope": 2087 }, "children": [ { @@ -22820,23 +22820,23 @@ "attributes": { "contractScope": null, "name": "Pairing", - "referencedDeclaration": 577, + "referencedDeclaration": 1605, "type": "library Pairing" }, - "id": 578, + "id": 1606, "name": "UserDefinedTypeName", - "src": "7097:7:0" + "src": "7097:7:4" } ], - "id": 579, + "id": 1607, "name": "UsingForDirective", - "src": "7091:20:0" + "src": "7091:20:4" }, { "attributes": { "canonicalName": "Verifier.VerifyingKey", "name": "VerifyingKey", - "scope": 1058, + "scope": 2086, "visibility": "public" }, "children": [ @@ -22844,7 +22844,7 @@ "attributes": { "constant": false, "name": "alfa1", - "scope": 591, + "scope": 1619, "stateVariable": false, "storageLocation": "default", "type": "struct Pairing.G1Point", @@ -22856,23 +22856,23 @@ "attributes": { "contractScope": null, "name": "Pairing.G1Point", - "referencedDeclaration": 6, + "referencedDeclaration": 1034, "type": "struct Pairing.G1Point" }, - "id": 580, + "id": 1608, "name": "UserDefinedTypeName", - "src": "7146:15:0" + "src": "7146:15:4" } ], - "id": 581, + "id": 1609, "name": "VariableDeclaration", - "src": "7146:21:0" + "src": "7146:21:4" }, { "attributes": { "constant": false, "name": "beta2", - "scope": 591, + "scope": 1619, "stateVariable": false, "storageLocation": "default", "type": "struct Pairing.G2Point", @@ -22884,23 +22884,23 @@ "attributes": { "contractScope": null, "name": "Pairing.G2Point", - "referencedDeclaration": 15, + "referencedDeclaration": 1043, "type": "struct Pairing.G2Point" }, - "id": 582, + "id": 1610, "name": "UserDefinedTypeName", - "src": "7177:15:0" + "src": "7177:15:4" } ], - "id": 583, + "id": 1611, "name": "VariableDeclaration", - "src": "7177:21:0" + "src": "7177:21:4" }, { "attributes": { "constant": false, "name": "gamma2", - "scope": 591, + "scope": 1619, "stateVariable": false, "storageLocation": "default", "type": "struct Pairing.G2Point", @@ -22912,23 +22912,23 @@ "attributes": { "contractScope": null, "name": "Pairing.G2Point", - "referencedDeclaration": 15, + "referencedDeclaration": 1043, "type": "struct Pairing.G2Point" }, - "id": 584, + "id": 1612, "name": "UserDefinedTypeName", - "src": "7208:15:0" + "src": "7208:15:4" } ], - "id": 585, + "id": 1613, "name": "VariableDeclaration", - "src": "7208:22:0" + "src": "7208:22:4" }, { "attributes": { "constant": false, "name": "delta2", - "scope": 591, + "scope": 1619, "stateVariable": false, "storageLocation": "default", "type": "struct Pairing.G2Point", @@ -22940,23 +22940,23 @@ "attributes": { "contractScope": null, "name": "Pairing.G2Point", - "referencedDeclaration": 15, + "referencedDeclaration": 1043, "type": "struct Pairing.G2Point" }, - "id": 586, + "id": 1614, "name": "UserDefinedTypeName", - "src": "7240:15:0" + "src": "7240:15:4" } ], - "id": 587, + "id": 1615, "name": "VariableDeclaration", - "src": "7240:22:0" + "src": "7240:22:4" }, { "attributes": { "constant": false, "name": "IC", - "scope": 591, + "scope": 1619, "stateVariable": false, "storageLocation": "default", "type": "struct Pairing.G1Point[]", @@ -22974,33 +22974,33 @@ "attributes": { "contractScope": null, "name": "Pairing.G1Point", - "referencedDeclaration": 6, + "referencedDeclaration": 1034, "type": "struct Pairing.G1Point" }, - "id": 588, + "id": 1616, "name": "UserDefinedTypeName", - "src": "7272:15:0" + "src": "7272:15:4" } ], - "id": 589, + "id": 1617, "name": "ArrayTypeName", - "src": "7272:17:0" + "src": "7272:17:4" } ], - "id": 590, + "id": 1618, "name": "VariableDeclaration", - "src": "7272:20:0" + "src": "7272:20:4" } ], - "id": 591, + "id": 1619, "name": "StructDefinition", - "src": "7116:183:0" + "src": "7116:183:4" }, { "attributes": { "canonicalName": "Verifier.Proof", "name": "Proof", - "scope": 1058, + "scope": 2086, "visibility": "public" }, "children": [ @@ -23008,7 +23008,7 @@ "attributes": { "constant": false, "name": "A", - "scope": 598, + "scope": 1626, "stateVariable": false, "storageLocation": "default", "type": "struct Pairing.G1Point", @@ -23020,23 +23020,23 @@ "attributes": { "contractScope": null, "name": "Pairing.G1Point", - "referencedDeclaration": 6, + "referencedDeclaration": 1034, "type": "struct Pairing.G1Point" }, - "id": 592, + "id": 1620, "name": "UserDefinedTypeName", - "src": "7327:15:0" + "src": "7327:15:4" } ], - "id": 593, + "id": 1621, "name": "VariableDeclaration", - "src": "7327:17:0" + "src": "7327:17:4" }, { "attributes": { "constant": false, "name": "B", - "scope": 598, + "scope": 1626, "stateVariable": false, "storageLocation": "default", "type": "struct Pairing.G2Point", @@ -23048,23 +23048,23 @@ "attributes": { "contractScope": null, "name": "Pairing.G2Point", - "referencedDeclaration": 15, + "referencedDeclaration": 1043, "type": "struct Pairing.G2Point" }, - "id": 594, + "id": 1622, "name": "UserDefinedTypeName", - "src": "7354:15:0" + "src": "7354:15:4" } ], - "id": 595, + "id": 1623, "name": "VariableDeclaration", - "src": "7354:17:0" + "src": "7354:17:4" }, { "attributes": { "constant": false, "name": "C", - "scope": 598, + "scope": 1626, "stateVariable": false, "storageLocation": "default", "type": "struct Pairing.G1Point", @@ -23076,22 +23076,22 @@ "attributes": { "contractScope": null, "name": "Pairing.G1Point", - "referencedDeclaration": 6, + "referencedDeclaration": 1034, "type": "struct Pairing.G1Point" }, - "id": 596, + "id": 1624, "name": "UserDefinedTypeName", - "src": "7381:15:0" + "src": "7381:15:4" } ], - "id": 597, + "id": 1625, "name": "VariableDeclaration", - "src": "7381:17:0" + "src": "7381:17:4" } ], - "id": 598, + "id": 1626, "name": "StructDefinition", - "src": "7304:101:0" + "src": "7304:101:4" }, { "attributes": { @@ -23103,7 +23103,7 @@ null ], "name": "verifyingKey", - "scope": 1058, + "scope": 2086, "stateMutability": "pure", "superFunction": null, "visibility": "internal" @@ -23116,9 +23116,9 @@ ] }, "children": [], - "id": 599, + "id": 1627, "name": "ParameterList", - "src": "7431:2:0" + "src": "7431:2:4" }, { "children": [ @@ -23126,7 +23126,7 @@ "attributes": { "constant": false, "name": "vk", - "scope": 750, + "scope": 1778, "stateVariable": false, "storageLocation": "memory", "type": "struct Verifier.VerifyingKey", @@ -23138,22 +23138,22 @@ "attributes": { "contractScope": null, "name": "VerifyingKey", - "referencedDeclaration": 591, + "referencedDeclaration": 1619, "type": "struct Verifier.VerifyingKey" }, - "id": 600, + "id": 1628, "name": "UserDefinedTypeName", - "src": "7457:12:0" + "src": "7457:12:4" } ], - "id": 601, + "id": 1629, "name": "VariableDeclaration", - "src": "7457:22:0" + "src": "7457:22:4" } ], - "id": 602, + "id": 1630, "name": "ParameterList", - "src": "7456:24:0" + "src": "7456:24:4" }, { "children": [ @@ -23178,7 +23178,7 @@ "isPure": false, "lValueRequested": true, "member_name": "alfa1", - "referencedDeclaration": 581, + "referencedDeclaration": 1609, "type": "struct Pairing.G1Point memory" }, "children": [ @@ -23188,18 +23188,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 601, + "referencedDeclaration": 1629, "type": "struct Verifier.VerifyingKey memory", "value": "vk" }, - "id": 603, + "id": 1631, "name": "Identifier", - "src": "7491:2:0" + "src": "7491:2:4" } ], - "id": 605, + "id": 1633, "name": "MemberAccess", - "src": "7491:8:0" + "src": "7491:8:4" }, { "attributes": { @@ -23220,12 +23220,12 @@ "attributes": { "argumentTypes": [ { - "typeIdentifier": "t_rational_7151775474753074349603912814830808112682320561937812962620439914534956067331_by_1", - "typeString": "int_const 7151...(68 digits omitted)...7331" + "typeIdentifier": "t_rational_12460490708279467301202778391127510537683948258096796922127174268009168016746_by_1", + "typeString": "int_const 1246...(69 digits omitted)...6746" }, { - "typeIdentifier": "t_rational_682377702098595391270027270967757538763707619874081511951624062082325519674_by_1", - "typeString": "int_const 6823...(67 digits omitted)...9674" + "typeIdentifier": "t_rational_2044073673724661651577421329709273081857081212805872863635504960509226496242_by_1", + "typeString": "int_const 2044...(68 digits omitted)...6242" } ], "isConstant": false, @@ -23233,7 +23233,7 @@ "isPure": false, "lValueRequested": false, "member_name": "G1Point", - "referencedDeclaration": 6, + "referencedDeclaration": 1034, "type": "type(struct Pairing.G1Point storage pointer)" }, "children": [ @@ -23243,67 +23243,67 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 577, + "referencedDeclaration": 1605, "type": "type(library Pairing)", "value": "Pairing" }, - "id": 606, + "id": 1634, "name": "Identifier", - "src": "7502:7:0" + "src": "7502:7:4" } ], - "id": 607, + "id": 1635, "name": "MemberAccess", - "src": "7502:15:0" + "src": "7502:15:4" }, { "attributes": { "argumentTypes": null, - "hexvalue": "37313531373735343734373533303734333439363033393132383134383330383038313132363832333230353631393337383132393632363230343339393134353334393536303637333331", + "hexvalue": "3132343630343930373038323739343637333031323032373738333931313237353130353337363833393438323538303936373936393232313237313734323638303039313638303136373436", "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "subdenomination": null, "token": "number", - "type": "int_const 7151...(68 digits omitted)...7331", - "value": "7151775474753074349603912814830808112682320561937812962620439914534956067331" + "type": "int_const 1246...(69 digits omitted)...6746", + "value": "12460490708279467301202778391127510537683948258096796922127174268009168016746" }, - "id": 608, + "id": 1636, "name": "Literal", - "src": "7518:76:0" + "src": "7518:77:4" }, { "attributes": { "argumentTypes": null, - "hexvalue": "363832333737373032303938353935333931323730303237323730393637373537353338373633373037363139383734303831353131393531363234303632303832333235353139363734", + "hexvalue": "32303434303733363733373234363631363531353737343231333239373039323733303831383537303831323132383035383732383633363335353034393630353039323236343936323432", "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "subdenomination": null, "token": "number", - "type": "int_const 6823...(67 digits omitted)...9674", - "value": "682377702098595391270027270967757538763707619874081511951624062082325519674" + "type": "int_const 2044...(68 digits omitted)...6242", + "value": "2044073673724661651577421329709273081857081212805872863635504960509226496242" }, - "id": 609, + "id": 1637, "name": "Literal", - "src": "7595:75:0" + "src": "7596:76:4" } ], - "id": 610, + "id": 1638, "name": "FunctionCall", - "src": "7502:169:0" + "src": "7502:171:4" } ], - "id": 611, + "id": 1639, "name": "Assignment", - "src": "7491:180:0" + "src": "7491:182:4" } ], - "id": 612, + "id": 1640, "name": "ExpressionStatement", - "src": "7491:180:0" + "src": "7491:182:4" }, { "children": [ @@ -23326,7 +23326,7 @@ "isPure": false, "lValueRequested": true, "member_name": "beta2", - "referencedDeclaration": 583, + "referencedDeclaration": 1611, "type": "struct Pairing.G2Point memory" }, "children": [ @@ -23336,18 +23336,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 601, + "referencedDeclaration": 1629, "type": "struct Verifier.VerifyingKey memory", "value": "vk" }, - "id": 613, + "id": 1641, "name": "Identifier", - "src": "7681:2:0" + "src": "7683:2:4" } ], - "id": 615, + "id": 1643, "name": "MemberAccess", - "src": "7681:8:0" + "src": "7683:8:4" }, { "attributes": { @@ -23381,7 +23381,7 @@ "isPure": false, "lValueRequested": false, "member_name": "G2Point", - "referencedDeclaration": 15, + "referencedDeclaration": 1043, "type": "type(struct Pairing.G2Point storage pointer)" }, "children": [ @@ -23391,18 +23391,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 577, + "referencedDeclaration": 1605, "type": "type(library Pairing)", "value": "Pairing" }, - "id": 616, + "id": 1644, "name": "Identifier", - "src": "7692:7:0" + "src": "7694:7:4" } ], - "id": 617, + "id": 1645, "name": "MemberAccess", - "src": "7692:15:0" + "src": "7694:15:4" }, { "attributes": { @@ -23418,41 +23418,41 @@ { "attributes": { "argumentTypes": null, - "hexvalue": "3230343734323732343536313130313932343936343930383235373630343836353434313039333537313234373231353331343435383733393339313435333133343333373333383234323230", + "hexvalue": "3136303837343930313933383736313631363337343438303435373034383837393233333934303730373439333031373239343031303432353238323037373830333037333533313438373534", "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "subdenomination": null, "token": "number", - "type": "int_const 2047...(69 digits omitted)...4220", - "value": "20474272456110192496490825760486544109357124721531445873939145313433733824220" + "type": "int_const 1608...(69 digits omitted)...8754", + "value": "16087490193876161637448045704887923394070749301729401042528207780307353148754" }, - "id": 618, + "id": 1646, "name": "Literal", - "src": "7709:77:0" + "src": "7711:77:4" }, { "attributes": { "argumentTypes": null, - "hexvalue": "3133323532383838383936303835353632373734383637363735323239313134373837383931363331363433373730343234343030333234323436323437303736323239333836303439353031", + "hexvalue": "34303437333135353438323330373136363730373932373131333634313439343830363238303436353434363338373339343331393436313130383337343130343033393232393533333032", "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "subdenomination": null, "token": "number", - "type": "int_const 1325...(69 digits omitted)...9501", - "value": "13252888896085562774867675229114787891631643770424400324246247076229386049501" + "type": "int_const 4047...(68 digits omitted)...3302", + "value": "4047315548230716670792711364149480628046544638739431946110837410403922953302" }, - "id": 619, + "id": 1647, "name": "Literal", - "src": "7787:77:0" + "src": "7789:76:4" } ], - "id": 620, + "id": 1648, "name": "TupleExpression", - "src": "7708:157:0" + "src": "7710:156:4" }, { "attributes": { @@ -23468,56 +23468,56 @@ { "attributes": { "argumentTypes": null, - "hexvalue": "3134373834333739363130303334363334313837323034343233373138333536363933303930303731363839333736363838353834363234323830323931303137313634333739303036323333", + "hexvalue": "3134323633313537353839393235353033303235353238373932353232343434313030303538373731343134363933323733393435313439303332383839393230373735353938323431353138", "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "subdenomination": null, "token": "number", - "type": "int_const 1478...(69 digits omitted)...6233", - "value": "14784379610034634187204423718356693090071689376688584624280291017164379006233" + "type": "int_const 1426...(69 digits omitted)...1518", + "value": "14263157589925503025528792522444100058771414693273945149032889920775598241518" }, - "id": 621, + "id": 1649, "name": "Literal", - "src": "7868:77:0" + "src": "7869:77:4" }, { "attributes": { "argumentTypes": null, - "hexvalue": "3133303436353931323232343534333035383837313336373135313937323733373539333931353334323836303635383631343634343637393436303631393933363833383637323536343334", + "hexvalue": "32343033303839383232303531383538363434393835383038313639343634373537333735323530333032373535353932393934303039323934313130323337363136353532353935373538", "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "subdenomination": null, "token": "number", - "type": "int_const 1304...(69 digits omitted)...6434", - "value": "13046591222454305887136715197273759391534286065861464467946061993683867256434" + "type": "int_const 2403...(68 digits omitted)...5758", + "value": "2403089822051858644985808169464757375250302755592994009294110237616552595758" }, - "id": 622, + "id": 1650, "name": "Literal", - "src": "7946:77:0" + "src": "7947:76:4" } ], - "id": 623, + "id": 1651, "name": "TupleExpression", - "src": "7867:157:0" + "src": "7868:156:4" } ], - "id": 624, + "id": 1652, "name": "FunctionCall", - "src": "7692:333:0" + "src": "7694:331:4" } ], - "id": 625, + "id": 1653, "name": "Assignment", - "src": "7681:344:0" + "src": "7683:342:4" } ], - "id": 626, + "id": 1654, "name": "ExpressionStatement", - "src": "7681:344:0" + "src": "7683:342:4" }, { "children": [ @@ -23540,7 +23540,7 @@ "isPure": false, "lValueRequested": true, "member_name": "gamma2", - "referencedDeclaration": 585, + "referencedDeclaration": 1613, "type": "struct Pairing.G2Point memory" }, "children": [ @@ -23550,18 +23550,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 601, + "referencedDeclaration": 1629, "type": "struct Verifier.VerifyingKey memory", "value": "vk" }, - "id": 627, + "id": 1655, "name": "Identifier", - "src": "8035:2:0" + "src": "8035:2:4" } ], - "id": 629, + "id": 1657, "name": "MemberAccess", - "src": "8035:9:0" + "src": "8035:9:4" }, { "attributes": { @@ -23595,7 +23595,7 @@ "isPure": false, "lValueRequested": false, "member_name": "G2Point", - "referencedDeclaration": 15, + "referencedDeclaration": 1043, "type": "type(struct Pairing.G2Point storage pointer)" }, "children": [ @@ -23605,18 +23605,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 577, + "referencedDeclaration": 1605, "type": "type(library Pairing)", "value": "Pairing" }, - "id": 630, + "id": 1658, "name": "Identifier", - "src": "8047:7:0" + "src": "8047:7:4" } ], - "id": 631, + "id": 1659, "name": "MemberAccess", - "src": "8047:15:0" + "src": "8047:15:4" }, { "attributes": { @@ -23632,41 +23632,41 @@ { "attributes": { "argumentTypes": null, - "hexvalue": "3231303432373935333335333631343335393232333334393130393332363032363033323739323834303338353139383439333238383234313632313138373839343936323039323430363432", + "hexvalue": "3138313233323736333034313237313630343338333933383031303838373137333138373831313938313332393631333938373933373630383132373439323537313836303633303134333337", "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "subdenomination": null, "token": "number", - "type": "int_const 2104...(69 digits omitted)...0642", - "value": "21042795335361435922334910932602603279284038519849328824162118789496209240642" + "type": "int_const 1812...(69 digits omitted)...4337", + "value": "18123276304127160438393801088717318781198132961398793760812749257186063014337" }, - "id": 632, + "id": 1660, "name": "Literal", - "src": "8064:77:0" + "src": "8064:77:4" }, { "attributes": { "argumentTypes": null, - "hexvalue": "3139393038323532333531353437393538353637353439363939363230303230383531313638393636303738393831313230393232313030313838393031393335343238323334333335323434", + "hexvalue": "3137363037343233313035333133333335353235343332383639363637363739333532363234393234303636353935373537303332373137373832333939383232323537303230353033313337", "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "subdenomination": null, "token": "number", - "type": "int_const 1990...(69 digits omitted)...5244", - "value": "19908252351547958567549699620020851168966078981120922100188901935428234335244" + "type": "int_const 1760...(69 digits omitted)...3137", + "value": "17607423105313335525432869667679352624924066595757032717782399822257020503137" }, - "id": 633, + "id": 1661, "name": "Literal", - "src": "8142:77:0" + "src": "8142:77:4" } ], - "id": 634, + "id": 1662, "name": "TupleExpression", - "src": "8063:157:0" + "src": "8063:157:4" }, { "attributes": { @@ -23682,56 +23682,56 @@ { "attributes": { "argumentTypes": null, - "hexvalue": "3132333735333538323031393239363739393430303535303935313531343639383231383739393838303838393637383938343732353435343335323138363834323033343231333738353131", + "hexvalue": "3131303235353831333239363530303437363531363739373537303836333838373234313637343735323139343036393133313134323730343938343330383838343833353236303130363834", "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "subdenomination": null, "token": "number", - "type": "int_const 1237...(69 digits omitted)...8511", - "value": "12375358201929679940055095151469821879988088967898472545435218684203421378511" + "type": "int_const 1102...(69 digits omitted)...0684", + "value": "11025581329650047651679757086388724167475219406913114270498430888483526010684" }, - "id": 635, + "id": 1663, "name": "Literal", - "src": "8223:77:0" + "src": "8223:77:4" }, { "attributes": { "argumentTypes": null, - "hexvalue": "3132323233363934373138363731353631393038333035343236363234343435373435343937383930303935363433363839313630303330343731323338393636303533343639313430343735", + "hexvalue": "3137323233303432313133303632303330353536323738383136363934363631393730333331363937323334393232363936303132303133313737313934373233353439353238343734323031", "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "subdenomination": null, "token": "number", - "type": "int_const 1222...(69 digits omitted)...0475", - "value": "12223694718671561908305426624445745497890095643689160030471238966053469140475" + "type": "int_const 1722...(69 digits omitted)...4201", + "value": "17223042113062030556278816694661970331697234922696012013177194723549528474201" }, - "id": 636, + "id": 1664, "name": "Literal", - "src": "8301:77:0" + "src": "8301:77:4" } ], - "id": 637, + "id": 1665, "name": "TupleExpression", - "src": "8222:157:0" + "src": "8222:157:4" } ], - "id": 638, + "id": 1666, "name": "FunctionCall", - "src": "8047:333:0" + "src": "8047:333:4" } ], - "id": 639, + "id": 1667, "name": "Assignment", - "src": "8035:345:0" + "src": "8035:345:4" } ], - "id": 640, + "id": 1668, "name": "ExpressionStatement", - "src": "8035:345:0" + "src": "8035:345:4" }, { "children": [ @@ -23754,7 +23754,7 @@ "isPure": false, "lValueRequested": true, "member_name": "delta2", - "referencedDeclaration": 587, + "referencedDeclaration": 1615, "type": "struct Pairing.G2Point memory" }, "children": [ @@ -23764,18 +23764,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 601, + "referencedDeclaration": 1629, "type": "struct Verifier.VerifyingKey memory", "value": "vk" }, - "id": 641, + "id": 1669, "name": "Identifier", - "src": "8390:2:0" + "src": "8390:2:4" } ], - "id": 643, + "id": 1671, "name": "MemberAccess", - "src": "8390:9:0" + "src": "8390:9:4" }, { "attributes": { @@ -23809,7 +23809,7 @@ "isPure": false, "lValueRequested": false, "member_name": "G2Point", - "referencedDeclaration": 15, + "referencedDeclaration": 1043, "type": "type(struct Pairing.G2Point storage pointer)" }, "children": [ @@ -23819,18 +23819,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 577, + "referencedDeclaration": 1605, "type": "type(library Pairing)", "value": "Pairing" }, - "id": 644, + "id": 1672, "name": "Identifier", - "src": "8402:7:0" + "src": "8402:7:4" } ], - "id": 645, + "id": 1673, "name": "MemberAccess", - "src": "8402:15:0" + "src": "8402:15:4" }, { "attributes": { @@ -23846,41 +23846,41 @@ { "attributes": { "argumentTypes": null, - "hexvalue": "33383836343431383434333033353433373831313234373037313534383530353734303932363034303130353836333239363931363330373635353637313033373639343132353137393331", + "hexvalue": "36303337363233343438353132313638393837323630353636323031363838313232323435373931333731353235303238303938353035393532323539313634343331383437373735343931", "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "subdenomination": null, "token": "number", - "type": "int_const 3886...(68 digits omitted)...7931", - "value": "3886441844303543781124707154850574092604010586329691630765567103769412517931" + "type": "int_const 6037...(68 digits omitted)...5491", + "value": "6037623448512168987260566201688122245791371525028098505952259164431847775491" }, - "id": 646, + "id": 1674, "name": "Literal", - "src": "8419:76:0" + "src": "8419:76:4" }, { "attributes": { "argumentTypes": null, - "hexvalue": "32363332373534363539393334353537373535353531393539383234363534353430323539393435363633363432363339333632333039373337383233323838333739303737383034333332", + "hexvalue": "343538333336353735343333393938353036303136343538303137323138313131383632383739313836313339333034363534363036333831333732353833393134343436393539363137", "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "subdenomination": null, "token": "number", - "type": "int_const 2632...(68 digits omitted)...4332", - "value": "2632754659934557755551959824654540259945663642639362309737823288379077804332" + "type": "int_const 4583...(67 digits omitted)...9617", + "value": "458336575433998506016458017218111862879186139304654606381372583914446959617" }, - "id": 647, + "id": 1675, "name": "Literal", - "src": "8496:76:0" + "src": "8496:75:4" } ], - "id": 648, + "id": 1676, "name": "TupleExpression", - "src": "8418:155:0" + "src": "8418:154:4" }, { "attributes": { @@ -23896,56 +23896,56 @@ { "attributes": { "argumentTypes": null, - "hexvalue": "38393931353039363335383036303539323231393035303038373737353937373934333339373930363730303630313733323538303839343433393039323738393832333936343930353737", + "hexvalue": "3135303734373437333331343536383439313231303431343737393938303638373935333431333536353034313634353534333632393232383835383632323839303237393430393030343830", "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "subdenomination": null, "token": "number", - "type": "int_const 8991...(68 digits omitted)...0577", - "value": "8991509635806059221905008777597794339790670060173258089443909278982396490577" + "type": "int_const 1507...(69 digits omitted)...0480", + "value": "15074747331456849121041477998068795341356504164554362922885862289027940900480" }, - "id": 649, + "id": 1677, "name": "Literal", - "src": "8576:76:0" + "src": "8575:77:4" }, { "attributes": { "argumentTypes": null, - "hexvalue": "34363931313731303731393937393139373937313332303237323031383333303733303638353134393134353032333335363439393937353131383330363133393239313236363630313238", + "hexvalue": "34353531373137333338363135373631373236383834353535373239383135373337323430393437323334323632303338363737393835393536383434313839323430393038363935363536", "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "subdenomination": null, "token": "number", - "type": "int_const 4691...(68 digits omitted)...0128", - "value": "4691171071997919797132027201833073068514914502335649997511830613929126660128" + "type": "int_const 4551...(68 digits omitted)...5656", + "value": "4551717338615761726884555729815737240947234262038677985956844189240908695656" }, - "id": 650, + "id": 1678, "name": "Literal", - "src": "8653:76:0" + "src": "8653:76:4" } ], - "id": 651, + "id": 1679, "name": "TupleExpression", - "src": "8575:155:0" + "src": "8574:156:4" } ], - "id": 652, + "id": 1680, "name": "FunctionCall", - "src": "8402:329:0" + "src": "8402:329:4" } ], - "id": 653, + "id": 1681, "name": "Assignment", - "src": "8390:341:0" + "src": "8390:341:4" } ], - "id": 654, + "id": 1682, "name": "ExpressionStatement", - "src": "8390:341:0" + "src": "8390:341:4" }, { "children": [ @@ -23968,7 +23968,7 @@ "isPure": false, "lValueRequested": true, "member_name": "IC", - "referencedDeclaration": 590, + "referencedDeclaration": 1618, "type": "struct Pairing.G1Point memory[] memory" }, "children": [ @@ -23978,18 +23978,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 601, + "referencedDeclaration": 1629, "type": "struct Verifier.VerifyingKey memory", "value": "vk" }, - "id": 655, + "id": 1683, "name": "Identifier", - "src": "8741:2:0" + "src": "8741:2:4" } ], - "id": 657, + "id": 1685, "name": "MemberAccess", - "src": "8741:5:0" + "src": "8741:5:4" }, { "attributes": { @@ -24031,22 +24031,22 @@ "attributes": { "contractScope": null, "name": "Pairing.G1Point", - "referencedDeclaration": 6, + "referencedDeclaration": 1034, "type": "struct Pairing.G1Point" }, - "id": 658, + "id": 1686, "name": "UserDefinedTypeName", - "src": "8753:15:0" + "src": "8753:15:4" } ], - "id": 659, + "id": 1687, "name": "ArrayTypeName", - "src": "8753:17:0" + "src": "8753:17:4" } ], - "id": 660, + "id": 1688, "name": "NewExpression", - "src": "8749:21:0" + "src": "8749:21:4" }, { "attributes": { @@ -24061,24 +24061,24 @@ "type": "int_const 7", "value": "7" }, - "id": 661, + "id": 1689, "name": "Literal", - "src": "8771:1:0" + "src": "8771:1:4" } ], - "id": 662, + "id": 1690, "name": "FunctionCall", - "src": "8749:24:0" + "src": "8749:24:4" } ], - "id": 663, + "id": 1691, "name": "Assignment", - "src": "8741:32:0" + "src": "8741:32:4" } ], - "id": 664, + "id": 1692, "name": "ExpressionStatement", - "src": "8741:32:0" + "src": "8741:32:4" }, { "children": [ @@ -24111,7 +24111,7 @@ "isPure": false, "lValueRequested": false, "member_name": "IC", - "referencedDeclaration": 590, + "referencedDeclaration": 1618, "type": "struct Pairing.G1Point memory[] memory" }, "children": [ @@ -24121,18 +24121,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 601, + "referencedDeclaration": 1629, "type": "struct Verifier.VerifyingKey memory", "value": "vk" }, - "id": 665, + "id": 1693, "name": "Identifier", - "src": "8783:2:0" + "src": "8783:2:4" } ], - "id": 668, + "id": 1696, "name": "MemberAccess", - "src": "8783:5:0" + "src": "8783:5:4" }, { "attributes": { @@ -24147,14 +24147,14 @@ "type": "int_const 0", "value": "0" }, - "id": 667, + "id": 1695, "name": "Literal", - "src": "8789:1:0" + "src": "8789:1:4" } ], - "id": 669, + "id": 1697, "name": "IndexAccess", - "src": "8783:8:0" + "src": "8783:8:4" }, { "attributes": { @@ -24175,12 +24175,12 @@ "attributes": { "argumentTypes": [ { - "typeIdentifier": "t_rational_15493342410434936755631579473464409083923770306563815758480953489390186887772_by_1", - "typeString": "int_const 1549...(69 digits omitted)...7772" + "typeIdentifier": "t_rational_3280151354857701104805815107342927006881561188181486049350149056802788902277_by_1", + "typeString": "int_const 3280...(68 digits omitted)...2277" }, { - "typeIdentifier": "t_rational_7753995649714900666208266146509870606782015660111458217253018284907299910898_by_1", - "typeString": "int_const 7753...(68 digits omitted)...0898" + "typeIdentifier": "t_rational_4096205864284246892786942491620896521544938058951378408773174891322097316913_by_1", + "typeString": "int_const 4096...(68 digits omitted)...6913" } ], "isConstant": false, @@ -24188,7 +24188,7 @@ "isPure": false, "lValueRequested": false, "member_name": "G1Point", - "referencedDeclaration": 6, + "referencedDeclaration": 1034, "type": "type(struct Pairing.G1Point storage pointer)" }, "children": [ @@ -24198,67 +24198,67 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 577, + "referencedDeclaration": 1605, "type": "type(library Pairing)", "value": "Pairing" }, - "id": 670, + "id": 1698, "name": "Identifier", - "src": "8794:7:0" + "src": "8794:7:4" } ], - "id": 671, + "id": 1699, "name": "MemberAccess", - "src": "8794:15:0" + "src": "8794:15:4" }, { "attributes": { "argumentTypes": null, - "hexvalue": "3135343933333432343130343334393336373535363331353739343733343634343039303833393233373730333036353633383135373538343830393533343839333930313836383837373732", + "hexvalue": "33323830313531333534383537373031313034383035383135313037333432393237303036383831353631313838313831343836303439333530313439303536383032373838393032323737", "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "subdenomination": null, "token": "number", - "type": "int_const 1549...(69 digits omitted)...7772", - "value": "15493342410434936755631579473464409083923770306563815758480953489390186887772" + "type": "int_const 3280...(68 digits omitted)...2277", + "value": "3280151354857701104805815107342927006881561188181486049350149056802788902277" }, - "id": 672, + "id": 1700, "name": "Literal", - "src": "8810:77:0" + "src": "8810:76:4" }, { "attributes": { "argumentTypes": null, - "hexvalue": "37373533393935363439373134393030363636323038323636313436353039383730363036373832303135363630313131343538323137323533303138323834393037323939393130383938", + "hexvalue": "34303936323035383634323834323436383932373836393432343931363230383936353231353434393338303538393531333738343038373733313734383931333232303937333136393133", "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "subdenomination": null, "token": "number", - "type": "int_const 7753...(68 digits omitted)...0898", - "value": "7753995649714900666208266146509870606782015660111458217253018284907299910898" + "type": "int_const 4096...(68 digits omitted)...6913", + "value": "4096205864284246892786942491620896521544938058951378408773174891322097316913" }, - "id": 673, + "id": 1701, "name": "Literal", - "src": "8888:76:0" + "src": "8887:76:4" } ], - "id": 674, + "id": 1702, "name": "FunctionCall", - "src": "8794:171:0" + "src": "8794:170:4" } ], - "id": 675, + "id": 1703, "name": "Assignment", - "src": "8783:182:0" + "src": "8783:181:4" } ], - "id": 676, + "id": 1704, "name": "ExpressionStatement", - "src": "8783:182:0" + "src": "8783:181:4" }, { "children": [ @@ -24291,7 +24291,7 @@ "isPure": false, "lValueRequested": false, "member_name": "IC", - "referencedDeclaration": 590, + "referencedDeclaration": 1618, "type": "struct Pairing.G1Point memory[] memory" }, "children": [ @@ -24301,18 +24301,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 601, + "referencedDeclaration": 1629, "type": "struct Verifier.VerifyingKey memory", "value": "vk" }, - "id": 677, + "id": 1705, "name": "Identifier", - "src": "8975:2:0" + "src": "8974:2:4" } ], - "id": 680, + "id": 1708, "name": "MemberAccess", - "src": "8975:5:0" + "src": "8974:5:4" }, { "attributes": { @@ -24327,14 +24327,14 @@ "type": "int_const 1", "value": "1" }, - "id": 679, + "id": 1707, "name": "Literal", - "src": "8981:1:0" + "src": "8980:1:4" } ], - "id": 681, + "id": 1709, "name": "IndexAccess", - "src": "8975:8:0" + "src": "8974:8:4" }, { "attributes": { @@ -24355,12 +24355,12 @@ "attributes": { "argumentTypes": [ { - "typeIdentifier": "t_rational_19296011005264714033718351493537172463570687861720373272007918735071429075746_by_1", - "typeString": "int_const 1929...(69 digits omitted)...5746" + "typeIdentifier": "t_rational_886075252733300330869950498066252804027245332188737089899561929180698930798_by_1", + "typeString": "int_const 8860...(67 digits omitted)...0798" }, { - "typeIdentifier": "t_rational_16204599863540013761774674626905638065591212224511845646247942294147714652783_by_1", - "typeString": "int_const 1620...(69 digits omitted)...2783" + "typeIdentifier": "t_rational_15570234229151758134113005312914035073446975470656183090215346868677091213005_by_1", + "typeString": "int_const 1557...(69 digits omitted)...3005" } ], "isConstant": false, @@ -24368,7 +24368,7 @@ "isPure": false, "lValueRequested": false, "member_name": "G1Point", - "referencedDeclaration": 6, + "referencedDeclaration": 1034, "type": "type(struct Pairing.G1Point storage pointer)" }, "children": [ @@ -24378,67 +24378,67 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 577, + "referencedDeclaration": 1605, "type": "type(library Pairing)", "value": "Pairing" }, - "id": 682, + "id": 1710, "name": "Identifier", - "src": "8986:7:0" + "src": "8985:7:4" } ], - "id": 683, + "id": 1711, "name": "MemberAccess", - "src": "8986:15:0" + "src": "8985:15:4" }, { "attributes": { "argumentTypes": null, - "hexvalue": "3139323936303131303035323634373134303333373138333531343933353337313732343633353730363837383631373230333733323732303037393138373335303731343239303735373436", + "hexvalue": "383836303735323532373333333030333330383639393530343938303636323532383034303237323435333332313838373337303839383939353631393239313830363938393330373938", "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "subdenomination": null, "token": "number", - "type": "int_const 1929...(69 digits omitted)...5746", - "value": "19296011005264714033718351493537172463570687861720373272007918735071429075746" + "type": "int_const 8860...(67 digits omitted)...0798", + "value": "886075252733300330869950498066252804027245332188737089899561929180698930798" }, - "id": 684, + "id": 1712, "name": "Literal", - "src": "9002:77:0" + "src": "9001:75:4" }, { "attributes": { "argumentTypes": null, - "hexvalue": "3136323034353939383633353430303133373631373734363734363236393035363338303635353931323132323234353131383435363436323437393432323934313437373134363532373833", + "hexvalue": "3135353730323334323239313531373538313334313133303035333132393134303335303733343436393735343730363536313833303930323135333436383638363737303931323133303035", "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "subdenomination": null, "token": "number", - "type": "int_const 1620...(69 digits omitted)...2783", - "value": "16204599863540013761774674626905638065591212224511845646247942294147714652783" + "type": "int_const 1557...(69 digits omitted)...3005", + "value": "15570234229151758134113005312914035073446975470656183090215346868677091213005" }, - "id": 685, + "id": 1713, "name": "Literal", - "src": "9080:77:0" + "src": "9077:77:4" } ], - "id": 686, + "id": 1714, "name": "FunctionCall", - "src": "8986:172:0" + "src": "8985:170:4" } ], - "id": 687, + "id": 1715, "name": "Assignment", - "src": "8975:183:0" + "src": "8974:181:4" } ], - "id": 688, + "id": 1716, "name": "ExpressionStatement", - "src": "8975:183:0" + "src": "8974:181:4" }, { "children": [ @@ -24471,7 +24471,7 @@ "isPure": false, "lValueRequested": false, "member_name": "IC", - "referencedDeclaration": 590, + "referencedDeclaration": 1618, "type": "struct Pairing.G1Point memory[] memory" }, "children": [ @@ -24481,18 +24481,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 601, + "referencedDeclaration": 1629, "type": "struct Verifier.VerifyingKey memory", "value": "vk" }, - "id": 689, + "id": 1717, "name": "Identifier", - "src": "9168:2:0" + "src": "9165:2:4" } ], - "id": 692, + "id": 1720, "name": "MemberAccess", - "src": "9168:5:0" + "src": "9165:5:4" }, { "attributes": { @@ -24507,14 +24507,14 @@ "type": "int_const 2", "value": "2" }, - "id": 691, + "id": 1719, "name": "Literal", - "src": "9174:1:0" + "src": "9171:1:4" } ], - "id": 693, + "id": 1721, "name": "IndexAccess", - "src": "9168:8:0" + "src": "9165:8:4" }, { "attributes": { @@ -24535,12 +24535,12 @@ "attributes": { "argumentTypes": [ { - "typeIdentifier": "t_rational_6800131163095851761624472656381537016631915980579513643476302966123639982936_by_1", - "typeString": "int_const 6800...(68 digits omitted)...2936" + "typeIdentifier": "t_rational_4803911529229921243819115938814624698011704327571816657368259655263810910424_by_1", + "typeString": "int_const 4803...(68 digits omitted)...0424" }, { - "typeIdentifier": "t_rational_6187553643615591777064477778372210442801186703705175334343813412283817723258_by_1", - "typeString": "int_const 6187...(68 digits omitted)...3258" + "typeIdentifier": "t_rational_9421521138574274245916449596797669329387046444348355383899676800456202039055_by_1", + "typeString": "int_const 9421...(68 digits omitted)...9055" } ], "isConstant": false, @@ -24548,7 +24548,7 @@ "isPure": false, "lValueRequested": false, "member_name": "G1Point", - "referencedDeclaration": 6, + "referencedDeclaration": 1034, "type": "type(struct Pairing.G1Point storage pointer)" }, "children": [ @@ -24558,67 +24558,67 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 577, + "referencedDeclaration": 1605, "type": "type(library Pairing)", "value": "Pairing" }, - "id": 694, + "id": 1722, "name": "Identifier", - "src": "9179:7:0" + "src": "9176:7:4" } ], - "id": 695, + "id": 1723, "name": "MemberAccess", - "src": "9179:15:0" + "src": "9176:15:4" }, { "attributes": { "argumentTypes": null, - "hexvalue": "36383030313331313633303935383531373631363234343732363536333831353337303136363331393135393830353739353133363433343736333032393636313233363339393832393336", + "hexvalue": "34383033393131353239323239393231323433383139313135393338383134363234363938303131373034333237353731383136363537333638323539363535323633383130393130343234", "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "subdenomination": null, "token": "number", - "type": "int_const 6800...(68 digits omitted)...2936", - "value": "6800131163095851761624472656381537016631915980579513643476302966123639982936" + "type": "int_const 4803...(68 digits omitted)...0424", + "value": "4803911529229921243819115938814624698011704327571816657368259655263810910424" }, - "id": 696, + "id": 1724, "name": "Literal", - "src": "9195:76:0" + "src": "9192:76:4" }, { "attributes": { "argumentTypes": null, - "hexvalue": "36313837353533363433363135353931373737303634343737373738333732323130343432383031313836373033373035313735333334333433383133343132323833383137373233323538", + "hexvalue": "39343231353231313338353734323734323435393136343439353936373937363639333239333837303436343434333438333535333833383939363736383030343536323032303339303535", "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "subdenomination": null, "token": "number", - "type": "int_const 6187...(68 digits omitted)...3258", - "value": "6187553643615591777064477778372210442801186703705175334343813412283817723258" + "type": "int_const 9421...(68 digits omitted)...9055", + "value": "9421521138574274245916449596797669329387046444348355383899676800456202039055" }, - "id": 697, + "id": 1725, "name": "Literal", - "src": "9272:76:0" + "src": "9269:76:4" } ], - "id": 698, + "id": 1726, "name": "FunctionCall", - "src": "9179:170:0" + "src": "9176:170:4" } ], - "id": 699, + "id": 1727, "name": "Assignment", - "src": "9168:181:0" + "src": "9165:181:4" } ], - "id": 700, + "id": 1728, "name": "ExpressionStatement", - "src": "9168:181:0" + "src": "9165:181:4" }, { "children": [ @@ -24651,7 +24651,7 @@ "isPure": false, "lValueRequested": false, "member_name": "IC", - "referencedDeclaration": 590, + "referencedDeclaration": 1618, "type": "struct Pairing.G1Point memory[] memory" }, "children": [ @@ -24661,18 +24661,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 601, + "referencedDeclaration": 1629, "type": "struct Verifier.VerifyingKey memory", "value": "vk" }, - "id": 701, + "id": 1729, "name": "Identifier", - "src": "9359:2:0" + "src": "9356:2:4" } ], - "id": 704, + "id": 1732, "name": "MemberAccess", - "src": "9359:5:0" + "src": "9356:5:4" }, { "attributes": { @@ -24687,14 +24687,14 @@ "type": "int_const 3", "value": "3" }, - "id": 703, + "id": 1731, "name": "Literal", - "src": "9365:1:0" + "src": "9362:1:4" } ], - "id": 705, + "id": 1733, "name": "IndexAccess", - "src": "9359:8:0" + "src": "9356:8:4" }, { "attributes": { @@ -24715,12 +24715,12 @@ "attributes": { "argumentTypes": [ { - "typeIdentifier": "t_rational_4587236276877759665317431125194154795602571890982244289024831299326384396122_by_1", - "typeString": "int_const 4587...(68 digits omitted)...6122" + "typeIdentifier": "t_rational_8556536154095961870679484985871880561903552891231663801453118433906208208634_by_1", + "typeString": "int_const 8556...(68 digits omitted)...8634" }, { - "typeIdentifier": "t_rational_11965403480957802226918942425420027101347015982012757991262803217462830457988_by_1", - "typeString": "int_const 1196...(69 digits omitted)...7988" + "typeIdentifier": "t_rational_3050601476829943501968050336923012297384352890508269063303888737139486918441_by_1", + "typeString": "int_const 3050...(68 digits omitted)...8441" } ], "isConstant": false, @@ -24728,7 +24728,7 @@ "isPure": false, "lValueRequested": false, "member_name": "G1Point", - "referencedDeclaration": 6, + "referencedDeclaration": 1034, "type": "type(struct Pairing.G1Point storage pointer)" }, "children": [ @@ -24738,67 +24738,67 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 577, + "referencedDeclaration": 1605, "type": "type(library Pairing)", "value": "Pairing" }, - "id": 706, + "id": 1734, "name": "Identifier", - "src": "9370:7:0" + "src": "9367:7:4" } ], - "id": 707, + "id": 1735, "name": "MemberAccess", - "src": "9370:15:0" + "src": "9367:15:4" }, { "attributes": { "argumentTypes": null, - "hexvalue": "34353837323336323736383737373539363635333137343331313235313934313534373935363032353731383930393832323434323839303234383331323939333236333834333936313232", + "hexvalue": "38353536353336313534303935393631383730363739343834393835383731383830353631393033353532383931323331363633383031343533313138343333393036323038323038363334", "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "subdenomination": null, "token": "number", - "type": "int_const 4587...(68 digits omitted)...6122", - "value": "4587236276877759665317431125194154795602571890982244289024831299326384396122" + "type": "int_const 8556...(68 digits omitted)...8634", + "value": "8556536154095961870679484985871880561903552891231663801453118433906208208634" }, - "id": 708, + "id": 1736, "name": "Literal", - "src": "9386:76:0" + "src": "9383:76:4" }, { "attributes": { "argumentTypes": null, - "hexvalue": "3131393635343033343830393537383032323236393138393432343235343230303237313031333437303135393832303132373537393931323632383033323137343632383330343537393838", + "hexvalue": "33303530363031343736383239393433353031393638303530333336393233303132323937333834333532383930353038323639303633333033383838373337313339343836393138343431", "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "subdenomination": null, "token": "number", - "type": "int_const 1196...(69 digits omitted)...7988", - "value": "11965403480957802226918942425420027101347015982012757991262803217462830457988" + "type": "int_const 3050...(68 digits omitted)...8441", + "value": "3050601476829943501968050336923012297384352890508269063303888737139486918441" }, - "id": 709, + "id": 1737, "name": "Literal", - "src": "9463:77:0" + "src": "9460:76:4" } ], - "id": 710, + "id": 1738, "name": "FunctionCall", - "src": "9370:171:0" + "src": "9367:170:4" } ], - "id": 711, + "id": 1739, "name": "Assignment", - "src": "9359:182:0" + "src": "9356:181:4" } ], - "id": 712, + "id": 1740, "name": "ExpressionStatement", - "src": "9359:182:0" + "src": "9356:181:4" }, { "children": [ @@ -24831,7 +24831,7 @@ "isPure": false, "lValueRequested": false, "member_name": "IC", - "referencedDeclaration": 590, + "referencedDeclaration": 1618, "type": "struct Pairing.G1Point memory[] memory" }, "children": [ @@ -24841,18 +24841,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 601, + "referencedDeclaration": 1629, "type": "struct Verifier.VerifyingKey memory", "value": "vk" }, - "id": 713, + "id": 1741, "name": "Identifier", - "src": "9551:2:0" + "src": "9547:2:4" } ], - "id": 716, + "id": 1744, "name": "MemberAccess", - "src": "9551:5:0" + "src": "9547:5:4" }, { "attributes": { @@ -24867,14 +24867,14 @@ "type": "int_const 4", "value": "4" }, - "id": 715, + "id": 1743, "name": "Literal", - "src": "9557:1:0" + "src": "9553:1:4" } ], - "id": 717, + "id": 1745, "name": "IndexAccess", - "src": "9551:8:0" + "src": "9547:8:4" }, { "attributes": { @@ -24895,12 +24895,12 @@ "attributes": { "argumentTypes": [ { - "typeIdentifier": "t_rational_6424577348595355116274404126261845824928373631359383206779835056684747287432_by_1", - "typeString": "int_const 6424...(68 digits omitted)...7432" + "typeIdentifier": "t_rational_300970557484518070492531175714788912131243344262805477266806064126958929035_by_1", + "typeString": "int_const 3009...(67 digits omitted)...9035" }, { - "typeIdentifier": "t_rational_5068925343739685487841387431671860275036721147250958866048951387840854681489_by_1", - "typeString": "int_const 5068...(68 digits omitted)...1489" + "typeIdentifier": "t_rational_7398530781379870905922247634738956356372326243016843550426084862881205863447_by_1", + "typeString": "int_const 7398...(68 digits omitted)...3447" } ], "isConstant": false, @@ -24908,7 +24908,7 @@ "isPure": false, "lValueRequested": false, "member_name": "G1Point", - "referencedDeclaration": 6, + "referencedDeclaration": 1034, "type": "type(struct Pairing.G1Point storage pointer)" }, "children": [ @@ -24918,67 +24918,67 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 577, + "referencedDeclaration": 1605, "type": "type(library Pairing)", "value": "Pairing" }, - "id": 718, + "id": 1746, "name": "Identifier", - "src": "9562:7:0" + "src": "9558:7:4" } ], - "id": 719, + "id": 1747, "name": "MemberAccess", - "src": "9562:15:0" + "src": "9558:15:4" }, { "attributes": { "argumentTypes": null, - "hexvalue": "36343234353737333438353935333535313136323734343034313236323631383435383234393238333733363331333539333833323036373739383335303536363834373437323837343332", + "hexvalue": "333030393730353537343834353138303730343932353331313735373134373838393132313331323433333434323632383035343737323636383036303634313236393538393239303335", "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "subdenomination": null, "token": "number", - "type": "int_const 6424...(68 digits omitted)...7432", - "value": "6424577348595355116274404126261845824928373631359383206779835056684747287432" + "type": "int_const 3009...(67 digits omitted)...9035", + "value": "300970557484518070492531175714788912131243344262805477266806064126958929035" }, - "id": 720, + "id": 1748, "name": "Literal", - "src": "9578:76:0" + "src": "9574:75:4" }, { "attributes": { "argumentTypes": null, - "hexvalue": "35303638393235333433373339363835343837383431333837343331363731383630323735303336373231313437323530393538383636303438393531333837383430383534363831343839", + "hexvalue": "37333938353330373831333739383730393035393232323437363334373338393536333536333732333236323433303136383433353530343236303834383632383831323035383633343437", "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "subdenomination": null, "token": "number", - "type": "int_const 5068...(68 digits omitted)...1489", - "value": "5068925343739685487841387431671860275036721147250958866048951387840854681489" + "type": "int_const 7398...(68 digits omitted)...3447", + "value": "7398530781379870905922247634738956356372326243016843550426084862881205863447" }, - "id": 721, + "id": 1749, "name": "Literal", - "src": "9655:76:0" + "src": "9650:76:4" } ], - "id": 722, + "id": 1750, "name": "FunctionCall", - "src": "9562:170:0" + "src": "9558:169:4" } ], - "id": 723, + "id": 1751, "name": "Assignment", - "src": "9551:181:0" + "src": "9547:180:4" } ], - "id": 724, + "id": 1752, "name": "ExpressionStatement", - "src": "9551:181:0" + "src": "9547:180:4" }, { "children": [ @@ -25011,7 +25011,7 @@ "isPure": false, "lValueRequested": false, "member_name": "IC", - "referencedDeclaration": 590, + "referencedDeclaration": 1618, "type": "struct Pairing.G1Point memory[] memory" }, "children": [ @@ -25021,18 +25021,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 601, + "referencedDeclaration": 1629, "type": "struct Verifier.VerifyingKey memory", "value": "vk" }, - "id": 725, + "id": 1753, "name": "Identifier", - "src": "9742:2:0" + "src": "9737:2:4" } ], - "id": 728, + "id": 1756, "name": "MemberAccess", - "src": "9742:5:0" + "src": "9737:5:4" }, { "attributes": { @@ -25047,14 +25047,14 @@ "type": "int_const 5", "value": "5" }, - "id": 727, + "id": 1755, "name": "Literal", - "src": "9748:1:0" + "src": "9743:1:4" } ], - "id": 729, + "id": 1757, "name": "IndexAccess", - "src": "9742:8:0" + "src": "9737:8:4" }, { "attributes": { @@ -25075,12 +25075,12 @@ "attributes": { "argumentTypes": [ { - "typeIdentifier": "t_rational_3415843548574565829319442408676813522319941059565646881086034695645515873064_by_1", - "typeString": "int_const 3415...(68 digits omitted)...3064" + "typeIdentifier": "t_rational_19920099237792867409693124415022100529487012962841642820676567509262507193107_by_1", + "typeString": "int_const 1992...(69 digits omitted)...3107" }, { - "typeIdentifier": "t_rational_5883489158379442339980761211460192605180893997876253461080527033851992047395_by_1", - "typeString": "int_const 5883...(68 digits omitted)...7395" + "typeIdentifier": "t_rational_20219544009593389298713776672148908906084007300789292168389787721741450912038_by_1", + "typeString": "int_const 2021...(69 digits omitted)...2038" } ], "isConstant": false, @@ -25088,7 +25088,7 @@ "isPure": false, "lValueRequested": false, "member_name": "G1Point", - "referencedDeclaration": 6, + "referencedDeclaration": 1034, "type": "type(struct Pairing.G1Point storage pointer)" }, "children": [ @@ -25098,67 +25098,67 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 577, + "referencedDeclaration": 1605, "type": "type(library Pairing)", "value": "Pairing" }, - "id": 730, + "id": 1758, "name": "Identifier", - "src": "9753:7:0" + "src": "9748:7:4" } ], - "id": 731, + "id": 1759, "name": "MemberAccess", - "src": "9753:15:0" + "src": "9748:15:4" }, { "attributes": { "argumentTypes": null, - "hexvalue": "33343135383433353438353734353635383239333139343432343038363736383133353232333139393431303539353635363436383831303836303334363935363435353135383733303634", + "hexvalue": "3139393230303939323337373932383637343039363933313234343135303232313030353239343837303132393632383431363432383230363736353637353039323632353037313933313037", "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "subdenomination": null, "token": "number", - "type": "int_const 3415...(68 digits omitted)...3064", - "value": "3415843548574565829319442408676813522319941059565646881086034695645515873064" + "type": "int_const 1992...(69 digits omitted)...3107", + "value": "19920099237792867409693124415022100529487012962841642820676567509262507193107" }, - "id": 732, + "id": 1760, "name": "Literal", - "src": "9769:76:0" + "src": "9764:77:4" }, { "attributes": { "argumentTypes": null, - "hexvalue": "35383833343839313538333739343432333339393830373631323131343630313932363035313830383933393937383736323533343631303830353237303333383531393932303437333935", + "hexvalue": "3230323139353434303039353933333839323938373133373736363732313438393038393036303834303037333030373839323932313638333839373837373231373431343530393132303338", "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "subdenomination": null, "token": "number", - "type": "int_const 5883...(68 digits omitted)...7395", - "value": "5883489158379442339980761211460192605180893997876253461080527033851992047395" + "type": "int_const 2021...(69 digits omitted)...2038", + "value": "20219544009593389298713776672148908906084007300789292168389787721741450912038" }, - "id": 733, + "id": 1761, "name": "Literal", - "src": "9846:76:0" + "src": "9842:77:4" } ], - "id": 734, + "id": 1762, "name": "FunctionCall", - "src": "9753:170:0" + "src": "9748:172:4" } ], - "id": 735, + "id": 1763, "name": "Assignment", - "src": "9742:181:0" + "src": "9737:183:4" } ], - "id": 736, + "id": 1764, "name": "ExpressionStatement", - "src": "9742:181:0" + "src": "9737:183:4" }, { "children": [ @@ -25191,7 +25191,7 @@ "isPure": false, "lValueRequested": false, "member_name": "IC", - "referencedDeclaration": 590, + "referencedDeclaration": 1618, "type": "struct Pairing.G1Point memory[] memory" }, "children": [ @@ -25201,18 +25201,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 601, + "referencedDeclaration": 1629, "type": "struct Verifier.VerifyingKey memory", "value": "vk" }, - "id": 737, + "id": 1765, "name": "Identifier", - "src": "9933:2:0" + "src": "9930:2:4" } ], - "id": 740, + "id": 1768, "name": "MemberAccess", - "src": "9933:5:0" + "src": "9930:5:4" }, { "attributes": { @@ -25227,14 +25227,14 @@ "type": "int_const 6", "value": "6" }, - "id": 739, + "id": 1767, "name": "Literal", - "src": "9939:1:0" + "src": "9936:1:4" } ], - "id": 741, + "id": 1769, "name": "IndexAccess", - "src": "9933:8:0" + "src": "9930:8:4" }, { "attributes": { @@ -25255,12 +25255,12 @@ "attributes": { "argumentTypes": [ { - "typeIdentifier": "t_rational_20644165802587991582826647132535920964743533681089204673978388434999038955024_by_1", - "typeString": "int_const 2064...(69 digits omitted)...5024" + "typeIdentifier": "t_rational_19738468465658587453371819831578835676337686216736310076443477948701915541203_by_1", + "typeString": "int_const 1973...(69 digits omitted)...1203" }, { - "typeIdentifier": "t_rational_8998916039073087523772804621208137737037769156523190942078025903730975741357_by_1", - "typeString": "int_const 8998...(68 digits omitted)...1357" + "typeIdentifier": "t_rational_17051611336678940832594719954268295083764993921610290255520015002513439413943_by_1", + "typeString": "int_const 1705...(69 digits omitted)...3943" } ], "isConstant": false, @@ -25268,7 +25268,7 @@ "isPure": false, "lValueRequested": false, "member_name": "G1Point", - "referencedDeclaration": 6, + "referencedDeclaration": 1034, "type": "type(struct Pairing.G1Point storage pointer)" }, "children": [ @@ -25278,77 +25278,77 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 577, + "referencedDeclaration": 1605, "type": "type(library Pairing)", "value": "Pairing" }, - "id": 742, + "id": 1770, "name": "Identifier", - "src": "9944:7:0" + "src": "9941:7:4" } ], - "id": 743, + "id": 1771, "name": "MemberAccess", - "src": "9944:15:0" + "src": "9941:15:4" }, { "attributes": { "argumentTypes": null, - "hexvalue": "3230363434313635383032353837393931353832383236363437313332353335393230393634373433353333363831303839323034363733393738333838343334393939303338393535303234", + "hexvalue": "3139373338343638343635363538353837343533333731383139383331353738383335363736333337363836323136373336333130303736343433343737393438373031393135353431323033", "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "subdenomination": null, "token": "number", - "type": "int_const 2064...(69 digits omitted)...5024", - "value": "20644165802587991582826647132535920964743533681089204673978388434999038955024" + "type": "int_const 1973...(69 digits omitted)...1203", + "value": "19738468465658587453371819831578835676337686216736310076443477948701915541203" }, - "id": 744, + "id": 1772, "name": "Literal", - "src": "9960:77:0" + "src": "9957:77:4" }, { "attributes": { "argumentTypes": null, - "hexvalue": "38393938393136303339303733303837353233373732383034363231323038313337373337303337373639313536353233313930393432303738303235393033373330393735373431333537", + "hexvalue": "3137303531363131333336363738393430383332353934373139393534323638323935303833373634393933393231363130323930323535353230303135303032353133343339343133393433", "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "subdenomination": null, "token": "number", - "type": "int_const 8998...(68 digits omitted)...1357", - "value": "8998916039073087523772804621208137737037769156523190942078025903730975741357" + "type": "int_const 1705...(69 digits omitted)...3943", + "value": "17051611336678940832594719954268295083764993921610290255520015002513439413943" }, - "id": 745, + "id": 1773, "name": "Literal", - "src": "10038:76:0" + "src": "10035:77:4" } ], - "id": 746, + "id": 1774, "name": "FunctionCall", - "src": "9944:171:0" + "src": "9941:172:4" } ], - "id": 747, + "id": 1775, "name": "Assignment", - "src": "9933:182:0" + "src": "9930:183:4" } ], - "id": 748, + "id": 1776, "name": "ExpressionStatement", - "src": "9933:182:0" + "src": "9930:183:4" } ], - "id": 749, + "id": 1777, "name": "Block", - "src": "7481:2642:0" + "src": "7481:2640:4" } ], - "id": 750, + "id": 1778, "name": "FunctionDefinition", - "src": "7410:2713:0" + "src": "7410:2711:4" }, { "attributes": { @@ -25360,7 +25360,7 @@ null ], "name": "verify", - "scope": 1058, + "scope": 2086, "stateMutability": "view", "superFunction": null, "visibility": "internal" @@ -25372,7 +25372,7 @@ "attributes": { "constant": false, "name": "input", - "scope": 871, + "scope": 1899, "stateVariable": false, "storageLocation": "memory", "type": "uint256[]", @@ -25391,25 +25391,25 @@ "name": "uint", "type": "uint256" }, - "id": 751, + "id": 1779, "name": "ElementaryTypeName", - "src": "10144:4:0" + "src": "10142:4:4" } ], - "id": 752, + "id": 1780, "name": "ArrayTypeName", - "src": "10144:6:0" + "src": "10142:6:4" } ], - "id": 753, + "id": 1781, "name": "VariableDeclaration", - "src": "10144:19:0" + "src": "10142:19:4" }, { "attributes": { "constant": false, "name": "proof", - "scope": 871, + "scope": 1899, "stateVariable": false, "storageLocation": "memory", "type": "struct Verifier.Proof", @@ -25421,22 +25421,22 @@ "attributes": { "contractScope": null, "name": "Proof", - "referencedDeclaration": 598, + "referencedDeclaration": 1626, "type": "struct Verifier.Proof" }, - "id": 754, + "id": 1782, "name": "UserDefinedTypeName", - "src": "10165:5:0" + "src": "10163:5:4" } ], - "id": 755, + "id": 1783, "name": "VariableDeclaration", - "src": "10165:18:0" + "src": "10163:18:4" } ], - "id": 756, + "id": 1784, "name": "ParameterList", - "src": "10143:41:0" + "src": "10141:41:4" }, { "children": [ @@ -25444,7 +25444,7 @@ "attributes": { "constant": false, "name": "", - "scope": 871, + "scope": 1899, "stateVariable": false, "storageLocation": "default", "type": "uint256", @@ -25457,26 +25457,26 @@ "name": "uint", "type": "uint256" }, - "id": 757, + "id": 1785, "name": "ElementaryTypeName", - "src": "10208:4:0" + "src": "10206:4:4" } ], - "id": 758, + "id": 1786, "name": "VariableDeclaration", - "src": "10208:4:0" + "src": "10206:4:4" } ], - "id": 759, + "id": 1787, "name": "ParameterList", - "src": "10207:6:0" + "src": "10205:6:4" }, { "children": [ { "attributes": { "assignments": [ - 761 + 1789 ] }, "children": [ @@ -25484,7 +25484,7 @@ "attributes": { "constant": false, "name": "snark_scalar_field", - "scope": 870, + "scope": 1898, "stateVariable": false, "storageLocation": "default", "type": "uint256", @@ -25497,14 +25497,14 @@ "name": "uint256", "type": "uint256" }, - "id": 760, + "id": 1788, "name": "ElementaryTypeName", - "src": "10224:7:0" + "src": "10222:7:4" } ], - "id": 761, + "id": 1789, "name": "VariableDeclaration", - "src": "10224:26:0" + "src": "10222:26:4" }, { "attributes": { @@ -25519,19 +25519,19 @@ "type": "int_const 2188...(69 digits omitted)...5617", "value": "21888242871839275222246405745257275088548364400416034343698204186575808495617" }, - "id": 762, + "id": 1790, "name": "Literal", - "src": "10253:77:0" + "src": "10251:77:4" } ], - "id": 763, + "id": 1791, "name": "VariableDeclarationStatement", - "src": "10224:106:0" + "src": "10222:106:4" }, { "attributes": { "assignments": [ - 765 + 1793 ] }, "children": [ @@ -25539,7 +25539,7 @@ "attributes": { "constant": false, "name": "vk", - "scope": 870, + "scope": 1898, "stateVariable": false, "storageLocation": "memory", "type": "struct Verifier.VerifyingKey", @@ -25551,17 +25551,17 @@ "attributes": { "contractScope": null, "name": "VerifyingKey", - "referencedDeclaration": 591, + "referencedDeclaration": 1619, "type": "struct Verifier.VerifyingKey" }, - "id": 764, + "id": 1792, "name": "UserDefinedTypeName", - "src": "10340:12:0" + "src": "10338:12:4" } ], - "id": 765, + "id": 1793, "name": "VariableDeclaration", - "src": "10340:22:0" + "src": "10338:22:4" }, { "attributes": { @@ -25589,23 +25589,23 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 750, + "referencedDeclaration": 1778, "type": "function () pure returns (struct Verifier.VerifyingKey memory)", "value": "verifyingKey" }, - "id": 766, + "id": 1794, "name": "Identifier", - "src": "10365:12:0" + "src": "10363:12:4" } ], - "id": 767, + "id": 1795, "name": "FunctionCall", - "src": "10365:14:0" + "src": "10363:14:4" } ], - "id": 768, + "id": 1796, "name": "VariableDeclarationStatement", - "src": "10340:39:0" + "src": "10338:39:4" }, { "children": [ @@ -25637,16 +25637,16 @@ } ], "overloadedDeclarations": [ - 1076, - 1077 + 2134, + 2135 ], - "referencedDeclaration": 1077, + "referencedDeclaration": 2135, "type": "function (bool,string memory) pure", "value": "require" }, - "id": 769, + "id": 1797, "name": "Identifier", - "src": "10389:7:0" + "src": "10387:7:4" }, { "attributes": { @@ -25696,18 +25696,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 753, + "referencedDeclaration": 1781, "type": "uint256[] memory", "value": "input" }, - "id": 770, + "id": 1798, "name": "Identifier", - "src": "10397:5:0" + "src": "10395:5:4" } ], - "id": 771, + "id": 1799, "name": "MemberAccess", - "src": "10397:12:0" + "src": "10395:12:4" }, { "attributes": { @@ -25722,14 +25722,14 @@ "type": "int_const 1", "value": "1" }, - "id": 772, + "id": 1800, "name": "Literal", - "src": "10412:1:0" + "src": "10410:1:4" } ], - "id": 773, + "id": 1801, "name": "BinaryOperation", - "src": "10397:16:0" + "src": "10395:16:4" }, { "attributes": { @@ -25751,7 +25751,7 @@ "isPure": false, "lValueRequested": false, "member_name": "IC", - "referencedDeclaration": 590, + "referencedDeclaration": 1618, "type": "struct Pairing.G1Point memory[] memory" }, "children": [ @@ -25761,28 +25761,28 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 765, + "referencedDeclaration": 1793, "type": "struct Verifier.VerifyingKey memory", "value": "vk" }, - "id": 774, + "id": 1802, "name": "Identifier", - "src": "10417:2:0" + "src": "10415:2:4" } ], - "id": 775, + "id": 1803, "name": "MemberAccess", - "src": "10417:5:0" + "src": "10415:5:4" } ], - "id": 776, + "id": 1804, "name": "MemberAccess", - "src": "10417:12:0" + "src": "10415:12:4" } ], - "id": 777, + "id": 1805, "name": "BinaryOperation", - "src": "10397:32:0" + "src": "10395:32:4" }, { "attributes": { @@ -25797,24 +25797,24 @@ "type": "literal_string \"verifier-bad-input\"", "value": "verifier-bad-input" }, - "id": 778, + "id": 1806, "name": "Literal", - "src": "10430:20:0" + "src": "10428:20:4" } ], - "id": 779, + "id": 1807, "name": "FunctionCall", - "src": "10389:62:0" + "src": "10387:62:4" } ], - "id": 780, + "id": 1808, "name": "ExpressionStatement", - "src": "10389:62:0" + "src": "10387:62:4" }, { "attributes": { "assignments": [ - 784 + 1812 ] }, "children": [ @@ -25822,7 +25822,7 @@ "attributes": { "constant": false, "name": "vk_x", - "scope": 870, + "scope": 1898, "stateVariable": false, "storageLocation": "memory", "type": "struct Pairing.G1Point", @@ -25834,17 +25834,17 @@ "attributes": { "contractScope": null, "name": "Pairing.G1Point", - "referencedDeclaration": 6, + "referencedDeclaration": 1034, "type": "struct Pairing.G1Point" }, - "id": 783, + "id": 1811, "name": "UserDefinedTypeName", - "src": "10508:15:0" + "src": "10506:15:4" } ], - "id": 784, + "id": 1812, "name": "VariableDeclaration", - "src": "10508:27:0" + "src": "10506:27:4" }, { "attributes": { @@ -25878,7 +25878,7 @@ "isPure": false, "lValueRequested": false, "member_name": "G1Point", - "referencedDeclaration": 6, + "referencedDeclaration": 1034, "type": "type(struct Pairing.G1Point storage pointer)" }, "children": [ @@ -25888,18 +25888,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 577, + "referencedDeclaration": 1605, "type": "type(library Pairing)", "value": "Pairing" }, - "id": 785, + "id": 1813, "name": "Identifier", - "src": "10538:7:0" + "src": "10536:7:4" } ], - "id": 786, + "id": 1814, "name": "MemberAccess", - "src": "10538:15:0" + "src": "10536:15:4" }, { "attributes": { @@ -25914,9 +25914,9 @@ "type": "int_const 0", "value": "0" }, - "id": 787, + "id": 1815, "name": "Literal", - "src": "10554:1:0" + "src": "10552:1:4" }, { "attributes": { @@ -25931,26 +25931,26 @@ "type": "int_const 0", "value": "0" }, - "id": 788, + "id": 1816, "name": "Literal", - "src": "10557:1:0" + "src": "10555:1:4" } ], - "id": 789, + "id": 1817, "name": "FunctionCall", - "src": "10538:21:0" + "src": "10536:21:4" } ], - "id": 790, + "id": 1818, "name": "VariableDeclarationStatement", - "src": "10508:51:0" + "src": "10506:51:4" }, { "children": [ { "attributes": { "assignments": [ - 792 + 1820 ] }, "children": [ @@ -25958,7 +25958,7 @@ "attributes": { "constant": false, "name": "i", - "scope": 831, + "scope": 1859, "stateVariable": false, "storageLocation": "default", "type": "uint256", @@ -25971,14 +25971,14 @@ "name": "uint", "type": "uint256" }, - "id": 791, + "id": 1819, "name": "ElementaryTypeName", - "src": "10574:4:0" + "src": "10572:4:4" } ], - "id": 792, + "id": 1820, "name": "VariableDeclaration", - "src": "10574:6:0" + "src": "10572:6:4" }, { "attributes": { @@ -25993,14 +25993,14 @@ "type": "int_const 0", "value": "0" }, - "id": 793, + "id": 1821, "name": "Literal", - "src": "10583:1:0" + "src": "10581:1:4" } ], - "id": 794, + "id": 1822, "name": "VariableDeclarationStatement", - "src": "10574:10:0" + "src": "10572:10:4" }, { "attributes": { @@ -26023,13 +26023,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 792, + "referencedDeclaration": 1820, "type": "uint256", "value": "i" }, - "id": 795, + "id": 1823, "name": "Identifier", - "src": "10586:1:0" + "src": "10584:1:4" }, { "attributes": { @@ -26049,23 +26049,23 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 753, + "referencedDeclaration": 1781, "type": "uint256[] memory", "value": "input" }, - "id": 796, + "id": 1824, "name": "Identifier", - "src": "10590:5:0" + "src": "10588:5:4" } ], - "id": 797, + "id": 1825, "name": "MemberAccess", - "src": "10590:12:0" + "src": "10588:12:4" } ], - "id": 798, + "id": 1826, "name": "BinaryOperation", - "src": "10586:16:0" + "src": "10584:16:4" }, { "children": [ @@ -26087,23 +26087,23 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 792, + "referencedDeclaration": 1820, "type": "uint256", "value": "i" }, - "id": 799, + "id": 1827, "name": "Identifier", - "src": "10604:1:0" + "src": "10602:1:4" } ], - "id": 800, + "id": 1828, "name": "UnaryOperation", - "src": "10604:3:0" + "src": "10602:3:4" } ], - "id": 801, + "id": 1829, "name": "ExpressionStatement", - "src": "10604:3:0" + "src": "10602:3:4" }, { "children": [ @@ -26137,16 +26137,16 @@ } ], "overloadedDeclarations": [ - 1076, - 1077 + 2134, + 2135 ], - "referencedDeclaration": 1077, + "referencedDeclaration": 2135, "type": "function (bool,string memory) pure", "value": "require" }, - "id": 802, + "id": 1830, "name": "Identifier", - "src": "10623:7:0" + "src": "10621:7:4" }, { "attributes": { @@ -26179,13 +26179,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 753, + "referencedDeclaration": 1781, "type": "uint256[] memory", "value": "input" }, - "id": 803, + "id": 1831, "name": "Identifier", - "src": "10631:5:0" + "src": "10629:5:4" }, { "attributes": { @@ -26193,18 +26193,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 792, + "referencedDeclaration": 1820, "type": "uint256", "value": "i" }, - "id": 804, + "id": 1832, "name": "Identifier", - "src": "10637:1:0" + "src": "10635:1:4" } ], - "id": 805, + "id": 1833, "name": "IndexAccess", - "src": "10631:8:0" + "src": "10629:8:4" }, { "attributes": { @@ -26212,18 +26212,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 761, + "referencedDeclaration": 1789, "type": "uint256", "value": "snark_scalar_field" }, - "id": 806, + "id": 1834, "name": "Identifier", - "src": "10642:18:0" + "src": "10640:18:4" } ], - "id": 807, + "id": 1835, "name": "BinaryOperation", - "src": "10631:29:0" + "src": "10629:29:4" }, { "attributes": { @@ -26238,19 +26238,19 @@ "type": "literal_string \"verifier-gte-snark-scalar-field\"", "value": "verifier-gte-snark-scalar-field" }, - "id": 808, + "id": 1836, "name": "Literal", - "src": "10661:33:0" + "src": "10659:33:4" } ], - "id": 809, + "id": 1837, "name": "FunctionCall", - "src": "10623:72:0" + "src": "10621:72:4" } ], - "id": 810, + "id": 1838, "name": "ExpressionStatement", - "src": "10623:72:0" + "src": "10621:72:4" }, { "children": [ @@ -26271,13 +26271,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 784, + "referencedDeclaration": 1812, "type": "struct Pairing.G1Point memory", "value": "vk_x" }, - "id": 811, + "id": 1839, "name": "Identifier", - "src": "10709:4:0" + "src": "10707:4:4" }, { "attributes": { @@ -26298,11 +26298,11 @@ "attributes": { "argumentTypes": [ { - "typeIdentifier": "t_struct$_G1Point_$6_memory_ptr", + "typeIdentifier": "t_struct$_G1Point_$1034_memory_ptr", "typeString": "struct Pairing.G1Point memory" }, { - "typeIdentifier": "t_struct$_G1Point_$6_memory_ptr", + "typeIdentifier": "t_struct$_G1Point_$1034_memory_ptr", "typeString": "struct Pairing.G1Point memory" } ], @@ -26311,7 +26311,7 @@ "isPure": false, "lValueRequested": false, "member_name": "addition", - "referencedDeclaration": 133, + "referencedDeclaration": 1161, "type": "function (struct Pairing.G1Point memory,struct Pairing.G1Point memory) view returns (struct Pairing.G1Point memory)" }, "children": [ @@ -26321,18 +26321,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 577, + "referencedDeclaration": 1605, "type": "type(library Pairing)", "value": "Pairing" }, - "id": 812, + "id": 1840, "name": "Identifier", - "src": "10716:7:0" + "src": "10714:7:4" } ], - "id": 813, + "id": 1841, "name": "MemberAccess", - "src": "10716:16:0" + "src": "10714:16:4" }, { "attributes": { @@ -26340,13 +26340,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 784, + "referencedDeclaration": 1812, "type": "struct Pairing.G1Point memory", "value": "vk_x" }, - "id": 814, + "id": 1842, "name": "Identifier", - "src": "10733:4:0" + "src": "10731:4:4" }, { "attributes": { @@ -26367,7 +26367,7 @@ "attributes": { "argumentTypes": [ { - "typeIdentifier": "t_struct$_G1Point_$6_memory", + "typeIdentifier": "t_struct$_G1Point_$1034_memory", "typeString": "struct Pairing.G1Point memory" }, { @@ -26380,7 +26380,7 @@ "isPure": false, "lValueRequested": false, "member_name": "scalar_mul", - "referencedDeclaration": 178, + "referencedDeclaration": 1206, "type": "function (struct Pairing.G1Point memory,uint256) view returns (struct Pairing.G1Point memory)" }, "children": [ @@ -26390,18 +26390,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 577, + "referencedDeclaration": 1605, "type": "type(library Pairing)", "value": "Pairing" }, - "id": 815, + "id": 1843, "name": "Identifier", - "src": "10739:7:0" + "src": "10737:7:4" } ], - "id": 816, + "id": 1844, "name": "MemberAccess", - "src": "10739:18:0" + "src": "10737:18:4" }, { "attributes": { @@ -26421,7 +26421,7 @@ "isPure": false, "lValueRequested": false, "member_name": "IC", - "referencedDeclaration": 590, + "referencedDeclaration": 1618, "type": "struct Pairing.G1Point memory[] memory" }, "children": [ @@ -26431,18 +26431,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 765, + "referencedDeclaration": 1793, "type": "struct Verifier.VerifyingKey memory", "value": "vk" }, - "id": 817, + "id": 1845, "name": "Identifier", - "src": "10758:2:0" + "src": "10756:2:4" } ], - "id": 818, + "id": 1846, "name": "MemberAccess", - "src": "10758:5:0" + "src": "10756:5:4" }, { "attributes": { @@ -26465,13 +26465,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 792, + "referencedDeclaration": 1820, "type": "uint256", "value": "i" }, - "id": 819, + "id": 1847, "name": "Identifier", - "src": "10764:1:0" + "src": "10762:1:4" }, { "attributes": { @@ -26486,19 +26486,19 @@ "type": "int_const 1", "value": "1" }, - "id": 820, + "id": 1848, "name": "Literal", - "src": "10768:1:0" + "src": "10766:1:4" } ], - "id": 821, + "id": 1849, "name": "BinaryOperation", - "src": "10764:5:0" + "src": "10762:5:4" } ], - "id": 822, + "id": 1850, "name": "IndexAccess", - "src": "10758:12:0" + "src": "10756:12:4" }, { "attributes": { @@ -26516,13 +26516,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 753, + "referencedDeclaration": 1781, "type": "uint256[] memory", "value": "input" }, - "id": 823, + "id": 1851, "name": "Identifier", - "src": "10772:5:0" + "src": "10770:5:4" }, { "attributes": { @@ -26530,48 +26530,48 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 792, + "referencedDeclaration": 1820, "type": "uint256", "value": "i" }, - "id": 824, + "id": 1852, "name": "Identifier", - "src": "10778:1:0" + "src": "10776:1:4" } ], - "id": 825, + "id": 1853, "name": "IndexAccess", - "src": "10772:8:0" + "src": "10770:8:4" } ], - "id": 826, + "id": 1854, "name": "FunctionCall", - "src": "10739:42:0" + "src": "10737:42:4" } ], - "id": 827, + "id": 1855, "name": "FunctionCall", - "src": "10716:66:0" + "src": "10714:66:4" } ], - "id": 828, + "id": 1856, "name": "Assignment", - "src": "10709:73:0" + "src": "10707:73:4" } ], - "id": 829, + "id": 1857, "name": "ExpressionStatement", - "src": "10709:73:0" + "src": "10707:73:4" } ], - "id": 830, + "id": 1858, "name": "Block", - "src": "10609:184:0" + "src": "10607:184:4" } ], - "id": 831, + "id": 1859, "name": "ForStatement", - "src": "10569:224:0" + "src": "10567:224:4" }, { "children": [ @@ -26592,13 +26592,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 784, + "referencedDeclaration": 1812, "type": "struct Pairing.G1Point memory", "value": "vk_x" }, - "id": 832, + "id": 1860, "name": "Identifier", - "src": "10802:4:0" + "src": "10800:4:4" }, { "attributes": { @@ -26619,11 +26619,11 @@ "attributes": { "argumentTypes": [ { - "typeIdentifier": "t_struct$_G1Point_$6_memory_ptr", + "typeIdentifier": "t_struct$_G1Point_$1034_memory_ptr", "typeString": "struct Pairing.G1Point memory" }, { - "typeIdentifier": "t_struct$_G1Point_$6_memory", + "typeIdentifier": "t_struct$_G1Point_$1034_memory", "typeString": "struct Pairing.G1Point memory" } ], @@ -26632,7 +26632,7 @@ "isPure": false, "lValueRequested": false, "member_name": "addition", - "referencedDeclaration": 133, + "referencedDeclaration": 1161, "type": "function (struct Pairing.G1Point memory,struct Pairing.G1Point memory) view returns (struct Pairing.G1Point memory)" }, "children": [ @@ -26642,18 +26642,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 577, + "referencedDeclaration": 1605, "type": "type(library Pairing)", "value": "Pairing" }, - "id": 833, + "id": 1861, "name": "Identifier", - "src": "10809:7:0" + "src": "10807:7:4" } ], - "id": 834, + "id": 1862, "name": "MemberAccess", - "src": "10809:16:0" + "src": "10807:16:4" }, { "attributes": { @@ -26661,13 +26661,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 784, + "referencedDeclaration": 1812, "type": "struct Pairing.G1Point memory", "value": "vk_x" }, - "id": 835, + "id": 1863, "name": "Identifier", - "src": "10826:4:0" + "src": "10824:4:4" }, { "attributes": { @@ -26687,7 +26687,7 @@ "isPure": false, "lValueRequested": false, "member_name": "IC", - "referencedDeclaration": 590, + "referencedDeclaration": 1618, "type": "struct Pairing.G1Point memory[] memory" }, "children": [ @@ -26697,18 +26697,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 765, + "referencedDeclaration": 1793, "type": "struct Verifier.VerifyingKey memory", "value": "vk" }, - "id": 836, + "id": 1864, "name": "Identifier", - "src": "10832:2:0" + "src": "10830:2:4" } ], - "id": 837, + "id": 1865, "name": "MemberAccess", - "src": "10832:5:0" + "src": "10830:5:4" }, { "attributes": { @@ -26723,29 +26723,29 @@ "type": "int_const 0", "value": "0" }, - "id": 838, + "id": 1866, "name": "Literal", - "src": "10838:1:0" + "src": "10836:1:4" } ], - "id": 839, + "id": 1867, "name": "IndexAccess", - "src": "10832:8:0" + "src": "10830:8:4" } ], - "id": 840, + "id": 1868, "name": "FunctionCall", - "src": "10809:32:0" + "src": "10807:32:4" } ], - "id": 841, + "id": 1869, "name": "Assignment", - "src": "10802:39:0" + "src": "10800:39:4" } ], - "id": 842, + "id": 1870, "name": "ExpressionStatement", - "src": "10802:39:0" + "src": "10800:39:4" }, { "attributes": { @@ -26783,35 +26783,35 @@ "attributes": { "argumentTypes": [ { - "typeIdentifier": "t_struct$_G1Point_$6_memory_ptr", + "typeIdentifier": "t_struct$_G1Point_$1034_memory_ptr", "typeString": "struct Pairing.G1Point memory" }, { - "typeIdentifier": "t_struct$_G2Point_$15_memory", + "typeIdentifier": "t_struct$_G2Point_$1043_memory", "typeString": "struct Pairing.G2Point memory" }, { - "typeIdentifier": "t_struct$_G1Point_$6_memory", + "typeIdentifier": "t_struct$_G1Point_$1034_memory", "typeString": "struct Pairing.G1Point memory" }, { - "typeIdentifier": "t_struct$_G2Point_$15_memory", + "typeIdentifier": "t_struct$_G2Point_$1043_memory", "typeString": "struct Pairing.G2Point memory" }, { - "typeIdentifier": "t_struct$_G1Point_$6_memory_ptr", + "typeIdentifier": "t_struct$_G1Point_$1034_memory_ptr", "typeString": "struct Pairing.G1Point memory" }, { - "typeIdentifier": "t_struct$_G2Point_$15_memory", + "typeIdentifier": "t_struct$_G2Point_$1043_memory", "typeString": "struct Pairing.G2Point memory" }, { - "typeIdentifier": "t_struct$_G1Point_$6_memory", + "typeIdentifier": "t_struct$_G1Point_$1034_memory", "typeString": "struct Pairing.G1Point memory" }, { - "typeIdentifier": "t_struct$_G2Point_$15_memory", + "typeIdentifier": "t_struct$_G2Point_$1043_memory", "typeString": "struct Pairing.G2Point memory" } ], @@ -26820,7 +26820,7 @@ "isPure": false, "lValueRequested": false, "member_name": "pairingProd4", - "referencedDeclaration": 576, + "referencedDeclaration": 1604, "type": "function (struct Pairing.G1Point memory,struct Pairing.G2Point memory,struct Pairing.G1Point memory,struct Pairing.G2Point memory,struct Pairing.G1Point memory,struct Pairing.G2Point memory,struct Pairing.G1Point memory,struct Pairing.G2Point memory) view returns (bool)" }, "children": [ @@ -26830,18 +26830,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 577, + "referencedDeclaration": 1605, "type": "type(library Pairing)", "value": "Pairing" }, - "id": 843, + "id": 1871, "name": "Identifier", - "src": "10856:7:0" + "src": "10854:7:4" } ], - "id": 844, + "id": 1872, "name": "MemberAccess", - "src": "10856:20:0" + "src": "10854:20:4" }, { "attributes": { @@ -26862,7 +26862,7 @@ "attributes": { "argumentTypes": [ { - "typeIdentifier": "t_struct$_G1Point_$6_memory", + "typeIdentifier": "t_struct$_G1Point_$1034_memory", "typeString": "struct Pairing.G1Point memory" } ], @@ -26871,7 +26871,7 @@ "isPure": false, "lValueRequested": false, "member_name": "negate", - "referencedDeclaration": 80, + "referencedDeclaration": 1108, "type": "function (struct Pairing.G1Point memory) pure returns (struct Pairing.G1Point memory)" }, "children": [ @@ -26881,18 +26881,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 577, + "referencedDeclaration": 1605, "type": "type(library Pairing)", "value": "Pairing" }, - "id": 845, + "id": 1873, "name": "Identifier", - "src": "10890:7:0" + "src": "10888:7:4" } ], - "id": 846, + "id": 1874, "name": "MemberAccess", - "src": "10890:14:0" + "src": "10888:14:4" }, { "attributes": { @@ -26902,7 +26902,7 @@ "isPure": false, "lValueRequested": false, "member_name": "A", - "referencedDeclaration": 593, + "referencedDeclaration": 1621, "type": "struct Pairing.G1Point memory" }, "children": [ @@ -26912,23 +26912,23 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 755, + "referencedDeclaration": 1783, "type": "struct Verifier.Proof memory", "value": "proof" }, - "id": 847, + "id": 1875, "name": "Identifier", - "src": "10905:5:0" + "src": "10903:5:4" } ], - "id": 848, + "id": 1876, "name": "MemberAccess", - "src": "10905:7:0" + "src": "10903:7:4" } ], - "id": 849, + "id": 1877, "name": "FunctionCall", - "src": "10890:23:0" + "src": "10888:23:4" }, { "attributes": { @@ -26938,7 +26938,7 @@ "isPure": false, "lValueRequested": false, "member_name": "B", - "referencedDeclaration": 595, + "referencedDeclaration": 1623, "type": "struct Pairing.G2Point memory" }, "children": [ @@ -26948,18 +26948,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 755, + "referencedDeclaration": 1783, "type": "struct Verifier.Proof memory", "value": "proof" }, - "id": 850, + "id": 1878, "name": "Identifier", - "src": "10915:5:0" + "src": "10913:5:4" } ], - "id": 851, + "id": 1879, "name": "MemberAccess", - "src": "10915:7:0" + "src": "10913:7:4" }, { "attributes": { @@ -26969,7 +26969,7 @@ "isPure": false, "lValueRequested": false, "member_name": "alfa1", - "referencedDeclaration": 581, + "referencedDeclaration": 1609, "type": "struct Pairing.G1Point memory" }, "children": [ @@ -26979,18 +26979,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 765, + "referencedDeclaration": 1793, "type": "struct Verifier.VerifyingKey memory", "value": "vk" }, - "id": 852, + "id": 1880, "name": "Identifier", - "src": "10936:2:0" + "src": "10934:2:4" } ], - "id": 853, + "id": 1881, "name": "MemberAccess", - "src": "10936:8:0" + "src": "10934:8:4" }, { "attributes": { @@ -27000,7 +27000,7 @@ "isPure": false, "lValueRequested": false, "member_name": "beta2", - "referencedDeclaration": 583, + "referencedDeclaration": 1611, "type": "struct Pairing.G2Point memory" }, "children": [ @@ -27010,18 +27010,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 765, + "referencedDeclaration": 1793, "type": "struct Verifier.VerifyingKey memory", "value": "vk" }, - "id": 854, + "id": 1882, "name": "Identifier", - "src": "10946:2:0" + "src": "10944:2:4" } ], - "id": 855, + "id": 1883, "name": "MemberAccess", - "src": "10946:8:0" + "src": "10944:8:4" }, { "attributes": { @@ -27029,13 +27029,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 784, + "referencedDeclaration": 1812, "type": "struct Pairing.G1Point memory", "value": "vk_x" }, - "id": 856, + "id": 1884, "name": "Identifier", - "src": "10968:4:0" + "src": "10966:4:4" }, { "attributes": { @@ -27045,7 +27045,7 @@ "isPure": false, "lValueRequested": false, "member_name": "gamma2", - "referencedDeclaration": 585, + "referencedDeclaration": 1613, "type": "struct Pairing.G2Point memory" }, "children": [ @@ -27055,18 +27055,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 765, + "referencedDeclaration": 1793, "type": "struct Verifier.VerifyingKey memory", "value": "vk" }, - "id": 857, + "id": 1885, "name": "Identifier", - "src": "10974:2:0" + "src": "10972:2:4" } ], - "id": 858, + "id": 1886, "name": "MemberAccess", - "src": "10974:9:0" + "src": "10972:9:4" }, { "attributes": { @@ -27076,7 +27076,7 @@ "isPure": false, "lValueRequested": false, "member_name": "C", - "referencedDeclaration": 597, + "referencedDeclaration": 1625, "type": "struct Pairing.G1Point memory" }, "children": [ @@ -27086,18 +27086,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 755, + "referencedDeclaration": 1783, "type": "struct Verifier.Proof memory", "value": "proof" }, - "id": 859, + "id": 1887, "name": "Identifier", - "src": "10997:5:0" + "src": "10995:5:4" } ], - "id": 860, + "id": 1888, "name": "MemberAccess", - "src": "10997:7:0" + "src": "10995:7:4" }, { "attributes": { @@ -27107,7 +27107,7 @@ "isPure": false, "lValueRequested": false, "member_name": "delta2", - "referencedDeclaration": 587, + "referencedDeclaration": 1615, "type": "struct Pairing.G2Point memory" }, "children": [ @@ -27117,32 +27117,32 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 765, + "referencedDeclaration": 1793, "type": "struct Verifier.VerifyingKey memory", "value": "vk" }, - "id": 861, + "id": 1889, "name": "Identifier", - "src": "11006:2:0" + "src": "11004:2:4" } ], - "id": 862, + "id": 1890, "name": "MemberAccess", - "src": "11006:9:0" + "src": "11004:9:4" } ], - "id": 863, + "id": 1891, "name": "FunctionCall", - "src": "10856:169:0" + "src": "10854:169:4" } ], - "id": 864, + "id": 1892, "name": "UnaryOperation", - "src": "10855:170:0" + "src": "10853:170:4" }, { "attributes": { - "functionReturnParameters": 759 + "functionReturnParameters": 1787 }, "children": [ { @@ -27158,23 +27158,23 @@ "type": "int_const 1", "value": "1" }, - "id": 865, + "id": 1893, "name": "Literal", - "src": "11034:1:0" + "src": "11032:1:4" } ], - "id": 866, + "id": 1894, "name": "Return", - "src": "11027:8:0" + "src": "11025:8:4" } ], - "id": 867, + "id": 1895, "name": "IfStatement", - "src": "10851:184:0" + "src": "10849:184:4" }, { "attributes": { - "functionReturnParameters": 759 + "functionReturnParameters": 1787 }, "children": [ { @@ -27190,24 +27190,24 @@ "type": "int_const 0", "value": "0" }, - "id": 868, + "id": 1896, "name": "Literal", - "src": "11052:1:0" + "src": "11050:1:4" } ], - "id": 869, + "id": 1897, "name": "Return", - "src": "11045:8:0" + "src": "11043:8:4" } ], - "id": 870, + "id": 1898, "name": "Block", - "src": "10214:846:0" + "src": "10212:846:4" } ], - "id": 871, + "id": 1899, "name": "FunctionDefinition", - "src": "10128:932:0" + "src": "10126:932:4" }, { "attributes": { @@ -27219,7 +27219,7 @@ null ], "name": "verifyProof", - "scope": 1058, + "scope": 2086, "stateMutability": "view", "superFunction": null, "visibility": "public" @@ -27231,7 +27231,7 @@ "attributes": { "constant": false, "name": "a", - "scope": 1001, + "scope": 2029, "stateVariable": false, "storageLocation": "memory", "type": "uint256[2]", @@ -27249,9 +27249,9 @@ "name": "uint", "type": "uint256" }, - "id": 872, + "id": 1900, "name": "ElementaryTypeName", - "src": "11099:4:0" + "src": "11097:4:4" }, { "attributes": { @@ -27266,25 +27266,25 @@ "type": "int_const 2", "value": "2" }, - "id": 873, + "id": 1901, "name": "Literal", - "src": "11104:1:0" + "src": "11102:1:4" } ], - "id": 874, + "id": 1902, "name": "ArrayTypeName", - "src": "11099:7:0" + "src": "11097:7:4" } ], - "id": 875, + "id": 1903, "name": "VariableDeclaration", - "src": "11099:16:0" + "src": "11097:16:4" }, { "attributes": { "constant": false, "name": "b", - "scope": 1001, + "scope": 2029, "stateVariable": false, "storageLocation": "memory", "type": "uint256[2][2]", @@ -27307,9 +27307,9 @@ "name": "uint", "type": "uint256" }, - "id": 876, + "id": 1904, "name": "ElementaryTypeName", - "src": "11129:4:0" + "src": "11127:4:4" }, { "attributes": { @@ -27324,14 +27324,14 @@ "type": "int_const 2", "value": "2" }, - "id": 877, + "id": 1905, "name": "Literal", - "src": "11134:1:0" + "src": "11132:1:4" } ], - "id": 878, + "id": 1906, "name": "ArrayTypeName", - "src": "11129:7:0" + "src": "11127:7:4" }, { "attributes": { @@ -27346,25 +27346,25 @@ "type": "int_const 2", "value": "2" }, - "id": 879, + "id": 1907, "name": "Literal", - "src": "11137:1:0" + "src": "11135:1:4" } ], - "id": 880, + "id": 1908, "name": "ArrayTypeName", - "src": "11129:10:0" + "src": "11127:10:4" } ], - "id": 881, + "id": 1909, "name": "VariableDeclaration", - "src": "11129:19:0" + "src": "11127:19:4" }, { "attributes": { "constant": false, "name": "c", - "scope": 1001, + "scope": 2029, "stateVariable": false, "storageLocation": "memory", "type": "uint256[2]", @@ -27382,9 +27382,9 @@ "name": "uint", "type": "uint256" }, - "id": 882, + "id": 1910, "name": "ElementaryTypeName", - "src": "11162:4:0" + "src": "11160:4:4" }, { "attributes": { @@ -27399,25 +27399,25 @@ "type": "int_const 2", "value": "2" }, - "id": 883, + "id": 1911, "name": "Literal", - "src": "11167:1:0" + "src": "11165:1:4" } ], - "id": 884, + "id": 1912, "name": "ArrayTypeName", - "src": "11162:7:0" + "src": "11160:7:4" } ], - "id": 885, + "id": 1913, "name": "VariableDeclaration", - "src": "11162:16:0" + "src": "11160:16:4" }, { "attributes": { "constant": false, "name": "input", - "scope": 1001, + "scope": 2029, "stateVariable": false, "storageLocation": "memory", "type": "uint256[6]", @@ -27435,9 +27435,9 @@ "name": "uint", "type": "uint256" }, - "id": 886, + "id": 1914, "name": "ElementaryTypeName", - "src": "11192:4:0" + "src": "11190:4:4" }, { "attributes": { @@ -27452,24 +27452,24 @@ "type": "int_const 6", "value": "6" }, - "id": 887, + "id": 1915, "name": "Literal", - "src": "11197:1:0" + "src": "11195:1:4" } ], - "id": 888, + "id": 1916, "name": "ArrayTypeName", - "src": "11192:7:0" + "src": "11190:7:4" } ], - "id": 889, + "id": 1917, "name": "VariableDeclaration", - "src": "11192:20:0" + "src": "11190:20:4" } ], - "id": 890, + "id": 1918, "name": "ParameterList", - "src": "11085:137:0" + "src": "11083:137:4" }, { "children": [ @@ -27477,7 +27477,7 @@ "attributes": { "constant": false, "name": "r", - "scope": 1001, + "scope": 2029, "stateVariable": false, "storageLocation": "default", "type": "bool", @@ -27490,26 +27490,26 @@ "name": "bool", "type": "bool" }, - "id": 891, + "id": 1919, "name": "ElementaryTypeName", - "src": "11244:4:0" + "src": "11242:4:4" } ], - "id": 892, + "id": 1920, "name": "VariableDeclaration", - "src": "11244:6:0" + "src": "11242:6:4" } ], - "id": 893, + "id": 1921, "name": "ParameterList", - "src": "11243:8:0" + "src": "11241:8:4" }, { "children": [ { "attributes": { "assignments": [ - 895 + 1923 ], "initialValue": null }, @@ -27518,7 +27518,7 @@ "attributes": { "constant": false, "name": "proof", - "scope": 1000, + "scope": 2028, "stateVariable": false, "storageLocation": "memory", "type": "struct Verifier.Proof", @@ -27530,22 +27530,22 @@ "attributes": { "contractScope": null, "name": "Proof", - "referencedDeclaration": 598, + "referencedDeclaration": 1626, "type": "struct Verifier.Proof" }, - "id": 894, + "id": 1922, "name": "UserDefinedTypeName", - "src": "11262:5:0" + "src": "11260:5:4" } ], - "id": 895, + "id": 1923, "name": "VariableDeclaration", - "src": "11262:18:0" + "src": "11260:18:4" } ], - "id": 896, + "id": 1924, "name": "VariableDeclarationStatement", - "src": "11262:18:0" + "src": "11260:18:4" }, { "children": [ @@ -27568,7 +27568,7 @@ "isPure": false, "lValueRequested": true, "member_name": "A", - "referencedDeclaration": 593, + "referencedDeclaration": 1621, "type": "struct Pairing.G1Point memory" }, "children": [ @@ -27578,18 +27578,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 895, + "referencedDeclaration": 1923, "type": "struct Verifier.Proof memory", "value": "proof" }, - "id": 897, + "id": 1925, "name": "Identifier", - "src": "11290:5:0" + "src": "11288:5:4" } ], - "id": 899, + "id": 1927, "name": "MemberAccess", - "src": "11290:7:0" + "src": "11288:7:4" }, { "attributes": { @@ -27623,7 +27623,7 @@ "isPure": false, "lValueRequested": false, "member_name": "G1Point", - "referencedDeclaration": 6, + "referencedDeclaration": 1034, "type": "type(struct Pairing.G1Point storage pointer)" }, "children": [ @@ -27633,18 +27633,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 577, + "referencedDeclaration": 1605, "type": "type(library Pairing)", "value": "Pairing" }, - "id": 900, + "id": 1928, "name": "Identifier", - "src": "11300:7:0" + "src": "11298:7:4" } ], - "id": 901, + "id": 1929, "name": "MemberAccess", - "src": "11300:15:0" + "src": "11298:15:4" }, { "attributes": { @@ -27662,13 +27662,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 875, + "referencedDeclaration": 1903, "type": "uint256[2] memory", "value": "a" }, - "id": 902, + "id": 1930, "name": "Identifier", - "src": "11316:1:0" + "src": "11314:1:4" }, { "attributes": { @@ -27683,14 +27683,14 @@ "type": "int_const 0", "value": "0" }, - "id": 903, + "id": 1931, "name": "Literal", - "src": "11318:1:0" + "src": "11316:1:4" } ], - "id": 904, + "id": 1932, "name": "IndexAccess", - "src": "11316:4:0" + "src": "11314:4:4" }, { "attributes": { @@ -27708,13 +27708,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 875, + "referencedDeclaration": 1903, "type": "uint256[2] memory", "value": "a" }, - "id": 905, + "id": 1933, "name": "Identifier", - "src": "11322:1:0" + "src": "11320:1:4" }, { "attributes": { @@ -27729,29 +27729,29 @@ "type": "int_const 1", "value": "1" }, - "id": 906, + "id": 1934, "name": "Literal", - "src": "11324:1:0" + "src": "11322:1:4" } ], - "id": 907, + "id": 1935, "name": "IndexAccess", - "src": "11322:4:0" + "src": "11320:4:4" } ], - "id": 908, + "id": 1936, "name": "FunctionCall", - "src": "11300:27:0" + "src": "11298:27:4" } ], - "id": 909, + "id": 1937, "name": "Assignment", - "src": "11290:37:0" + "src": "11288:37:4" } ], - "id": 910, + "id": 1938, "name": "ExpressionStatement", - "src": "11290:37:0" + "src": "11288:37:4" }, { "children": [ @@ -27774,7 +27774,7 @@ "isPure": false, "lValueRequested": true, "member_name": "B", - "referencedDeclaration": 595, + "referencedDeclaration": 1623, "type": "struct Pairing.G2Point memory" }, "children": [ @@ -27784,18 +27784,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 895, + "referencedDeclaration": 1923, "type": "struct Verifier.Proof memory", "value": "proof" }, - "id": 911, + "id": 1939, "name": "Identifier", - "src": "11337:5:0" + "src": "11335:5:4" } ], - "id": 913, + "id": 1941, "name": "MemberAccess", - "src": "11337:7:0" + "src": "11335:7:4" }, { "attributes": { @@ -27829,7 +27829,7 @@ "isPure": false, "lValueRequested": false, "member_name": "G2Point", - "referencedDeclaration": 15, + "referencedDeclaration": 1043, "type": "type(struct Pairing.G2Point storage pointer)" }, "children": [ @@ -27839,18 +27839,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 577, + "referencedDeclaration": 1605, "type": "type(library Pairing)", "value": "Pairing" }, - "id": 914, + "id": 1942, "name": "Identifier", - "src": "11347:7:0" + "src": "11345:7:4" } ], - "id": 915, + "id": 1943, "name": "MemberAccess", - "src": "11347:15:0" + "src": "11345:15:4" }, { "attributes": { @@ -27889,13 +27889,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 881, + "referencedDeclaration": 1909, "type": "uint256[2] memory[2] memory", "value": "b" }, - "id": 916, + "id": 1944, "name": "Identifier", - "src": "11364:1:0" + "src": "11362:1:4" }, { "attributes": { @@ -27910,14 +27910,14 @@ "type": "int_const 0", "value": "0" }, - "id": 917, + "id": 1945, "name": "Literal", - "src": "11366:1:0" + "src": "11364:1:4" } ], - "id": 918, + "id": 1946, "name": "IndexAccess", - "src": "11364:4:0" + "src": "11362:4:4" }, { "attributes": { @@ -27932,14 +27932,14 @@ "type": "int_const 0", "value": "0" }, - "id": 919, + "id": 1947, "name": "Literal", - "src": "11369:1:0" + "src": "11367:1:4" } ], - "id": 920, + "id": 1948, "name": "IndexAccess", - "src": "11364:7:0" + "src": "11362:7:4" }, { "attributes": { @@ -27967,13 +27967,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 881, + "referencedDeclaration": 1909, "type": "uint256[2] memory[2] memory", "value": "b" }, - "id": 921, + "id": 1949, "name": "Identifier", - "src": "11373:1:0" + "src": "11371:1:4" }, { "attributes": { @@ -27988,14 +27988,14 @@ "type": "int_const 0", "value": "0" }, - "id": 922, + "id": 1950, "name": "Literal", - "src": "11375:1:0" + "src": "11373:1:4" } ], - "id": 923, + "id": 1951, "name": "IndexAccess", - "src": "11373:4:0" + "src": "11371:4:4" }, { "attributes": { @@ -28010,19 +28010,19 @@ "type": "int_const 1", "value": "1" }, - "id": 924, + "id": 1952, "name": "Literal", - "src": "11378:1:0" + "src": "11376:1:4" } ], - "id": 925, + "id": 1953, "name": "IndexAccess", - "src": "11373:7:0" + "src": "11371:7:4" } ], - "id": 926, + "id": 1954, "name": "TupleExpression", - "src": "11363:18:0" + "src": "11361:18:4" }, { "attributes": { @@ -28061,13 +28061,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 881, + "referencedDeclaration": 1909, "type": "uint256[2] memory[2] memory", "value": "b" }, - "id": 927, + "id": 1955, "name": "Identifier", - "src": "11384:1:0" + "src": "11382:1:4" }, { "attributes": { @@ -28082,14 +28082,14 @@ "type": "int_const 1", "value": "1" }, - "id": 928, + "id": 1956, "name": "Literal", - "src": "11386:1:0" + "src": "11384:1:4" } ], - "id": 929, + "id": 1957, "name": "IndexAccess", - "src": "11384:4:0" + "src": "11382:4:4" }, { "attributes": { @@ -28104,14 +28104,14 @@ "type": "int_const 0", "value": "0" }, - "id": 930, + "id": 1958, "name": "Literal", - "src": "11389:1:0" + "src": "11387:1:4" } ], - "id": 931, + "id": 1959, "name": "IndexAccess", - "src": "11384:7:0" + "src": "11382:7:4" }, { "attributes": { @@ -28139,13 +28139,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 881, + "referencedDeclaration": 1909, "type": "uint256[2] memory[2] memory", "value": "b" }, - "id": 932, + "id": 1960, "name": "Identifier", - "src": "11393:1:0" + "src": "11391:1:4" }, { "attributes": { @@ -28160,14 +28160,14 @@ "type": "int_const 1", "value": "1" }, - "id": 933, + "id": 1961, "name": "Literal", - "src": "11395:1:0" + "src": "11393:1:4" } ], - "id": 934, + "id": 1962, "name": "IndexAccess", - "src": "11393:4:0" + "src": "11391:4:4" }, { "attributes": { @@ -28182,34 +28182,34 @@ "type": "int_const 1", "value": "1" }, - "id": 935, + "id": 1963, "name": "Literal", - "src": "11398:1:0" + "src": "11396:1:4" } ], - "id": 936, + "id": 1964, "name": "IndexAccess", - "src": "11393:7:0" + "src": "11391:7:4" } ], - "id": 937, + "id": 1965, "name": "TupleExpression", - "src": "11383:18:0" + "src": "11381:18:4" } ], - "id": 938, + "id": 1966, "name": "FunctionCall", - "src": "11347:55:0" + "src": "11345:55:4" } ], - "id": 939, + "id": 1967, "name": "Assignment", - "src": "11337:65:0" + "src": "11335:65:4" } ], - "id": 940, + "id": 1968, "name": "ExpressionStatement", - "src": "11337:65:0" + "src": "11335:65:4" }, { "children": [ @@ -28232,7 +28232,7 @@ "isPure": false, "lValueRequested": true, "member_name": "C", - "referencedDeclaration": 597, + "referencedDeclaration": 1625, "type": "struct Pairing.G1Point memory" }, "children": [ @@ -28242,18 +28242,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 895, + "referencedDeclaration": 1923, "type": "struct Verifier.Proof memory", "value": "proof" }, - "id": 941, + "id": 1969, "name": "Identifier", - "src": "11412:5:0" + "src": "11410:5:4" } ], - "id": 943, + "id": 1971, "name": "MemberAccess", - "src": "11412:7:0" + "src": "11410:7:4" }, { "attributes": { @@ -28287,7 +28287,7 @@ "isPure": false, "lValueRequested": false, "member_name": "G1Point", - "referencedDeclaration": 6, + "referencedDeclaration": 1034, "type": "type(struct Pairing.G1Point storage pointer)" }, "children": [ @@ -28297,18 +28297,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 577, + "referencedDeclaration": 1605, "type": "type(library Pairing)", "value": "Pairing" }, - "id": 944, + "id": 1972, "name": "Identifier", - "src": "11422:7:0" + "src": "11420:7:4" } ], - "id": 945, + "id": 1973, "name": "MemberAccess", - "src": "11422:15:0" + "src": "11420:15:4" }, { "attributes": { @@ -28326,13 +28326,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 885, + "referencedDeclaration": 1913, "type": "uint256[2] memory", "value": "c" }, - "id": 946, + "id": 1974, "name": "Identifier", - "src": "11438:1:0" + "src": "11436:1:4" }, { "attributes": { @@ -28347,14 +28347,14 @@ "type": "int_const 0", "value": "0" }, - "id": 947, + "id": 1975, "name": "Literal", - "src": "11440:1:0" + "src": "11438:1:4" } ], - "id": 948, + "id": 1976, "name": "IndexAccess", - "src": "11438:4:0" + "src": "11436:4:4" }, { "attributes": { @@ -28372,13 +28372,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 885, + "referencedDeclaration": 1913, "type": "uint256[2] memory", "value": "c" }, - "id": 949, + "id": 1977, "name": "Identifier", - "src": "11444:1:0" + "src": "11442:1:4" }, { "attributes": { @@ -28393,34 +28393,34 @@ "type": "int_const 1", "value": "1" }, - "id": 950, + "id": 1978, "name": "Literal", - "src": "11446:1:0" + "src": "11444:1:4" } ], - "id": 951, + "id": 1979, "name": "IndexAccess", - "src": "11444:4:0" + "src": "11442:4:4" } ], - "id": 952, + "id": 1980, "name": "FunctionCall", - "src": "11422:27:0" + "src": "11420:27:4" } ], - "id": 953, + "id": 1981, "name": "Assignment", - "src": "11412:37:0" + "src": "11410:37:4" } ], - "id": 954, + "id": 1982, "name": "ExpressionStatement", - "src": "11412:37:0" + "src": "11410:37:4" }, { "attributes": { "assignments": [ - 958 + 1986 ] }, "children": [ @@ -28428,7 +28428,7 @@ "attributes": { "constant": false, "name": "inputValues", - "scope": 1000, + "scope": 2028, "stateVariable": false, "storageLocation": "memory", "type": "uint256[]", @@ -28447,19 +28447,19 @@ "name": "uint", "type": "uint256" }, - "id": 956, + "id": 1984, "name": "ElementaryTypeName", - "src": "11459:4:0" + "src": "11457:4:4" } ], - "id": 957, + "id": 1985, "name": "ArrayTypeName", - "src": "11459:6:0" + "src": "11457:6:4" } ], - "id": 958, + "id": 1986, "name": "VariableDeclaration", - "src": "11459:25:0" + "src": "11457:25:4" }, { "attributes": { @@ -28502,19 +28502,19 @@ "name": "uint", "type": "uint256" }, - "id": 959, + "id": 1987, "name": "ElementaryTypeName", - "src": "11491:4:0" + "src": "11489:4:4" } ], - "id": 960, + "id": 1988, "name": "ArrayTypeName", - "src": "11491:6:0" + "src": "11489:6:4" } ], - "id": 961, + "id": 1989, "name": "NewExpression", - "src": "11487:10:0" + "src": "11485:10:4" }, { "attributes": { @@ -28534,35 +28534,35 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 889, + "referencedDeclaration": 1917, "type": "uint256[6] memory", "value": "input" }, - "id": 962, + "id": 1990, "name": "Identifier", - "src": "11498:5:0" + "src": "11496:5:4" } ], - "id": 963, + "id": 1991, "name": "MemberAccess", - "src": "11498:12:0" + "src": "11496:12:4" } ], - "id": 964, + "id": 1992, "name": "FunctionCall", - "src": "11487:24:0" + "src": "11485:24:4" } ], - "id": 965, + "id": 1993, "name": "VariableDeclarationStatement", - "src": "11459:52:0" + "src": "11457:52:4" }, { "children": [ { "attributes": { "assignments": [ - 967 + 1995 ] }, "children": [ @@ -28570,7 +28570,7 @@ "attributes": { "constant": false, "name": "i", - "scope": 986, + "scope": 2014, "stateVariable": false, "storageLocation": "default", "type": "uint256", @@ -28583,14 +28583,14 @@ "name": "uint", "type": "uint256" }, - "id": 966, + "id": 1994, "name": "ElementaryTypeName", - "src": "11525:4:0" + "src": "11523:4:4" } ], - "id": 967, + "id": 1995, "name": "VariableDeclaration", - "src": "11525:6:0" + "src": "11523:6:4" }, { "attributes": { @@ -28605,14 +28605,14 @@ "type": "int_const 0", "value": "0" }, - "id": 968, + "id": 1996, "name": "Literal", - "src": "11534:1:0" + "src": "11532:1:4" } ], - "id": 969, + "id": 1997, "name": "VariableDeclarationStatement", - "src": "11525:10:0" + "src": "11523:10:4" }, { "attributes": { @@ -28635,13 +28635,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 967, + "referencedDeclaration": 1995, "type": "uint256", "value": "i" }, - "id": 970, + "id": 1998, "name": "Identifier", - "src": "11537:1:0" + "src": "11535:1:4" }, { "attributes": { @@ -28661,23 +28661,23 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 889, + "referencedDeclaration": 1917, "type": "uint256[6] memory", "value": "input" }, - "id": 971, + "id": 1999, "name": "Identifier", - "src": "11541:5:0" + "src": "11539:5:4" } ], - "id": 972, + "id": 2000, "name": "MemberAccess", - "src": "11541:12:0" + "src": "11539:12:4" } ], - "id": 973, + "id": 2001, "name": "BinaryOperation", - "src": "11537:16:0" + "src": "11535:16:4" }, { "children": [ @@ -28699,23 +28699,23 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 967, + "referencedDeclaration": 1995, "type": "uint256", "value": "i" }, - "id": 974, + "id": 2002, "name": "Identifier", - "src": "11555:1:0" + "src": "11553:1:4" } ], - "id": 975, + "id": 2003, "name": "UnaryOperation", - "src": "11555:3:0" + "src": "11553:3:4" } ], - "id": 976, + "id": 2004, "name": "ExpressionStatement", - "src": "11555:3:0" + "src": "11553:3:4" }, { "children": [ @@ -28748,13 +28748,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 958, + "referencedDeclaration": 1986, "type": "uint256[] memory", "value": "inputValues" }, - "id": 977, + "id": 2005, "name": "Identifier", - "src": "11573:11:0" + "src": "11571:11:4" }, { "attributes": { @@ -28762,18 +28762,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 967, + "referencedDeclaration": 1995, "type": "uint256", "value": "i" }, - "id": 978, + "id": 2006, "name": "Identifier", - "src": "11585:1:0" + "src": "11583:1:4" } ], - "id": 979, + "id": 2007, "name": "IndexAccess", - "src": "11573:14:0" + "src": "11571:14:4" }, { "attributes": { @@ -28791,13 +28791,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 889, + "referencedDeclaration": 1917, "type": "uint256[6] memory", "value": "input" }, - "id": 980, + "id": 2008, "name": "Identifier", - "src": "11590:5:0" + "src": "11588:5:4" }, { "attributes": { @@ -28805,38 +28805,38 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 967, + "referencedDeclaration": 1995, "type": "uint256", "value": "i" }, - "id": 981, + "id": 2009, "name": "Identifier", - "src": "11596:1:0" + "src": "11594:1:4" } ], - "id": 982, + "id": 2010, "name": "IndexAccess", - "src": "11590:8:0" + "src": "11588:8:4" } ], - "id": 983, + "id": 2011, "name": "Assignment", - "src": "11573:25:0" + "src": "11571:25:4" } ], - "id": 984, + "id": 2012, "name": "ExpressionStatement", - "src": "11573:25:0" + "src": "11571:25:4" } ], - "id": 985, + "id": 2013, "name": "Block", - "src": "11559:50:0" + "src": "11557:50:4" } ], - "id": 986, + "id": 2014, "name": "ForStatement", - "src": "11521:88:0" + "src": "11519:88:4" }, { "children": [ @@ -28878,20 +28878,20 @@ "typeString": "uint256[] memory" }, { - "typeIdentifier": "t_struct$_Proof_$598_memory_ptr", + "typeIdentifier": "t_struct$_Proof_$1626_memory_ptr", "typeString": "struct Verifier.Proof memory" } ], "overloadedDeclarations": [ null ], - "referencedDeclaration": 871, + "referencedDeclaration": 1899, "type": "function (uint256[] memory,struct Verifier.Proof memory) view returns (uint256)", "value": "verify" }, - "id": 987, + "id": 2015, "name": "Identifier", - "src": "11622:6:0" + "src": "11620:6:4" }, { "attributes": { @@ -28899,13 +28899,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 958, + "referencedDeclaration": 1986, "type": "uint256[] memory", "value": "inputValues" }, - "id": 988, + "id": 2016, "name": "Identifier", - "src": "11629:11:0" + "src": "11627:11:4" }, { "attributes": { @@ -28913,18 +28913,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 895, + "referencedDeclaration": 1923, "type": "struct Verifier.Proof memory", "value": "proof" }, - "id": 989, + "id": 2017, "name": "Identifier", - "src": "11642:5:0" + "src": "11640:5:4" } ], - "id": 990, + "id": 2018, "name": "FunctionCall", - "src": "11622:26:0" + "src": "11620:26:4" }, { "attributes": { @@ -28939,20 +28939,20 @@ "type": "int_const 0", "value": "0" }, - "id": 991, + "id": 2019, "name": "Literal", - "src": "11652:1:0" + "src": "11650:1:4" } ], - "id": 992, + "id": 2020, "name": "BinaryOperation", - "src": "11622:31:0" + "src": "11620:31:4" }, { "children": [ { "attributes": { - "functionReturnParameters": 893 + "functionReturnParameters": 1921 }, "children": [ { @@ -28968,25 +28968,25 @@ "type": "bool", "value": "true" }, - "id": 993, + "id": 2021, "name": "Literal", - "src": "11676:4:0" + "src": "11674:4:4" } ], - "id": 994, + "id": 2022, "name": "Return", - "src": "11669:11:0" + "src": "11667:11:4" } ], - "id": 995, + "id": 2023, "name": "Block", - "src": "11655:36:0" + "src": "11653:36:4" }, { "children": [ { "attributes": { - "functionReturnParameters": 893 + "functionReturnParameters": 1921 }, "children": [ { @@ -29002,34 +29002,34 @@ "type": "bool", "value": "false" }, - "id": 996, + "id": 2024, "name": "Literal", - "src": "11718:5:0" + "src": "11716:5:4" } ], - "id": 997, + "id": 2025, "name": "Return", - "src": "11711:12:0" + "src": "11709:12:4" } ], - "id": 998, + "id": 2026, "name": "Block", - "src": "11697:37:0" + "src": "11695:37:4" } ], - "id": 999, + "id": 2027, "name": "IfStatement", - "src": "11618:116:0" + "src": "11616:116:4" } ], - "id": 1000, + "id": 2028, "name": "Block", - "src": "11252:488:0" + "src": "11250:488:4" } ], - "id": 1001, + "id": 2029, "name": "FunctionDefinition", - "src": "11065:675:0" + "src": "11063:675:4" }, { "attributes": { @@ -29041,7 +29041,7 @@ null ], "name": "verifyProof", - "scope": 1058, + "scope": 2086, "stateMutability": "view", "superFunction": null, "visibility": "external" @@ -29053,7 +29053,7 @@ "attributes": { "constant": false, "name": "proof", - "scope": 1057, + "scope": 2085, "stateVariable": false, "storageLocation": "calldata", "type": "bytes", @@ -29066,20 +29066,20 @@ "name": "bytes", "type": "bytes" }, - "id": 1002, + "id": 2030, "name": "ElementaryTypeName", - "src": "11766:5:0" + "src": "11764:5:4" } ], - "id": 1003, + "id": 2031, "name": "VariableDeclaration", - "src": "11766:20:0" + "src": "11764:20:4" }, { "attributes": { "constant": false, "name": "inputs", - "scope": 1057, + "scope": 2085, "stateVariable": false, "storageLocation": "calldata", "type": "uint256[6]", @@ -29097,9 +29097,9 @@ "name": "uint", "type": "uint256" }, - "id": 1004, + "id": 2032, "name": "ElementaryTypeName", - "src": "11788:4:0" + "src": "11786:4:4" }, { "attributes": { @@ -29114,24 +29114,24 @@ "type": "int_const 6", "value": "6" }, - "id": 1005, + "id": 2033, "name": "Literal", - "src": "11793:1:0" + "src": "11791:1:4" } ], - "id": 1006, + "id": 2034, "name": "ArrayTypeName", - "src": "11788:7:0" + "src": "11786:7:4" } ], - "id": 1007, + "id": 2035, "name": "VariableDeclaration", - "src": "11788:23:0" + "src": "11786:23:4" } ], - "id": 1008, + "id": 2036, "name": "ParameterList", - "src": "11765:47:0" + "src": "11763:47:4" }, { "children": [ @@ -29139,7 +29139,7 @@ "attributes": { "constant": false, "name": "r", - "scope": 1057, + "scope": 2085, "stateVariable": false, "storageLocation": "default", "type": "bool", @@ -29152,29 +29152,29 @@ "name": "bool", "type": "bool" }, - "id": 1009, + "id": 2037, "name": "ElementaryTypeName", - "src": "11836:4:0" + "src": "11834:4:4" } ], - "id": 1010, + "id": 2038, "name": "VariableDeclaration", - "src": "11836:6:0" + "src": "11834:6:4" } ], - "id": 1011, + "id": 2039, "name": "ParameterList", - "src": "11835:8:0" + "src": "11833:8:4" }, { "children": [ { "attributes": { "assignments": [ - 1016, - 1020, - 1024, - 1028 + 2044, + 2048, + 2052, + 2056 ] }, "children": [ @@ -29182,7 +29182,7 @@ "attributes": { "constant": false, "name": "a", - "scope": 1056, + "scope": 2084, "stateVariable": false, "storageLocation": "memory", "type": "uint256[2]", @@ -29200,9 +29200,9 @@ "name": "uint", "type": "uint256" }, - "id": 1014, + "id": 2042, "name": "ElementaryTypeName", - "src": "11916:4:0" + "src": "11914:4:4" }, { "attributes": { @@ -29217,25 +29217,25 @@ "type": "int_const 2", "value": "2" }, - "id": 1013, + "id": 2041, "name": "Literal", - "src": "11921:1:0" + "src": "11919:1:4" } ], - "id": 1015, + "id": 2043, "name": "ArrayTypeName", - "src": "11916:7:0" + "src": "11914:7:4" } ], - "id": 1016, + "id": 2044, "name": "VariableDeclaration", - "src": "11916:16:0" + "src": "11914:16:4" }, { "attributes": { "constant": false, "name": "b1", - "scope": 1056, + "scope": 2084, "stateVariable": false, "storageLocation": "memory", "type": "uint256[2]", @@ -29253,9 +29253,9 @@ "name": "uint", "type": "uint256" }, - "id": 1017, + "id": 2045, "name": "ElementaryTypeName", - "src": "11934:4:0" + "src": "11932:4:4" }, { "attributes": { @@ -29270,25 +29270,25 @@ "type": "int_const 2", "value": "2" }, - "id": 1018, + "id": 2046, "name": "Literal", - "src": "11939:1:0" + "src": "11937:1:4" } ], - "id": 1019, + "id": 2047, "name": "ArrayTypeName", - "src": "11934:7:0" + "src": "11932:7:4" } ], - "id": 1020, + "id": 2048, "name": "VariableDeclaration", - "src": "11934:17:0" + "src": "11932:17:4" }, { "attributes": { "constant": false, "name": "b2", - "scope": 1056, + "scope": 2084, "stateVariable": false, "storageLocation": "memory", "type": "uint256[2]", @@ -29306,9 +29306,9 @@ "name": "uint", "type": "uint256" }, - "id": 1021, + "id": 2049, "name": "ElementaryTypeName", - "src": "11953:4:0" + "src": "11951:4:4" }, { "attributes": { @@ -29323,25 +29323,25 @@ "type": "int_const 2", "value": "2" }, - "id": 1022, + "id": 2050, "name": "Literal", - "src": "11958:1:0" + "src": "11956:1:4" } ], - "id": 1023, + "id": 2051, "name": "ArrayTypeName", - "src": "11953:7:0" + "src": "11951:7:4" } ], - "id": 1024, + "id": 2052, "name": "VariableDeclaration", - "src": "11953:17:0" + "src": "11951:17:4" }, { "attributes": { "constant": false, "name": "c", - "scope": 1056, + "scope": 2084, "stateVariable": false, "storageLocation": "memory", "type": "uint256[2]", @@ -29359,9 +29359,9 @@ "name": "uint", "type": "uint256" }, - "id": 1025, + "id": 2053, "name": "ElementaryTypeName", - "src": "11972:4:0" + "src": "11970:4:4" }, { "attributes": { @@ -29376,19 +29376,19 @@ "type": "int_const 2", "value": "2" }, - "id": 1026, + "id": 2054, "name": "Literal", - "src": "11977:1:0" + "src": "11975:1:4" } ], - "id": 1027, + "id": 2055, "name": "ArrayTypeName", - "src": "11972:7:0" + "src": "11970:7:4" } ], - "id": 1028, + "id": 2056, "name": "VariableDeclaration", - "src": "11972:16:0" + "src": "11970:16:4" }, { "attributes": { @@ -29432,18 +29432,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1060, + "referencedDeclaration": 2118, "type": "abi", "value": "abi" }, - "id": 1029, + "id": 2057, "name": "Identifier", - "src": "11992:3:0" + "src": "11990:3:4" } ], - "id": 1030, + "id": 2058, "name": "MemberAccess", - "src": "11992:10:0" + "src": "11990:10:4" }, { "attributes": { @@ -29451,13 +29451,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1003, + "referencedDeclaration": 2031, "type": "bytes calldata", "value": "proof" }, - "id": 1031, + "id": 2059, "name": "Identifier", - "src": "12003:5:0" + "src": "12001:5:4" }, { "attributes": { @@ -29490,9 +29490,9 @@ "type": "type(uint256)", "value": "uint" }, - "id": 1032, + "id": 2060, "name": "ElementaryTypeNameExpression", - "src": "12011:4:0" + "src": "12009:4:4" }, { "attributes": { @@ -29507,14 +29507,14 @@ "type": "int_const 2", "value": "2" }, - "id": 1033, + "id": 2061, "name": "Literal", - "src": "12016:1:0" + "src": "12014:1:4" } ], - "id": 1034, + "id": 2062, "name": "IndexAccess", - "src": "12011:7:0" + "src": "12009:7:4" }, { "attributes": { @@ -29536,9 +29536,9 @@ "type": "type(uint256)", "value": "uint" }, - "id": 1035, + "id": 2063, "name": "ElementaryTypeNameExpression", - "src": "12020:4:0" + "src": "12018:4:4" }, { "attributes": { @@ -29553,14 +29553,14 @@ "type": "int_const 2", "value": "2" }, - "id": 1036, + "id": 2064, "name": "Literal", - "src": "12025:1:0" + "src": "12023:1:4" } ], - "id": 1037, + "id": 2065, "name": "IndexAccess", - "src": "12020:7:0" + "src": "12018:7:4" }, { "attributes": { @@ -29582,9 +29582,9 @@ "type": "type(uint256)", "value": "uint" }, - "id": 1038, + "id": 2066, "name": "ElementaryTypeNameExpression", - "src": "12029:4:0" + "src": "12027:4:4" }, { "attributes": { @@ -29599,14 +29599,14 @@ "type": "int_const 2", "value": "2" }, - "id": 1039, + "id": 2067, "name": "Literal", - "src": "12034:1:0" + "src": "12032:1:4" } ], - "id": 1040, + "id": 2068, "name": "IndexAccess", - "src": "12029:7:0" + "src": "12027:7:4" }, { "attributes": { @@ -29628,9 +29628,9 @@ "type": "type(uint256)", "value": "uint" }, - "id": 1041, + "id": 2069, "name": "ElementaryTypeNameExpression", - "src": "12038:4:0" + "src": "12036:4:4" }, { "attributes": { @@ -29645,33 +29645,33 @@ "type": "int_const 2", "value": "2" }, - "id": 1042, + "id": 2070, "name": "Literal", - "src": "12043:1:0" + "src": "12041:1:4" } ], - "id": 1043, + "id": 2071, "name": "IndexAccess", - "src": "12038:7:0" + "src": "12036:7:4" } ], - "id": 1044, + "id": 2072, "name": "TupleExpression", - "src": "12010:36:0" + "src": "12008:36:4" } ], - "id": 1045, + "id": 2073, "name": "FunctionCall", - "src": "11992:55:0" + "src": "11990:55:4" } ], - "id": 1046, + "id": 2074, "name": "VariableDeclarationStatement", - "src": "11915:132:0" + "src": "11913:132:4" }, { "attributes": { - "functionReturnParameters": 1011 + "functionReturnParameters": 2039 }, "children": [ { @@ -29712,13 +29712,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1001, + "referencedDeclaration": 2029, "type": "function (uint256[2] memory,uint256[2] memory[2] memory,uint256[2] memory,uint256[6] memory) view returns (bool)", "value": "verifyProof" }, - "id": 1047, + "id": 2075, "name": "Identifier", - "src": "12064:11:0" + "src": "12062:11:4" }, { "attributes": { @@ -29726,13 +29726,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1016, + "referencedDeclaration": 2044, "type": "uint256[2] memory", "value": "a" }, - "id": 1048, + "id": 2076, "name": "Identifier", - "src": "12076:1:0" + "src": "12074:1:4" }, { "attributes": { @@ -29751,13 +29751,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1020, + "referencedDeclaration": 2048, "type": "uint256[2] memory", "value": "b1" }, - "id": 1049, + "id": 2077, "name": "Identifier", - "src": "12080:2:0" + "src": "12078:2:4" }, { "attributes": { @@ -29765,18 +29765,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1024, + "referencedDeclaration": 2052, "type": "uint256[2] memory", "value": "b2" }, - "id": 1050, + "id": 2078, "name": "Identifier", - "src": "12084:2:0" + "src": "12082:2:4" } ], - "id": 1051, + "id": 2079, "name": "TupleExpression", - "src": "12079:8:0" + "src": "12077:8:4" }, { "attributes": { @@ -29784,13 +29784,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1028, + "referencedDeclaration": 2056, "type": "uint256[2] memory", "value": "c" }, - "id": 1052, + "id": 2080, "name": "Identifier", - "src": "12089:1:0" + "src": "12087:1:4" }, { "attributes": { @@ -29798,43 +29798,43 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1007, + "referencedDeclaration": 2035, "type": "uint256[6] calldata", "value": "inputs" }, - "id": 1053, + "id": 2081, "name": "Identifier", - "src": "12092:6:0" + "src": "12090:6:4" } ], - "id": 1054, + "id": 2082, "name": "FunctionCall", - "src": "12064:35:0" + "src": "12062:35:4" } ], - "id": 1055, + "id": 2083, "name": "Return", - "src": "12057:42:0" + "src": "12055:42:4" } ], - "id": 1056, + "id": 2084, "name": "Block", - "src": "11844:262:0" + "src": "11842:262:4" } ], - "id": 1057, + "id": 2085, "name": "FunctionDefinition", - "src": "11745:361:0" + "src": "11743:361:4" } ], - "id": 1058, + "id": 2086, "name": "ContractDefinition", - "src": "7067:5041:0" + "src": "7067:5039:4" } ], - "id": 1059, + "id": 2087, "name": "SourceUnit", - "src": "1193:10916:0" + "src": "1193:10914:4" }, "compiler": { "name": "solc", @@ -29842,7 +29842,7 @@ }, "networks": {}, "schemaVersion": "3.3.4", - "updatedAt": "2021-03-21T01:51:03.610Z", + "updatedAt": "2021-04-02T20:48:07.488Z", "devdoc": { "methods": {} }, diff --git a/client/contracts/Tornado.json b/client/contracts/Tornado.json index 43586cb..b79c737 100644 --- a/client/contracts/Tornado.json +++ b/client/contracts/Tornado.json @@ -8,6 +8,11 @@ "name": "_verifier", "type": "address" }, + { + "internalType": "contract IFeeManager", + "name": "_feeManager", + "type": "address" + }, { "internalType": "uint256", "name": "_denomination", @@ -180,6 +185,21 @@ "stateMutability": "view", "type": "function" }, + { + "constant": true, + "inputs": [], + "name": "feeManager", + "outputs": [ + { + "internalType": "contract IFeeManager", + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, { "constant": true, "inputs": [ @@ -519,55 +539,58 @@ "type": "function" } ], - "metadata": "{\"compiler\":{\"version\":\"0.5.17+commit.d19bba13\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"contract IVerifier\",\"name\":\"_verifier\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_denomination\",\"type\":\"uint256\"},{\"internalType\":\"uint32\",\"name\":\"_merkleTreeHeight\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"_operator\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"commitment\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"leafIndex\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"}],\"name\":\"Deposit\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"nullifierHash\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"relayer\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\"}],\"name\":\"Withdrawal\",\"type\":\"event\"},{\"constant\":true,\"inputs\":[],\"name\":\"FIELD_SIZE\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"ROOT_HISTORY_SIZE\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"ZERO_VALUE\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"_newOperator\",\"type\":\"address\"}],\"name\":\"changeOperator\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"commitments\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"currentRootIndex\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"denomination\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_commitment\",\"type\":\"bytes32\"}],\"name\":\"deposit\",\"outputs\":[],\"payable\":true,\"stateMutability\":\"payable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"filledSubtrees\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"getLastRoot\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_left\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"_right\",\"type\":\"bytes32\"}],\"name\":\"hashLeftRight\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_root\",\"type\":\"bytes32\"}],\"name\":\"isKnownRoot\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_nullifierHash\",\"type\":\"bytes32\"}],\"name\":\"isSpent\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"_nullifierHashes\",\"type\":\"bytes32[]\"}],\"name\":\"isSpentArray\",\"outputs\":[{\"internalType\":\"bool[]\",\"name\":\"spent\",\"type\":\"bool[]\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"levels\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"nextIndex\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"nullifierHashes\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"operator\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"roots\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"_newVerifier\",\"type\":\"address\"}],\"name\":\"updateVerifier\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"verifier\",\"outputs\":[{\"internalType\":\"contract IVerifier\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"_proof\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"_root\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"_nullifierHash\",\"type\":\"bytes32\"},{\"internalType\":\"address payable\",\"name\":\"_recipient\",\"type\":\"address\"},{\"internalType\":\"address payable\",\"name\":\"_relayer\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_fee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_refund\",\"type\":\"uint256\"}],\"name\":\"withdraw\",\"outputs\":[],\"payable\":true,\"stateMutability\":\"payable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"zeros\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"methods\":{\"changeOperator(address)\":{\"details\":\"operator can change his address \"},\"constructor\":{\"details\":\"The constructor\",\"params\":{\"_denomination\":\"transfer amount for each deposit\",\"_merkleTreeHeight\":\"the height of deposits' Merkle Tree\",\"_operator\":\"operator address (see operator comment above)\",\"_verifier\":\"the address of SNARK verifier for this contract\"}},\"deposit(bytes32)\":{\"details\":\"Deposit funds into the contract. The caller must send (for ETH) or approve (for ERC20) value equal to or `denomination` of this instance.\",\"params\":{\"_commitment\":\"the note commitment, which is PedersenHash(nullifier + secret)\"}},\"getLastRoot()\":{\"details\":\"Returns the last root\"},\"hashLeftRight(bytes32,bytes32)\":{\"details\":\"Hash 2 tree leaves, returns MiMC(_left, _right)\"},\"isKnownRoot(bytes32)\":{\"details\":\"Whether the root is present in the root history\"},\"isSpent(bytes32)\":{\"details\":\"whether a note is already spent \"},\"isSpentArray(bytes32[])\":{\"details\":\"whether an array of notes is already spent \"},\"updateVerifier(address)\":{\"details\":\"allow operator to update SNARK verification keys. This is needed to update keys after the final trusted setup ceremony is held. After that operator rights are supposed to be transferred to zero address\"},\"withdraw(bytes,bytes32,bytes32,address,address,uint256,uint256)\":{\"details\":\"Withdraw a deposit from the contract. `proof` is a zkSNARK proof data, and input is an array of circuit public inputs `input` array consists of: - merkle root of all deposits in the contract - hash of unique deposit nullifier to prevent double spends - the recipient of funds - optional fee that goes to the transaction sender (usually a relay)\"}}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/Users/brianli/dotfiles/tornado-core/contracts/Tornado.sol\":\"Tornado\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/Users/brianli/dotfiles/tornado-core/contracts/MerkleTreeWithHistory.sol\":{\"keccak256\":\"0x671cc9268dd70c47d18795f7e37fc4df11763fcbcca026edcf163f4239036254\",\"urls\":[\"bzz-raw://9c36a207ed164b60a514eae89bfb15e5b4de4b346c4a89a7a1cb50a940bc699d\",\"dweb:/ipfs/QmbPEqFJAGMpYduLEFsbPazyBsYWcjRtpth8X26wCHALwk\"]},\"/Users/brianli/dotfiles/tornado-core/contracts/Tornado.sol\":{\"keccak256\":\"0x09c70432243629ef44697fd3d0ca89d3578e2b1c9f46d90757371edb163c14da\",\"urls\":[\"bzz-raw://d2a2c9fa85c32cb15793282792cd25c71804a10aa5a911e41f3bcd07f5df117e\",\"dweb:/ipfs/QmeQ1s6ypNnP7fossR4x9svuuLjcSBtQ5spUTmWGZY5Ljr\"]},\"@openzeppelin/contracts/utils/ReentrancyGuard.sol\":{\"keccak256\":\"0xb63221b23818d622bfd83d18e0968307e4fcb7a35536bdceded76e1cf8349acd\",\"urls\":[\"bzz-raw://44e1e8c22362c4708a8c3362735f1465f5b05e2f7315e16c7010d694ce019d73\",\"dweb:/ipfs/QmWj9g8X1hxkXRre2kwkEjLBetjuzmSbWHD81bsSojnBkS\"]}},\"version\":1}", + "metadata": "{\"compiler\":{\"version\":\"0.5.17+commit.d19bba13\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"contract IVerifier\",\"name\":\"_verifier\",\"type\":\"address\"},{\"internalType\":\"contract IFeeManager\",\"name\":\"_feeManager\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_denomination\",\"type\":\"uint256\"},{\"internalType\":\"uint32\",\"name\":\"_merkleTreeHeight\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"_operator\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"commitment\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"leafIndex\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"}],\"name\":\"Deposit\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"nullifierHash\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"relayer\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\"}],\"name\":\"Withdrawal\",\"type\":\"event\"},{\"constant\":true,\"inputs\":[],\"name\":\"FIELD_SIZE\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"ROOT_HISTORY_SIZE\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"ZERO_VALUE\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"_newOperator\",\"type\":\"address\"}],\"name\":\"changeOperator\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"commitments\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"currentRootIndex\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"denomination\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_commitment\",\"type\":\"bytes32\"}],\"name\":\"deposit\",\"outputs\":[],\"payable\":true,\"stateMutability\":\"payable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"feeManager\",\"outputs\":[{\"internalType\":\"contract IFeeManager\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"filledSubtrees\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"getLastRoot\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_left\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"_right\",\"type\":\"bytes32\"}],\"name\":\"hashLeftRight\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_root\",\"type\":\"bytes32\"}],\"name\":\"isKnownRoot\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_nullifierHash\",\"type\":\"bytes32\"}],\"name\":\"isSpent\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"_nullifierHashes\",\"type\":\"bytes32[]\"}],\"name\":\"isSpentArray\",\"outputs\":[{\"internalType\":\"bool[]\",\"name\":\"spent\",\"type\":\"bool[]\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"levels\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"nextIndex\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"nullifierHashes\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"operator\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"roots\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"_newVerifier\",\"type\":\"address\"}],\"name\":\"updateVerifier\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"verifier\",\"outputs\":[{\"internalType\":\"contract IVerifier\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"_proof\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"_root\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"_nullifierHash\",\"type\":\"bytes32\"},{\"internalType\":\"address payable\",\"name\":\"_recipient\",\"type\":\"address\"},{\"internalType\":\"address payable\",\"name\":\"_relayer\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_fee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_refund\",\"type\":\"uint256\"}],\"name\":\"withdraw\",\"outputs\":[],\"payable\":true,\"stateMutability\":\"payable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"zeros\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"methods\":{\"changeOperator(address)\":{\"details\":\"operator can change his address \"},\"constructor\":{\"details\":\"The constructor\",\"params\":{\"_denomination\":\"transfer amount for each deposit\",\"_merkleTreeHeight\":\"the height of deposits' Merkle Tree\",\"_operator\":\"operator address (see operator comment above)\",\"_verifier\":\"the address of SNARK verifier for this contract\"}},\"deposit(bytes32)\":{\"details\":\"Deposit funds into the contract. The caller must send (for ETH) or approve (for ERC20) value equal to or `denomination` of this instance.\",\"params\":{\"_commitment\":\"the note commitment, which is PedersenHash(nullifier + secret)\"}},\"getLastRoot()\":{\"details\":\"Returns the last root\"},\"hashLeftRight(bytes32,bytes32)\":{\"details\":\"Hash 2 tree leaves, returns MiMC(_left, _right)\"},\"isKnownRoot(bytes32)\":{\"details\":\"Whether the root is present in the root history\"},\"isSpent(bytes32)\":{\"details\":\"whether a note is already spent \"},\"isSpentArray(bytes32[])\":{\"details\":\"whether an array of notes is already spent \"},\"updateVerifier(address)\":{\"details\":\"allow operator to update SNARK verification keys. This is needed to update keys after the final trusted setup ceremony is held. After that operator rights are supposed to be transferred to zero address\"},\"withdraw(bytes,bytes32,bytes32,address,address,uint256,uint256)\":{\"details\":\"Withdraw a deposit from the contract. `proof` is a zkSNARK proof data, and input is an array of circuit public inputs `input` array consists of: - merkle root of all deposits in the contract - hash of unique deposit nullifier to prevent double spends - the recipient of funds - optional fee that goes to the transaction sender (usually a relay)\"}}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/Users/brianli/dotfiles/tornado-core/contracts/Tornado.sol\":\"Tornado\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/Users/brianli/dotfiles/tornado-core/contracts/MerkleTreeWithHistory.sol\":{\"keccak256\":\"0x671cc9268dd70c47d18795f7e37fc4df11763fcbcca026edcf163f4239036254\",\"urls\":[\"bzz-raw://9c36a207ed164b60a514eae89bfb15e5b4de4b346c4a89a7a1cb50a940bc699d\",\"dweb:/ipfs/QmbPEqFJAGMpYduLEFsbPazyBsYWcjRtpth8X26wCHALwk\"]},\"/Users/brianli/dotfiles/tornado-core/contracts/Tornado.sol\":{\"keccak256\":\"0xe7db8acb3efcecf95c7364f447ed1764c571dbf5090fd4641fe4668a965332eb\",\"urls\":[\"bzz-raw://45e790c247c38ed8ae473e3165c1148ea10a753cf6e9f9c8742394019be2aef6\",\"dweb:/ipfs/QmaGfk1ndvqur2NvCY3TWoKuorfBVShXeykKei18GDY582\"]},\"@openzeppelin/contracts/utils/ReentrancyGuard.sol\":{\"keccak256\":\"0xb63221b23818d622bfd83d18e0968307e4fcb7a35536bdceded76e1cf8349acd\",\"urls\":[\"bzz-raw://44e1e8c22362c4708a8c3362735f1465f5b05e2f7315e16c7010d694ce019d73\",\"dweb:/ipfs/QmWj9g8X1hxkXRre2kwkEjLBetjuzmSbWHD81bsSojnBkS\"]}},\"version\":1}", "bytecode": "0x", "deployedBytecode": "0x", "sourceMap": "", "deployedSourceMap": "", - "source": "// https://tornado.cash\n/*\n* d888888P dP a88888b. dP\n* 88 88 d8' `88 88\n* 88 .d8888b. 88d888b. 88d888b. .d8888b. .d888b88 .d8888b. 88 .d8888b. .d8888b. 88d888b.\n* 88 88' `88 88' `88 88' `88 88' `88 88' `88 88' `88 88 88' `88 Y8ooooo. 88' `88\n* 88 88. .88 88 88 88 88. .88 88. .88 88. .88 dP Y8. .88 88. .88 88 88 88\n* dP `88888P' dP dP dP `88888P8 `88888P8 `88888P' 88 Y88888P' `88888P8 `88888P' dP dP\n* ooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo\n*/\n\npragma solidity 0.5.17;\n\nimport \"./MerkleTreeWithHistory.sol\";\nimport \"@openzeppelin/contracts/utils/ReentrancyGuard.sol\";\n\ncontract IVerifier {\n function verifyProof(bytes memory _proof, uint256[6] memory _input) public returns(bool);\n}\n\ncontract Tornado is MerkleTreeWithHistory, ReentrancyGuard {\n uint256 public denomination;\n mapping(bytes32 => bool) public nullifierHashes;\n // we store all commitments just to prevent accidental deposits with the same commitment\n mapping(bytes32 => bool) public commitments;\n IVerifier public verifier;\n\n // operator can update snark verification key\n // after the final trusted setup ceremony operator rights are supposed to be transferred to zero address\n address public operator;\n modifier onlyOperator {\n require(msg.sender == operator, \"Only operator can call this function.\");\n _;\n }\n\n event Deposit(bytes32 indexed commitment, uint32 leafIndex, uint256 timestamp);\n event Withdrawal(address to, bytes32 nullifierHash, address indexed relayer, uint256 fee);\n\n /**\n @dev The constructor\n @param _verifier the address of SNARK verifier for this contract\n @param _denomination transfer amount for each deposit\n @param _merkleTreeHeight the height of deposits' Merkle Tree\n @param _operator operator address (see operator comment above)\n */\n constructor(\n IVerifier _verifier,\n uint256 _denomination,\n uint32 _merkleTreeHeight,\n address _operator\n ) MerkleTreeWithHistory(_merkleTreeHeight) public {\n require(_denomination > 0, \"denomination should be greater than 0\");\n verifier = _verifier;\n operator = _operator;\n denomination = _denomination;\n }\n\n /**\n @dev Deposit funds into the contract. The caller must send (for ETH) or approve (for ERC20) value equal to or `denomination` of this instance.\n @param _commitment the note commitment, which is PedersenHash(nullifier + secret)\n */\n function deposit(bytes32 _commitment) external payable nonReentrant {\n require(!commitments[_commitment], \"The commitment has been submitted\");\n\n uint32 insertedIndex = _insert(_commitment);\n commitments[_commitment] = true;\n _processDeposit();\n\n emit Deposit(_commitment, insertedIndex, block.timestamp);\n }\n\n /** @dev this function is defined in a child contract */\n function _processDeposit() internal;\n\n /**\n @dev Withdraw a deposit from the contract. `proof` is a zkSNARK proof data, and input is an array of circuit public inputs\n `input` array consists of:\n - merkle root of all deposits in the contract\n - hash of unique deposit nullifier to prevent double spends\n - the recipient of funds\n - optional fee that goes to the transaction sender (usually a relay)\n */\n function withdraw(bytes calldata _proof, bytes32 _root, bytes32 _nullifierHash, address payable _recipient, address payable _relayer, uint256 _fee, uint256 _refund) external payable nonReentrant {\n require(_fee <= denomination, \"Fee exceeds transfer value\");\n require(!nullifierHashes[_nullifierHash], \"The note has been already spent\");\n require(isKnownRoot(_root), \"Cannot find your merkle root\"); // Make sure to use a recent one\n require(verifier.verifyProof(_proof, [uint256(_root), uint256(_nullifierHash), uint256(_recipient), uint256(_relayer), _fee, _refund]), \"Invalid withdraw proof\");\n\n nullifierHashes[_nullifierHash] = true;\n _processWithdraw(_recipient, _relayer, _fee, _refund);\n emit Withdrawal(_recipient, _nullifierHash, _relayer, _fee);\n }\n\n /** @dev this function is defined in a child contract */\n function _processWithdraw(address payable _recipient, address payable _relayer, uint256 _fee, uint256 _refund) internal;\n\n /** @dev whether a note is already spent */\n function isSpent(bytes32 _nullifierHash) public view returns(bool) {\n return nullifierHashes[_nullifierHash];\n }\n\n /** @dev whether an array of notes is already spent */\n function isSpentArray(bytes32[] calldata _nullifierHashes) external view returns(bool[] memory spent) {\n spent = new bool[](_nullifierHashes.length);\n for(uint i = 0; i < _nullifierHashes.length; i++) {\n if (isSpent(_nullifierHashes[i])) {\n spent[i] = true;\n }\n }\n }\n\n /**\n @dev allow operator to update SNARK verification keys. This is needed to update keys after the final trusted setup ceremony is held.\n After that operator rights are supposed to be transferred to zero address\n */\n function updateVerifier(address _newVerifier) external onlyOperator {\n verifier = IVerifier(_newVerifier);\n }\n\n /** @dev operator can change his address */\n function changeOperator(address _newOperator) external onlyOperator {\n operator = _newOperator;\n }\n}\n", + "source": "pragma solidity 0.5.17;\n\nimport \"./MerkleTreeWithHistory.sol\";\nimport \"@openzeppelin/contracts/utils/ReentrancyGuard.sol\";\n\ncontract IVerifier {\n function verifyProof(bytes memory _proof, uint256[6] memory _input) public returns(bool);\n}\n\ncontract IFeeManager {\n function feeTo() external view returns (address);\n}\n\ncontract Tornado is MerkleTreeWithHistory, ReentrancyGuard {\n uint256 public denomination;\n mapping(bytes32 => bool) public nullifierHashes;\n // we store all commitments just to prevent accidental deposits with the same commitment\n mapping(bytes32 => bool) public commitments;\n IVerifier public verifier;\n IFeeManager public feeManager;\n\n // operator can update snark verification key\n // after the final trusted setup ceremony operator rights are supposed to be transferred to zero address\n address public operator;\n modifier onlyOperator {\n require(msg.sender == operator, \"Only operator can call this function.\");\n _;\n }\n\n event Deposit(bytes32 indexed commitment, uint32 leafIndex, uint256 timestamp);\n event Withdrawal(address to, bytes32 nullifierHash, address indexed relayer, uint256 fee);\n\n /**\n @dev The constructor\n @param _verifier the address of SNARK verifier for this contract\n @param _denomination transfer amount for each deposit\n @param _merkleTreeHeight the height of deposits' Merkle Tree\n @param _operator operator address (see operator comment above)\n */\n constructor(\n IVerifier _verifier,\n IFeeManager _feeManager,\n uint256 _denomination,\n uint32 _merkleTreeHeight,\n address _operator\n ) MerkleTreeWithHistory(_merkleTreeHeight) public {\n require(_denomination > 0, \"denomination should be greater than 0\");\n verifier = _verifier;\n feeManager = _feeManager;\n operator = _operator;\n denomination = _denomination;\n }\n\n /**\n @dev Deposit funds into the contract. The caller must send (for ETH) or approve (for ERC20) value equal to or `denomination` of this instance.\n @param _commitment the note commitment, which is PedersenHash(nullifier + secret)\n */\n function deposit(bytes32 _commitment) external payable nonReentrant {\n require(!commitments[_commitment], \"The commitment has been submitted\");\n\n uint32 insertedIndex = _insert(_commitment);\n commitments[_commitment] = true;\n _processDeposit();\n\n emit Deposit(_commitment, insertedIndex, block.timestamp);\n }\n\n /** @dev this function is defined in a child contract */\n function _processDeposit() internal;\n\n /**\n @dev Withdraw a deposit from the contract. `proof` is a zkSNARK proof data, and input is an array of circuit public inputs\n `input` array consists of:\n - merkle root of all deposits in the contract\n - hash of unique deposit nullifier to prevent double spends\n - the recipient of funds\n - optional fee that goes to the transaction sender (usually a relay)\n */\n function withdraw(bytes calldata _proof, bytes32 _root, bytes32 _nullifierHash, address payable _recipient, address payable _relayer, uint256 _fee, uint256 _refund) external payable nonReentrant {\n require(_fee <= denomination, \"Fee exceeds transfer value\");\n require(!nullifierHashes[_nullifierHash], \"The note has been already spent\");\n require(isKnownRoot(_root), \"Cannot find your merkle root\"); // Make sure to use a recent one\n require(verifier.verifyProof(_proof, [uint256(_root), uint256(_nullifierHash), uint256(_recipient), uint256(_relayer), _fee, _refund]), \"Invalid withdraw proof\");\n\n nullifierHashes[_nullifierHash] = true;\n _processWithdraw(_recipient, _relayer, _fee, _refund, feeManager.feeTo());\n emit Withdrawal(_recipient, _nullifierHash, _relayer, _fee);\n }\n\n /** @dev this function is defined in a child contract */\n function _processWithdraw(address payable _recipient, address payable _relayer, uint256 _relayer_fee, uint256 _refund, address _feeTo) internal;\n\n /** @dev whether a note is already spent */\n function isSpent(bytes32 _nullifierHash) public view returns(bool) {\n return nullifierHashes[_nullifierHash];\n }\n\n /** @dev whether an array of notes is already spent */\n function isSpentArray(bytes32[] calldata _nullifierHashes) external view returns(bool[] memory spent) {\n spent = new bool[](_nullifierHashes.length);\n for(uint i = 0; i < _nullifierHashes.length; i++) {\n if (isSpent(_nullifierHashes[i])) {\n spent[i] = true;\n }\n }\n }\n\n /**\n @dev allow operator to update SNARK verification keys. This is needed to update keys after the final trusted setup ceremony is held.\n After that operator rights are supposed to be transferred to zero address\n */\n function updateVerifier(address _newVerifier) external onlyOperator {\n verifier = IVerifier(_newVerifier);\n }\n\n /** @dev operator can change his address */\n function changeOperator(address _newOperator) external onlyOperator {\n operator = _newOperator;\n }\n}\n", "sourcePath": "/Users/brianli/dotfiles/tornado-core/contracts/Tornado.sol", "ast": { "absolutePath": "/Users/brianli/dotfiles/tornado-core/contracts/Tornado.sol", "exportedSymbols": { + "IFeeManager": [ + 654 + ], "IVerifier": [ - 891 + 648 ], "Tornado": [ - 1194 + 970 ] }, - "id": 1195, + "id": 971, "nodeType": "SourceUnit", "nodes": [ { - "id": 877, + "id": 634, "literals": [ "solidity", "0.5", ".17" ], "nodeType": "PragmaDirective", - "src": "755:23:8" + "src": "0:23:2" }, { "absolutePath": "/Users/brianli/dotfiles/tornado-core/contracts/MerkleTreeWithHistory.sol", "file": "./MerkleTreeWithHistory.sol", - "id": 878, + "id": 635, "nodeType": "ImportDirective", - "scope": 1195, - "sourceUnit": 695, - "src": "780:37:8", + "scope": 971, + "sourceUnit": 633, + "src": "25:37:2", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "@openzeppelin/contracts/utils/ReentrancyGuard.sol", "file": "@openzeppelin/contracts/utils/ReentrancyGuard.sol", - "id": 879, + "id": 636, "nodeType": "ImportDirective", - "scope": 1195, - "sourceUnit": 3246, - "src": "818:59:8", + "scope": 971, + "sourceUnit": 1001, + "src": "63:59:2", "symbolAliases": [], "unitAlias": "" }, @@ -577,9 +600,9 @@ "contractKind": "contract", "documentation": null, "fullyImplemented": false, - "id": 891, + "id": 648, "linearizedBaseContracts": [ - 891 + 648 ], "name": "IVerifier", "nodeType": "ContractDefinition", @@ -587,23 +610,23 @@ { "body": null, "documentation": null, - "id": 890, + "id": 647, "implemented": false, "kind": "function", "modifiers": [], "name": "verifyProof", "nodeType": "FunctionDefinition", "parameters": { - "id": 886, + "id": 643, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 881, + "id": 638, "name": "_proof", "nodeType": "VariableDeclaration", - "scope": 890, - "src": "923:19:8", + "scope": 647, + "src": "168:19:2", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -611,10 +634,10 @@ "typeString": "bytes" }, "typeName": { - "id": 880, + "id": 637, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "923:5:8", + "src": "168:5:2", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -625,11 +648,11 @@ }, { "constant": false, - "id": 885, + "id": 642, "name": "_input", "nodeType": "VariableDeclaration", - "scope": 890, - "src": "944:24:8", + "scope": 647, + "src": "189:24:2", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -638,27 +661,27 @@ }, "typeName": { "baseType": { - "id": 882, + "id": 639, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "944:7:8", + "src": "189:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 884, + "id": 641, "length": { "argumentTypes": null, "hexValue": "36", - "id": 883, + "id": 640, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "952:1:8", + "src": "197:1:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_6_by_1", @@ -667,7 +690,7 @@ "value": "6" }, "nodeType": "ArrayTypeName", - "src": "944:10:8", + "src": "189:10:2", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$6_storage_ptr", "typeString": "uint256[6]" @@ -677,19 +700,19 @@ "visibility": "internal" } ], - "src": "922:47:8" + "src": "167:47:2" }, "returnParameters": { - "id": 889, + "id": 646, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 888, + "id": 645, "name": "", "nodeType": "VariableDeclaration", - "scope": 890, - "src": "985:4:8", + "scope": 647, + "src": "230:4:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -697,10 +720,10 @@ "typeString": "bool" }, "typeName": { - "id": 887, + "id": 644, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "985:4:8", + "src": "230:4:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -710,17 +733,89 @@ "visibility": "internal" } ], - "src": "984:6:8" + "src": "229:6:2" }, - "scope": 891, - "src": "902:89:8", + "scope": 648, + "src": "147:89:2", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" } ], - "scope": 1195, - "src": "879:114:8" + "scope": 971, + "src": "124:114:2" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": false, + "id": 654, + "linearizedBaseContracts": [ + 654 + ], + "name": "IFeeManager", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": null, + "documentation": null, + "id": 653, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "feeTo", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 649, + "nodeType": "ParameterList", + "parameters": [], + "src": "279:2:2" + }, + "returnParameters": { + "id": 652, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 651, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 653, + "src": "305:7:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 650, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "305:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "304:9:2" + }, + "scope": 654, + "src": "265:49:2", + "stateMutability": "view", + "superFunction": null, + "visibility": "external" + } + ], + "scope": 971, + "src": "240:76:2" }, { "baseContracts": [ @@ -728,62 +823,62 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 892, + "id": 655, "name": "MerkleTreeWithHistory", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 694, - "src": "1015:21:8", + "referencedDeclaration": 632, + "src": "338:21:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_MerkleTreeWithHistory_$694", + "typeIdentifier": "t_contract$_MerkleTreeWithHistory_$632", "typeString": "contract MerkleTreeWithHistory" } }, - "id": 893, + "id": 656, "nodeType": "InheritanceSpecifier", - "src": "1015:21:8" + "src": "338:21:2" }, { "arguments": null, "baseName": { "contractScope": null, - "id": 894, + "id": 657, "name": "ReentrancyGuard", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3245, - "src": "1038:15:8", + "referencedDeclaration": 1000, + "src": "361:15:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_ReentrancyGuard_$3245", + "typeIdentifier": "t_contract$_ReentrancyGuard_$1000", "typeString": "contract ReentrancyGuard" } }, - "id": 895, + "id": 658, "nodeType": "InheritanceSpecifier", - "src": "1038:15:8" + "src": "361:15:2" } ], "contractDependencies": [ - 694, - 3245 + 632, + 1000 ], "contractKind": "contract", "documentation": null, "fullyImplemented": false, - "id": 1194, + "id": 970, "linearizedBaseContracts": [ - 1194, - 3245, - 694 + 970, + 1000, + 632 ], "name": "Tornado", "nodeType": "ContractDefinition", "nodes": [ { "constant": false, - "id": 897, + "id": 660, "name": "denomination", "nodeType": "VariableDeclaration", - "scope": 1194, - "src": "1058:27:8", + "scope": 970, + "src": "381:27:2", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -791,10 +886,10 @@ "typeString": "uint256" }, "typeName": { - "id": 896, + "id": 659, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1058:7:8", + "src": "381:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -805,11 +900,11 @@ }, { "constant": false, - "id": 901, + "id": 664, "name": "nullifierHashes", "nodeType": "VariableDeclaration", - "scope": 1194, - "src": "1089:47:8", + "scope": 970, + "src": "412:47:2", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -817,28 +912,28 @@ "typeString": "mapping(bytes32 => bool)" }, "typeName": { - "id": 900, + "id": 663, "keyType": { - "id": 898, + "id": 661, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "1097:7:8", + "src": "420:7:2", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "nodeType": "Mapping", - "src": "1089:24:8", + "src": "412:24:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", "typeString": "mapping(bytes32 => bool)" }, "valueType": { - "id": 899, + "id": 662, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "1108:4:8", + "src": "431:4:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -850,11 +945,11 @@ }, { "constant": false, - "id": 905, + "id": 668, "name": "commitments", "nodeType": "VariableDeclaration", - "scope": 1194, - "src": "1231:43:8", + "scope": 970, + "src": "554:43:2", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -862,28 +957,28 @@ "typeString": "mapping(bytes32 => bool)" }, "typeName": { - "id": 904, + "id": 667, "keyType": { - "id": 902, + "id": 665, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "1239:7:8", + "src": "562:7:2", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "nodeType": "Mapping", - "src": "1231:24:8", + "src": "554:24:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", "typeString": "mapping(bytes32 => bool)" }, "valueType": { - "id": 903, + "id": 666, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "1250:4:8", + "src": "573:4:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -895,26 +990,26 @@ }, { "constant": false, - "id": 907, + "id": 670, "name": "verifier", "nodeType": "VariableDeclaration", - "scope": 1194, - "src": "1278:25:8", + "scope": 970, + "src": "601:25:2", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_IVerifier_$891", + "typeIdentifier": "t_contract$_IVerifier_$648", "typeString": "contract IVerifier" }, "typeName": { "contractScope": null, - "id": 906, + "id": 669, "name": "IVerifier", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 891, - "src": "1278:9:8", + "referencedDeclaration": 648, + "src": "601:9:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_IVerifier_$891", + "typeIdentifier": "t_contract$_IVerifier_$648", "typeString": "contract IVerifier" } }, @@ -923,11 +1018,39 @@ }, { "constant": false, - "id": 909, + "id": 672, + "name": "feeManager", + "nodeType": "VariableDeclaration", + "scope": 970, + "src": "630:29:2", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IFeeManager_$654", + "typeString": "contract IFeeManager" + }, + "typeName": { + "contractScope": null, + "id": 671, + "name": "IFeeManager", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 654, + "src": "630:11:2", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IFeeManager_$654", + "typeString": "contract IFeeManager" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 674, "name": "operator", "nodeType": "VariableDeclaration", - "scope": 1194, - "src": "1463:23:8", + "scope": 970, + "src": "819:23:2", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -935,10 +1058,10 @@ "typeString": "address" }, "typeName": { - "id": 908, + "id": 673, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1463:7:8", + "src": "819:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -950,9 +1073,9 @@ }, { "body": { - "id": 920, + "id": 685, "nodeType": "Block", - "src": "1512:90:8", + "src": "868:90:2", "statements": [ { "expression": { @@ -964,7 +1087,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 915, + "id": 680, "isConstant": false, "isLValue": false, "isPure": false, @@ -973,18 +1096,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 912, + "id": 677, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3260, - "src": "1526:3:8", + "referencedDeclaration": 1015, + "src": "882:3:2", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 913, + "id": 678, "isConstant": false, "isLValue": false, "isPure": false, @@ -992,7 +1115,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "1526:10:8", + "src": "882:10:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -1002,18 +1125,18 @@ "operator": "==", "rightExpression": { "argumentTypes": null, - "id": 914, + "id": 679, "name": "operator", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 909, - "src": "1540:8:8", + "referencedDeclaration": 674, + "src": "896:8:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "1526:22:8", + "src": "882:22:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1022,14 +1145,14 @@ { "argumentTypes": null, "hexValue": "4f6e6c79206f70657261746f722063616e2063616c6c20746869732066756e6374696f6e2e", - "id": 916, + "id": 681, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "1550:39:8", + "src": "906:39:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_e8393660073679be7a6133571fe2ca8983a31a683c72e9055f401ac33a2efffc", @@ -1049,21 +1172,21 @@ "typeString": "literal_string \"Only operator can call this function.\"" } ], - "id": 911, + "id": 676, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 3263, - 3264 + 1018, + 1019 ], - "referencedDeclaration": 3264, - "src": "1518:7:8", + "referencedDeclaration": 1019, + "src": "874:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 917, + "id": 682, "isConstant": false, "isLValue": false, "isPure": false, @@ -1071,54 +1194,54 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1518:72:8", + "src": "874:72:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 918, + "id": 683, "nodeType": "ExpressionStatement", - "src": "1518:72:8" + "src": "874:72:2" }, { - "id": 919, + "id": 684, "nodeType": "PlaceholderStatement", - "src": "1596:1:8" + "src": "952:1:2" } ] }, "documentation": null, - "id": 921, + "id": 686, "name": "onlyOperator", "nodeType": "ModifierDefinition", "parameters": { - "id": 910, + "id": 675, "nodeType": "ParameterList", "parameters": [], - "src": "1512:0:8" + "src": "868:0:2" }, - "src": "1490:112:8", + "src": "846:112:2", "visibility": "internal" }, { "anonymous": false, "documentation": null, - "id": 929, + "id": 694, "name": "Deposit", "nodeType": "EventDefinition", "parameters": { - "id": 928, + "id": 693, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 923, + "id": 688, "indexed": true, "name": "commitment", "nodeType": "VariableDeclaration", - "scope": 929, - "src": "1620:26:8", + "scope": 694, + "src": "976:26:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1126,10 +1249,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 922, + "id": 687, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "1620:7:8", + "src": "976:7:2", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -1140,12 +1263,12 @@ }, { "constant": false, - "id": 925, + "id": 690, "indexed": false, "name": "leafIndex", "nodeType": "VariableDeclaration", - "scope": 929, - "src": "1648:16:8", + "scope": 694, + "src": "1004:16:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1153,10 +1276,10 @@ "typeString": "uint32" }, "typeName": { - "id": 924, + "id": 689, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "1648:6:8", + "src": "1004:6:2", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -1167,12 +1290,12 @@ }, { "constant": false, - "id": 927, + "id": 692, "indexed": false, "name": "timestamp", "nodeType": "VariableDeclaration", - "scope": 929, - "src": "1666:17:8", + "scope": 694, + "src": "1022:17:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1180,10 +1303,10 @@ "typeString": "uint256" }, "typeName": { - "id": 926, + "id": 691, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1666:7:8", + "src": "1022:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1193,28 +1316,28 @@ "visibility": "internal" } ], - "src": "1619:65:8" + "src": "975:65:2" }, - "src": "1606:79:8" + "src": "962:79:2" }, { "anonymous": false, "documentation": null, - "id": 939, + "id": 704, "name": "Withdrawal", "nodeType": "EventDefinition", "parameters": { - "id": 938, + "id": 703, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 931, + "id": 696, "indexed": false, "name": "to", "nodeType": "VariableDeclaration", - "scope": 939, - "src": "1705:10:8", + "scope": 704, + "src": "1061:10:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1222,10 +1345,10 @@ "typeString": "address" }, "typeName": { - "id": 930, + "id": 695, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1705:7:8", + "src": "1061:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -1237,12 +1360,12 @@ }, { "constant": false, - "id": 933, + "id": 698, "indexed": false, "name": "nullifierHash", "nodeType": "VariableDeclaration", - "scope": 939, - "src": "1717:21:8", + "scope": 704, + "src": "1073:21:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1250,10 +1373,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 932, + "id": 697, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "1717:7:8", + "src": "1073:7:2", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -1264,12 +1387,12 @@ }, { "constant": false, - "id": 935, + "id": 700, "indexed": true, "name": "relayer", "nodeType": "VariableDeclaration", - "scope": 939, - "src": "1740:23:8", + "scope": 704, + "src": "1096:23:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1277,10 +1400,10 @@ "typeString": "address" }, "typeName": { - "id": 934, + "id": 699, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1740:7:8", + "src": "1096:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -1292,12 +1415,12 @@ }, { "constant": false, - "id": 937, + "id": 702, "indexed": false, "name": "fee", "nodeType": "VariableDeclaration", - "scope": 939, - "src": "1765:11:8", + "scope": 704, + "src": "1121:11:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1305,10 +1428,10 @@ "typeString": "uint256" }, "typeName": { - "id": 936, + "id": 701, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1765:7:8", + "src": "1121:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1318,15 +1441,15 @@ "visibility": "internal" } ], - "src": "1704:73:8" + "src": "1060:73:2" }, - "src": "1688:90:8" + "src": "1044:90:2" }, { "body": { - "id": 972, + "id": 743, "nodeType": "Block", - "src": "2246:164:8", + "src": "1631:194:2", "statements": [ { "expression": { @@ -1338,19 +1461,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 956, + "id": 723, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 954, + "id": 721, "name": "_denomination", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 943, - "src": "2260:13:8", + "referencedDeclaration": 710, + "src": "1645:13:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1361,14 +1484,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 955, + "id": 722, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2276:1:8", + "src": "1661:1:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -1376,7 +1499,7 @@ }, "value": "0" }, - "src": "2260:17:8", + "src": "1645:17:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1385,14 +1508,14 @@ { "argumentTypes": null, "hexValue": "64656e6f6d696e6174696f6e2073686f756c642062652067726561746572207468616e2030", - "id": 957, + "id": 724, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "2279:39:8", + "src": "1664:39:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_04818fb803bf7e7ff6c9059d97eae335b77b108931ead0a529924d35ccaf3fc8", @@ -1412,21 +1535,21 @@ "typeString": "literal_string \"denomination should be greater than 0\"" } ], - "id": 953, + "id": 720, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 3263, - 3264 + 1018, + 1019 ], - "referencedDeclaration": 3264, - "src": "2252:7:8", + "referencedDeclaration": 1019, + "src": "1637:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 958, + "id": 725, "isConstant": false, "isLValue": false, "isPure": false, @@ -1434,34 +1557,34 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2252:67:8", + "src": "1637:67:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 959, + "id": 726, "nodeType": "ExpressionStatement", - "src": "2252:67:8" + "src": "1637:67:2" }, { "expression": { "argumentTypes": null, - "id": 962, + "id": 729, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 960, + "id": 727, "name": "verifier", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 907, - "src": "2325:8:8", + "referencedDeclaration": 670, + "src": "1710:8:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_IVerifier_$891", + "typeIdentifier": "t_contract$_IVerifier_$648", "typeString": "contract IVerifier" } }, @@ -1469,43 +1592,89 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 961, + "id": 728, "name": "_verifier", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 941, - "src": "2336:9:8", + "referencedDeclaration": 706, + "src": "1721:9:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_IVerifier_$891", + "typeIdentifier": "t_contract$_IVerifier_$648", "typeString": "contract IVerifier" } }, - "src": "2325:20:8", + "src": "1710:20:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_IVerifier_$891", + "typeIdentifier": "t_contract$_IVerifier_$648", "typeString": "contract IVerifier" } }, - "id": 963, + "id": 730, "nodeType": "ExpressionStatement", - "src": "2325:20:8" + "src": "1710:20:2" }, { "expression": { "argumentTypes": null, - "id": 966, + "id": 733, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 964, + "id": 731, + "name": "feeManager", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 672, + "src": "1736:10:2", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IFeeManager_$654", + "typeString": "contract IFeeManager" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 732, + "name": "_feeManager", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 708, + "src": "1749:11:2", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IFeeManager_$654", + "typeString": "contract IFeeManager" + } + }, + "src": "1736:24:2", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IFeeManager_$654", + "typeString": "contract IFeeManager" + } + }, + "id": 734, + "nodeType": "ExpressionStatement", + "src": "1736:24:2" + }, + { + "expression": { + "argumentTypes": null, + "id": 737, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 735, "name": "operator", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 909, - "src": "2351:8:8", + "referencedDeclaration": 674, + "src": "1766:8:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1515,43 +1684,43 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 965, + "id": 736, "name": "_operator", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 947, - "src": "2362:9:8", + "referencedDeclaration": 714, + "src": "1777:9:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "2351:20:8", + "src": "1766:20:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 967, + "id": 738, "nodeType": "ExpressionStatement", - "src": "2351:20:8" + "src": "1766:20:2" }, { "expression": { "argumentTypes": null, - "id": 970, + "id": 741, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 968, + "id": 739, "name": "denomination", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 897, - "src": "2377:12:8", + "referencedDeclaration": 660, + "src": "1792:12:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1561,31 +1730,31 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 969, + "id": 740, "name": "_denomination", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 943, - "src": "2392:13:8", + "referencedDeclaration": 710, + "src": "1807:13:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "2377:28:8", + "src": "1792:28:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 971, + "id": 742, "nodeType": "ExpressionStatement", - "src": "2377:28:8" + "src": "1792:28:2" } ] }, "documentation": "@dev The constructor\n@param _verifier the address of SNARK verifier for this contract\n@param _denomination transfer amount for each deposit\n@param _merkleTreeHeight the height of deposits' Merkle Tree\n@param _operator operator address (see operator comment above)", - "id": 973, + "id": 744, "implemented": true, "kind": "constructor", "modifiers": [ @@ -1593,64 +1762,64 @@ "arguments": [ { "argumentTypes": null, - "id": 950, + "id": 717, "name": "_merkleTreeHeight", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 945, - "src": "2220:17:8", + "referencedDeclaration": 712, + "src": "1605:17:2", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } } ], - "id": 951, + "id": 718, "modifierName": { "argumentTypes": null, - "id": 949, + "id": 716, "name": "MerkleTreeWithHistory", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 694, - "src": "2198:21:8", + "referencedDeclaration": 632, + "src": "1583:21:2", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_MerkleTreeWithHistory_$694_$", + "typeIdentifier": "t_type$_t_contract$_MerkleTreeWithHistory_$632_$", "typeString": "type(contract MerkleTreeWithHistory)" } }, "nodeType": "ModifierInvocation", - "src": "2198:40:8" + "src": "1583:40:2" } ], "name": "", "nodeType": "FunctionDefinition", "parameters": { - "id": 948, + "id": 715, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 941, + "id": 706, "name": "_verifier", "nodeType": "VariableDeclaration", - "scope": 973, - "src": "2094:19:8", + "scope": 744, + "src": "1450:19:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_IVerifier_$891", + "typeIdentifier": "t_contract$_IVerifier_$648", "typeString": "contract IVerifier" }, "typeName": { "contractScope": null, - "id": 940, + "id": 705, "name": "IVerifier", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 891, - "src": "2094:9:8", + "referencedDeclaration": 648, + "src": "1450:9:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_IVerifier_$891", + "typeIdentifier": "t_contract$_IVerifier_$648", "typeString": "contract IVerifier" } }, @@ -1659,11 +1828,39 @@ }, { "constant": false, - "id": 943, + "id": 708, + "name": "_feeManager", + "nodeType": "VariableDeclaration", + "scope": 744, + "src": "1475:23:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IFeeManager_$654", + "typeString": "contract IFeeManager" + }, + "typeName": { + "contractScope": null, + "id": 707, + "name": "IFeeManager", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 654, + "src": "1475:11:2", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IFeeManager_$654", + "typeString": "contract IFeeManager" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 710, "name": "_denomination", "nodeType": "VariableDeclaration", - "scope": 973, - "src": "2119:21:8", + "scope": 744, + "src": "1504:21:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1671,10 +1868,10 @@ "typeString": "uint256" }, "typeName": { - "id": 942, + "id": 709, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2119:7:8", + "src": "1504:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1685,11 +1882,11 @@ }, { "constant": false, - "id": 945, + "id": 712, "name": "_merkleTreeHeight", "nodeType": "VariableDeclaration", - "scope": 973, - "src": "2146:24:8", + "scope": 744, + "src": "1531:24:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1697,10 +1894,10 @@ "typeString": "uint32" }, "typeName": { - "id": 944, + "id": 711, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "2146:6:8", + "src": "1531:6:2", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -1711,11 +1908,11 @@ }, { "constant": false, - "id": 947, + "id": 714, "name": "_operator", "nodeType": "VariableDeclaration", - "scope": 973, - "src": "2176:17:8", + "scope": 744, + "src": "1561:17:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1723,10 +1920,10 @@ "typeString": "address" }, "typeName": { - "id": 946, + "id": 713, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2176:7:8", + "src": "1561:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -1737,25 +1934,25 @@ "visibility": "internal" } ], - "src": "2088:109:8" + "src": "1444:138:2" }, "returnParameters": { - "id": 952, + "id": 719, "nodeType": "ParameterList", "parameters": [], - "src": "2246:0:8" + "src": "1631:0:2" }, - "scope": 1194, - "src": "2077:333:8", + "scope": 970, + "src": "1433:392:2", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 1010, + "id": 781, "nodeType": "Block", - "src": "2726:256:8", + "src": "2141:256:2", "statements": [ { "expression": { @@ -1763,7 +1960,7 @@ "arguments": [ { "argumentTypes": null, - "id": 984, + "id": 755, "isConstant": false, "isLValue": false, "isPure": false, @@ -1771,31 +1968,31 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "2740:25:8", + "src": "2155:25:2", "subExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 981, + "id": 752, "name": "commitments", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 905, - "src": "2741:11:8", + "referencedDeclaration": 668, + "src": "2156:11:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", "typeString": "mapping(bytes32 => bool)" } }, - "id": 983, + "id": 754, "indexExpression": { "argumentTypes": null, - "id": 982, + "id": 753, "name": "_commitment", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 975, - "src": "2753:11:8", + "referencedDeclaration": 746, + "src": "2168:11:2", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -1806,7 +2003,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "2741:24:8", + "src": "2156:24:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1820,14 +2017,14 @@ { "argumentTypes": null, "hexValue": "54686520636f6d6d69746d656e7420686173206265656e207375626d6974746564", - "id": 985, + "id": 756, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "2767:35:8", + "src": "2182:35:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_ae5f231636554c1cb3bf839359e4dfbb338ccb221c7c5dbdf2da91ddc6e2ee6b", @@ -1847,21 +2044,21 @@ "typeString": "literal_string \"The commitment has been submitted\"" } ], - "id": 980, + "id": 751, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 3263, - 3264 + 1018, + 1019 ], - "referencedDeclaration": 3264, - "src": "2732:7:8", + "referencedDeclaration": 1019, + "src": "2147:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 986, + "id": 757, "isConstant": false, "isLValue": false, "isPure": false, @@ -1869,28 +2066,28 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2732:71:8", + "src": "2147:71:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 987, + "id": 758, "nodeType": "ExpressionStatement", - "src": "2732:71:8" + "src": "2147:71:2" }, { "assignments": [ - 989 + 760 ], "declarations": [ { "constant": false, - "id": 989, + "id": 760, "name": "insertedIndex", "nodeType": "VariableDeclaration", - "scope": 1010, - "src": "2810:20:8", + "scope": 781, + "src": "2225:20:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1898,10 +2095,10 @@ "typeString": "uint32" }, "typeName": { - "id": 988, + "id": 759, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "2810:6:8", + "src": "2225:6:2", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -1911,18 +2108,18 @@ "visibility": "internal" } ], - "id": 993, + "id": 764, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 991, + "id": 762, "name": "_commitment", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 975, - "src": "2841:11:8", + "referencedDeclaration": 746, + "src": "2256:11:2", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -1936,18 +2133,18 @@ "typeString": "bytes32" } ], - "id": 990, + "id": 761, "name": "_insert", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 636, - "src": "2833:7:8", + "referencedDeclaration": 574, + "src": "2248:7:2", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$returns$_t_uint32_$", "typeString": "function (bytes32) returns (uint32)" } }, - "id": 992, + "id": 763, "isConstant": false, "isLValue": false, "isPure": false, @@ -1955,19 +2152,19 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2833:20:8", + "src": "2248:20:2", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, "nodeType": "VariableDeclarationStatement", - "src": "2810:43:8" + "src": "2225:43:2" }, { "expression": { "argumentTypes": null, - "id": 998, + "id": 769, "isConstant": false, "isLValue": false, "isPure": false, @@ -1976,26 +2173,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 994, + "id": 765, "name": "commitments", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 905, - "src": "2859:11:8", + "referencedDeclaration": 668, + "src": "2274:11:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", "typeString": "mapping(bytes32 => bool)" } }, - "id": 996, + "id": 767, "indexExpression": { "argumentTypes": null, - "id": 995, + "id": 766, "name": "_commitment", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 975, - "src": "2871:11:8", + "referencedDeclaration": 746, + "src": "2286:11:2", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -2006,7 +2203,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "2859:24:8", + "src": "2274:24:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2017,14 +2214,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "74727565", - "id": 997, + "id": 768, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "2886:4:8", + "src": "2301:4:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -2032,15 +2229,15 @@ }, "value": "true" }, - "src": "2859:31:8", + "src": "2274:31:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 999, + "id": 770, "nodeType": "ExpressionStatement", - "src": "2859:31:8" + "src": "2274:31:2" }, { "expression": { @@ -2048,18 +2245,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 1000, + "id": 771, "name": "_processDeposit", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1014, - "src": "2896:15:8", + "referencedDeclaration": 785, + "src": "2311:15:2", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", "typeString": "function ()" } }, - "id": 1001, + "id": 772, "isConstant": false, "isLValue": false, "isPure": false, @@ -2067,15 +2264,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2896:17:8", + "src": "2311:17:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1002, + "id": 773, "nodeType": "ExpressionStatement", - "src": "2896:17:8" + "src": "2311:17:2" }, { "eventCall": { @@ -2083,12 +2280,12 @@ "arguments": [ { "argumentTypes": null, - "id": 1004, + "id": 775, "name": "_commitment", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 975, - "src": "2933:11:8", + "referencedDeclaration": 746, + "src": "2348:11:2", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -2096,12 +2293,12 @@ }, { "argumentTypes": null, - "id": 1005, + "id": 776, "name": "insertedIndex", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 989, - "src": "2946:13:8", + "referencedDeclaration": 760, + "src": "2361:13:2", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -2111,18 +2308,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1006, + "id": 777, "name": "block", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3250, - "src": "2961:5:8", + "referencedDeclaration": 1005, + "src": "2376:5:2", "typeDescriptions": { "typeIdentifier": "t_magic_block", "typeString": "block" } }, - "id": 1007, + "id": 778, "isConstant": false, "isLValue": false, "isPure": false, @@ -2130,7 +2327,7 @@ "memberName": "timestamp", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "2961:15:8", + "src": "2376:15:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2152,18 +2349,18 @@ "typeString": "uint256" } ], - "id": 1003, + "id": 774, "name": "Deposit", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 929, - "src": "2925:7:8", + "referencedDeclaration": 694, + "src": "2340:7:2", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_uint32_$_t_uint256_$returns$__$", "typeString": "function (bytes32,uint32,uint256)" } }, - "id": 1008, + "id": 779, "isConstant": false, "isLValue": false, "isPure": false, @@ -2171,56 +2368,56 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2925:52:8", + "src": "2340:52:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1009, + "id": 780, "nodeType": "EmitStatement", - "src": "2920:57:8" + "src": "2335:57:2" } ] }, "documentation": "@dev Deposit funds into the contract. The caller must send (for ETH) or approve (for ERC20) value equal to or `denomination` of this instance.\n@param _commitment the note commitment, which is PedersenHash(nullifier + secret)", - "id": 1011, + "id": 782, "implemented": true, "kind": "function", "modifiers": [ { "arguments": null, - "id": 978, + "id": 749, "modifierName": { "argumentTypes": null, - "id": 977, + "id": 748, "name": "nonReentrant", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3244, - "src": "2713:12:8", + "referencedDeclaration": 999, + "src": "2128:12:2", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "2713:12:8" + "src": "2128:12:2" } ], "name": "deposit", "nodeType": "FunctionDefinition", "parameters": { - "id": 976, + "id": 747, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 975, + "id": 746, "name": "_commitment", "nodeType": "VariableDeclaration", - "scope": 1011, - "src": "2675:19:8", + "scope": 782, + "src": "2090:19:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2228,10 +2425,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 974, + "id": 745, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "2675:7:8", + "src": "2090:7:2", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -2241,16 +2438,16 @@ "visibility": "internal" } ], - "src": "2674:21:8" + "src": "2089:21:2" }, "returnParameters": { - "id": 979, + "id": 750, "nodeType": "ParameterList", "parameters": [], - "src": "2726:0:8" + "src": "2141:0:2" }, - "scope": 1194, - "src": "2658:324:8", + "scope": 970, + "src": "2073:324:2", "stateMutability": "payable", "superFunction": null, "visibility": "external" @@ -2258,35 +2455,35 @@ { "body": null, "documentation": "@dev this function is defined in a child contract ", - "id": 1014, + "id": 785, "implemented": false, "kind": "function", "modifiers": [], "name": "_processDeposit", "nodeType": "FunctionDefinition", "parameters": { - "id": 1012, + "id": 783, "nodeType": "ParameterList", "parameters": [], - "src": "3069:2:8" + "src": "2484:2:2" }, "returnParameters": { - "id": 1013, + "id": 784, "nodeType": "ParameterList", "parameters": [], - "src": "3080:0:8" + "src": "2495:0:2" }, - "scope": 1194, - "src": "3045:36:8", + "scope": 970, + "src": "2460:36:2", "stateMutability": "nonpayable", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 1098, + "id": 872, "nodeType": "Block", - "src": "3673:586:8", + "src": "3088:606:2", "statements": [ { "expression": { @@ -2298,19 +2495,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1036, + "id": 807, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1034, + "id": 805, "name": "_fee", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1026, - "src": "3687:4:8", + "referencedDeclaration": 797, + "src": "3102:4:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2320,18 +2517,18 @@ "operator": "<=", "rightExpression": { "argumentTypes": null, - "id": 1035, + "id": 806, "name": "denomination", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 897, - "src": "3695:12:8", + "referencedDeclaration": 660, + "src": "3110:12:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3687:20:8", + "src": "3102:20:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2340,14 +2537,14 @@ { "argumentTypes": null, "hexValue": "4665652065786365656473207472616e736665722076616c7565", - "id": 1037, + "id": 808, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "3709:28:8", + "src": "3124:28:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_2ce218df547d416f80ea8a5deadaf9453d23523ffa5f2e880a48adfdb4053a9c", @@ -2367,21 +2564,21 @@ "typeString": "literal_string \"Fee exceeds transfer value\"" } ], - "id": 1033, + "id": 804, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 3263, - 3264 + 1018, + 1019 ], - "referencedDeclaration": 3264, - "src": "3679:7:8", + "referencedDeclaration": 1019, + "src": "3094:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1038, + "id": 809, "isConstant": false, "isLValue": false, "isPure": false, @@ -2389,15 +2586,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3679:59:8", + "src": "3094:59:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1039, + "id": 810, "nodeType": "ExpressionStatement", - "src": "3679:59:8" + "src": "3094:59:2" }, { "expression": { @@ -2405,7 +2602,7 @@ "arguments": [ { "argumentTypes": null, - "id": 1044, + "id": 815, "isConstant": false, "isLValue": false, "isPure": false, @@ -2413,31 +2610,31 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "3752:32:8", + "src": "3167:32:2", "subExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1041, + "id": 812, "name": "nullifierHashes", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 901, - "src": "3753:15:8", + "referencedDeclaration": 664, + "src": "3168:15:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", "typeString": "mapping(bytes32 => bool)" } }, - "id": 1043, + "id": 814, "indexExpression": { "argumentTypes": null, - "id": 1042, + "id": 813, "name": "_nullifierHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1020, - "src": "3769:14:8", + "referencedDeclaration": 791, + "src": "3184:14:2", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -2448,7 +2645,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3753:31:8", + "src": "3168:31:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2462,14 +2659,14 @@ { "argumentTypes": null, "hexValue": "546865206e6f746520686173206265656e20616c7265616479207370656e74", - "id": 1045, + "id": 816, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "3786:33:8", + "src": "3201:33:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_a1bef92d7a18b1c6975dc8de68df6140a52afea05a2c6c91da2b1562c617e896", @@ -2489,21 +2686,21 @@ "typeString": "literal_string \"The note has been already spent\"" } ], - "id": 1040, + "id": 811, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 3263, - 3264 + 1018, + 1019 ], - "referencedDeclaration": 3264, - "src": "3744:7:8", + "referencedDeclaration": 1019, + "src": "3159:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1046, + "id": 817, "isConstant": false, "isLValue": false, "isPure": false, @@ -2511,15 +2708,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3744:76:8", + "src": "3159:76:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1047, + "id": 818, "nodeType": "ExpressionStatement", - "src": "3744:76:8" + "src": "3159:76:2" }, { "expression": { @@ -2530,12 +2727,12 @@ "arguments": [ { "argumentTypes": null, - "id": 1050, + "id": 821, "name": "_root", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1018, - "src": "3846:5:8", + "referencedDeclaration": 789, + "src": "3261:5:2", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -2549,18 +2746,18 @@ "typeString": "bytes32" } ], - "id": 1049, + "id": 820, "name": "isKnownRoot", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 683, - "src": "3834:11:8", + "referencedDeclaration": 621, + "src": "3249:11:2", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_bool_$", "typeString": "function (bytes32) view returns (bool)" } }, - "id": 1051, + "id": 822, "isConstant": false, "isLValue": false, "isPure": false, @@ -2568,7 +2765,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3834:18:8", + "src": "3249:18:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2577,14 +2774,14 @@ { "argumentTypes": null, "hexValue": "43616e6e6f742066696e6420796f7572206d65726b6c6520726f6f74", - "id": 1052, + "id": 823, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "3854:30:8", + "src": "3269:30:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_2a69086763073955418d2fd7dfee3d2f1fbc5b21047a216b7855d3f313d8e204", @@ -2604,21 +2801,21 @@ "typeString": "literal_string \"Cannot find your merkle root\"" } ], - "id": 1048, + "id": 819, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 3263, - 3264 + 1018, + 1019 ], - "referencedDeclaration": 3264, - "src": "3826:7:8", + "referencedDeclaration": 1019, + "src": "3241:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1053, + "id": 824, "isConstant": false, "isLValue": false, "isPure": false, @@ -2626,15 +2823,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3826:59:8", + "src": "3241:59:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1054, + "id": 825, "nodeType": "ExpressionStatement", - "src": "3826:59:8" + "src": "3241:59:2" }, { "expression": { @@ -2645,12 +2842,12 @@ "arguments": [ { "argumentTypes": null, - "id": 1058, + "id": 829, "name": "_proof", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1016, - "src": "3953:6:8", + "referencedDeclaration": 787, + "src": "3368:6:2", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes calldata" @@ -2664,12 +2861,12 @@ "arguments": [ { "argumentTypes": null, - "id": 1060, + "id": 831, "name": "_root", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1018, - "src": "3970:5:8", + "referencedDeclaration": 789, + "src": "3385:5:2", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -2683,20 +2880,20 @@ "typeString": "bytes32" } ], - "id": 1059, + "id": 830, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "3962:7:8", + "src": "3377:7:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint256_$", "typeString": "type(uint256)" }, "typeName": "uint256" }, - "id": 1061, + "id": 832, "isConstant": false, "isLValue": false, "isPure": false, @@ -2704,7 +2901,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3962:14:8", + "src": "3377:14:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2715,12 +2912,12 @@ "arguments": [ { "argumentTypes": null, - "id": 1063, + "id": 834, "name": "_nullifierHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1020, - "src": "3986:14:8", + "referencedDeclaration": 791, + "src": "3401:14:2", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -2734,20 +2931,20 @@ "typeString": "bytes32" } ], - "id": 1062, + "id": 833, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "3978:7:8", + "src": "3393:7:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint256_$", "typeString": "type(uint256)" }, "typeName": "uint256" }, - "id": 1064, + "id": 835, "isConstant": false, "isLValue": false, "isPure": false, @@ -2755,7 +2952,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3978:23:8", + "src": "3393:23:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2766,12 +2963,12 @@ "arguments": [ { "argumentTypes": null, - "id": 1066, + "id": 837, "name": "_recipient", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1022, - "src": "4011:10:8", + "referencedDeclaration": 793, + "src": "3426:10:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -2785,20 +2982,20 @@ "typeString": "address payable" } ], - "id": 1065, + "id": 836, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "4003:7:8", + "src": "3418:7:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint256_$", "typeString": "type(uint256)" }, "typeName": "uint256" }, - "id": 1067, + "id": 838, "isConstant": false, "isLValue": false, "isPure": false, @@ -2806,7 +3003,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4003:19:8", + "src": "3418:19:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2817,12 +3014,12 @@ "arguments": [ { "argumentTypes": null, - "id": 1069, + "id": 840, "name": "_relayer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1024, - "src": "4032:8:8", + "referencedDeclaration": 795, + "src": "3447:8:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -2836,20 +3033,20 @@ "typeString": "address payable" } ], - "id": 1068, + "id": 839, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "4024:7:8", + "src": "3439:7:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint256_$", "typeString": "type(uint256)" }, "typeName": "uint256" }, - "id": 1070, + "id": 841, "isConstant": false, "isLValue": false, "isPure": false, @@ -2857,7 +3054,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4024:17:8", + "src": "3439:17:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2865,12 +3062,12 @@ }, { "argumentTypes": null, - "id": 1071, + "id": 842, "name": "_fee", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1026, - "src": "4043:4:8", + "referencedDeclaration": 797, + "src": "3458:4:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2878,26 +3075,26 @@ }, { "argumentTypes": null, - "id": 1072, + "id": 843, "name": "_refund", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1028, - "src": "4049:7:8", + "referencedDeclaration": 799, + "src": "3464:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], - "id": 1073, + "id": 844, "isConstant": false, "isInlineArray": true, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "3961:96:8", + "src": "3376:96:2", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$6_memory_ptr", "typeString": "uint256[6] memory" @@ -2917,32 +3114,32 @@ ], "expression": { "argumentTypes": null, - "id": 1056, + "id": 827, "name": "verifier", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 907, - "src": "3932:8:8", + "referencedDeclaration": 670, + "src": "3347:8:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_IVerifier_$891", + "typeIdentifier": "t_contract$_IVerifier_$648", "typeString": "contract IVerifier" } }, - "id": 1057, + "id": 828, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "verifyProof", "nodeType": "MemberAccess", - "referencedDeclaration": 890, - "src": "3932:20:8", + "referencedDeclaration": 647, + "src": "3347:20:2", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_bytes_memory_ptr_$_t_array$_t_uint256_$6_memory_ptr_$returns$_t_bool_$", "typeString": "function (bytes memory,uint256[6] memory) external returns (bool)" } }, - "id": 1074, + "id": 845, "isConstant": false, "isLValue": false, "isPure": false, @@ -2950,7 +3147,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3932:126:8", + "src": "3347:126:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2959,14 +3156,14 @@ { "argumentTypes": null, "hexValue": "496e76616c69642077697468647261772070726f6f66", - "id": 1075, + "id": 846, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "4060:24:8", + "src": "3475:24:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_7021ea58137dba96e572e94936410b0b0e4cbc344e1ab2ee7f47660768b81ff4", @@ -2986,21 +3183,21 @@ "typeString": "literal_string \"Invalid withdraw proof\"" } ], - "id": 1055, + "id": 826, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 3263, - 3264 + 1018, + 1019 ], - "referencedDeclaration": 3264, - "src": "3924:7:8", + "referencedDeclaration": 1019, + "src": "3339:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1076, + "id": 847, "isConstant": false, "isLValue": false, "isPure": false, @@ -3008,20 +3205,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3924:161:8", + "src": "3339:161:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1077, + "id": 848, "nodeType": "ExpressionStatement", - "src": "3924:161:8" + "src": "3339:161:2" }, { "expression": { "argumentTypes": null, - "id": 1082, + "id": 853, "isConstant": false, "isLValue": false, "isPure": false, @@ -3030,26 +3227,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1078, + "id": 849, "name": "nullifierHashes", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 901, - "src": "4092:15:8", + "referencedDeclaration": 664, + "src": "3507:15:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", "typeString": "mapping(bytes32 => bool)" } }, - "id": 1080, + "id": 851, "indexExpression": { "argumentTypes": null, - "id": 1079, + "id": 850, "name": "_nullifierHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1020, - "src": "4108:14:8", + "referencedDeclaration": 791, + "src": "3523:14:2", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -3060,7 +3257,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "4092:31:8", + "src": "3507:31:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -3071,14 +3268,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "74727565", - "id": 1081, + "id": 852, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "4126:4:8", + "src": "3541:4:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -3086,15 +3283,15 @@ }, "value": "true" }, - "src": "4092:38:8", + "src": "3507:38:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 1083, + "id": 854, "nodeType": "ExpressionStatement", - "src": "4092:38:8" + "src": "3507:38:2" }, { "expression": { @@ -3102,12 +3299,12 @@ "arguments": [ { "argumentTypes": null, - "id": 1085, + "id": 856, "name": "_recipient", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1022, - "src": "4153:10:8", + "referencedDeclaration": 793, + "src": "3568:10:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -3115,12 +3312,12 @@ }, { "argumentTypes": null, - "id": 1086, + "id": 857, "name": "_relayer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1024, - "src": "4165:8:8", + "referencedDeclaration": 795, + "src": "3580:8:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -3128,12 +3325,12 @@ }, { "argumentTypes": null, - "id": 1087, + "id": 858, "name": "_fee", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1026, - "src": "4175:4:8", + "referencedDeclaration": 797, + "src": "3590:4:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3141,16 +3338,62 @@ }, { "argumentTypes": null, - "id": 1088, + "id": 859, "name": "_refund", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1028, - "src": "4181:7:8", + "referencedDeclaration": 799, + "src": "3596:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } + }, + { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "id": 860, + "name": "feeManager", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 672, + "src": "3605:10:2", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IFeeManager_$654", + "typeString": "contract IFeeManager" + } + }, + "id": 861, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "feeTo", + "nodeType": "MemberAccess", + "referencedDeclaration": 653, + "src": "3605:16:2", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_address_$", + "typeString": "function () view external returns (address)" + } + }, + "id": 862, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3605:18:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } } ], "expression": { @@ -3170,20 +3413,24 @@ { "typeIdentifier": "t_uint256", "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" } ], - "id": 1084, + "id": 855, "name": "_processWithdraw", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1110, - "src": "4136:16:8", + "referencedDeclaration": 886, + "src": "3551:16:2", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_payable_$_t_address_payable_$_t_uint256_$_t_uint256_$returns$__$", - "typeString": "function (address payable,address payable,uint256,uint256)" + "typeIdentifier": "t_function_internal_nonpayable$_t_address_payable_$_t_address_payable_$_t_uint256_$_t_uint256_$_t_address_$returns$__$", + "typeString": "function (address payable,address payable,uint256,uint256,address)" } }, - "id": 1089, + "id": 863, "isConstant": false, "isLValue": false, "isPure": false, @@ -3191,15 +3438,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4136:53:8", + "src": "3551:73:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1090, + "id": 864, "nodeType": "ExpressionStatement", - "src": "4136:53:8" + "src": "3551:73:2" }, { "eventCall": { @@ -3207,12 +3454,12 @@ "arguments": [ { "argumentTypes": null, - "id": 1092, + "id": 866, "name": "_recipient", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1022, - "src": "4211:10:8", + "referencedDeclaration": 793, + "src": "3646:10:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -3220,12 +3467,12 @@ }, { "argumentTypes": null, - "id": 1093, + "id": 867, "name": "_nullifierHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1020, - "src": "4223:14:8", + "referencedDeclaration": 791, + "src": "3658:14:2", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -3233,12 +3480,12 @@ }, { "argumentTypes": null, - "id": 1094, + "id": 868, "name": "_relayer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1024, - "src": "4239:8:8", + "referencedDeclaration": 795, + "src": "3674:8:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -3246,12 +3493,12 @@ }, { "argumentTypes": null, - "id": 1095, + "id": 869, "name": "_fee", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1026, - "src": "4249:4:8", + "referencedDeclaration": 797, + "src": "3684:4:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3277,18 +3524,18 @@ "typeString": "uint256" } ], - "id": 1091, + "id": 865, "name": "Withdrawal", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 939, - "src": "4200:10:8", + "referencedDeclaration": 704, + "src": "3635:10:2", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_bytes32_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,bytes32,address,uint256)" } }, - "id": 1096, + "id": 870, "isConstant": false, "isLValue": false, "isPure": false, @@ -3296,56 +3543,56 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4200:54:8", + "src": "3635:54:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1097, + "id": 871, "nodeType": "EmitStatement", - "src": "4195:59:8" + "src": "3630:59:2" } ] }, "documentation": "@dev Withdraw a deposit from the contract. `proof` is a zkSNARK proof data, and input is an array of circuit public inputs\n`input` array consists of:\n- merkle root of all deposits in the contract\n- hash of unique deposit nullifier to prevent double spends\n- the recipient of funds\n- optional fee that goes to the transaction sender (usually a relay)", - "id": 1099, + "id": 873, "implemented": true, "kind": "function", "modifiers": [ { "arguments": null, - "id": 1031, + "id": 802, "modifierName": { "argumentTypes": null, - "id": 1030, + "id": 801, "name": "nonReentrant", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3244, - "src": "3660:12:8", + "referencedDeclaration": 999, + "src": "3075:12:2", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "3660:12:8" + "src": "3075:12:2" } ], "name": "withdraw", "nodeType": "FunctionDefinition", "parameters": { - "id": 1029, + "id": 800, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1016, + "id": 787, "name": "_proof", "nodeType": "VariableDeclaration", - "scope": 1099, - "src": "3496:21:8", + "scope": 873, + "src": "2911:21:2", "stateVariable": false, "storageLocation": "calldata", "typeDescriptions": { @@ -3353,10 +3600,10 @@ "typeString": "bytes" }, "typeName": { - "id": 1015, + "id": 786, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "3496:5:8", + "src": "2911:5:2", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -3367,11 +3614,11 @@ }, { "constant": false, - "id": 1018, + "id": 789, "name": "_root", "nodeType": "VariableDeclaration", - "scope": 1099, - "src": "3519:13:8", + "scope": 873, + "src": "2934:13:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3379,10 +3626,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 1017, + "id": 788, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "3519:7:8", + "src": "2934:7:2", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -3393,11 +3640,11 @@ }, { "constant": false, - "id": 1020, + "id": 791, "name": "_nullifierHash", "nodeType": "VariableDeclaration", - "scope": 1099, - "src": "3534:22:8", + "scope": 873, + "src": "2949:22:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3405,10 +3652,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 1019, + "id": 790, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "3534:7:8", + "src": "2949:7:2", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -3419,11 +3666,11 @@ }, { "constant": false, - "id": 1022, + "id": 793, "name": "_recipient", "nodeType": "VariableDeclaration", - "scope": 1099, - "src": "3558:26:8", + "scope": 873, + "src": "2973:26:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3431,10 +3678,10 @@ "typeString": "address payable" }, "typeName": { - "id": 1021, + "id": 792, "name": "address", "nodeType": "ElementaryTypeName", - "src": "3558:15:8", + "src": "2973:15:2", "stateMutability": "payable", "typeDescriptions": { "typeIdentifier": "t_address_payable", @@ -3446,11 +3693,11 @@ }, { "constant": false, - "id": 1024, + "id": 795, "name": "_relayer", "nodeType": "VariableDeclaration", - "scope": 1099, - "src": "3586:24:8", + "scope": 873, + "src": "3001:24:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3458,10 +3705,10 @@ "typeString": "address payable" }, "typeName": { - "id": 1023, + "id": 794, "name": "address", "nodeType": "ElementaryTypeName", - "src": "3586:15:8", + "src": "3001:15:2", "stateMutability": "payable", "typeDescriptions": { "typeIdentifier": "t_address_payable", @@ -3473,11 +3720,11 @@ }, { "constant": false, - "id": 1026, + "id": 797, "name": "_fee", "nodeType": "VariableDeclaration", - "scope": 1099, - "src": "3612:12:8", + "scope": 873, + "src": "3027:12:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3485,10 +3732,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1025, + "id": 796, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "3612:7:8", + "src": "3027:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3499,11 +3746,11 @@ }, { "constant": false, - "id": 1028, + "id": 799, "name": "_refund", "nodeType": "VariableDeclaration", - "scope": 1099, - "src": "3626:15:8", + "scope": 873, + "src": "3041:15:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3511,10 +3758,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1027, + "id": 798, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "3626:7:8", + "src": "3041:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3524,16 +3771,16 @@ "visibility": "internal" } ], - "src": "3495:147:8" + "src": "2910:147:2" }, "returnParameters": { - "id": 1032, + "id": 803, "nodeType": "ParameterList", "parameters": [], - "src": "3673:0:8" + "src": "3088:0:2" }, - "scope": 1194, - "src": "3478:781:8", + "scope": 970, + "src": "2893:801:2", "stateMutability": "payable", "superFunction": null, "visibility": "external" @@ -3541,23 +3788,23 @@ { "body": null, "documentation": "@dev this function is defined in a child contract ", - "id": 1110, + "id": 886, "implemented": false, "kind": "function", "modifiers": [], "name": "_processWithdraw", "nodeType": "FunctionDefinition", "parameters": { - "id": 1108, + "id": 884, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1101, + "id": 875, "name": "_recipient", "nodeType": "VariableDeclaration", - "scope": 1110, - "src": "4348:26:8", + "scope": 886, + "src": "3783:26:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3565,10 +3812,10 @@ "typeString": "address payable" }, "typeName": { - "id": 1100, + "id": 874, "name": "address", "nodeType": "ElementaryTypeName", - "src": "4348:15:8", + "src": "3783:15:2", "stateMutability": "payable", "typeDescriptions": { "typeIdentifier": "t_address_payable", @@ -3580,11 +3827,11 @@ }, { "constant": false, - "id": 1103, + "id": 877, "name": "_relayer", "nodeType": "VariableDeclaration", - "scope": 1110, - "src": "4376:24:8", + "scope": 886, + "src": "3811:24:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3592,10 +3839,10 @@ "typeString": "address payable" }, "typeName": { - "id": 1102, + "id": 876, "name": "address", "nodeType": "ElementaryTypeName", - "src": "4376:15:8", + "src": "3811:15:2", "stateMutability": "payable", "typeDescriptions": { "typeIdentifier": "t_address_payable", @@ -3607,11 +3854,11 @@ }, { "constant": false, - "id": 1105, - "name": "_fee", + "id": 879, + "name": "_relayer_fee", "nodeType": "VariableDeclaration", - "scope": 1110, - "src": "4402:12:8", + "scope": 886, + "src": "3837:20:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3619,10 +3866,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1104, + "id": 878, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "4402:7:8", + "src": "3837:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3633,11 +3880,11 @@ }, { "constant": false, - "id": 1107, + "id": 881, "name": "_refund", "nodeType": "VariableDeclaration", - "scope": 1110, - "src": "4416:15:8", + "scope": 886, + "src": "3859:15:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3645,10 +3892,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1106, + "id": 880, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "4416:7:8", + "src": "3859:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3656,53 +3903,80 @@ }, "value": null, "visibility": "internal" + }, + { + "constant": false, + "id": 883, + "name": "_feeTo", + "nodeType": "VariableDeclaration", + "scope": 886, + "src": "3876:14:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 882, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3876:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" } ], - "src": "4347:85:8" + "src": "3782:109:2" }, "returnParameters": { - "id": 1109, + "id": 885, "nodeType": "ParameterList", "parameters": [], - "src": "4441:0:8" + "src": "3900:0:2" }, - "scope": 1194, - "src": "4322:120:8", + "scope": 970, + "src": "3757:144:2", "stateMutability": "nonpayable", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 1121, + "id": 897, "nodeType": "Block", - "src": "4559:49:8", + "src": "4018:49:2", "statements": [ { "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1117, + "id": 893, "name": "nullifierHashes", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 901, - "src": "4572:15:8", + "referencedDeclaration": 664, + "src": "4031:15:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", "typeString": "mapping(bytes32 => bool)" } }, - "id": 1119, + "id": 895, "indexExpression": { "argumentTypes": null, - "id": 1118, + "id": 894, "name": "_nullifierHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1112, - "src": "4588:14:8", + "referencedDeclaration": 888, + "src": "4047:14:2", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -3713,37 +3987,37 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "4572:31:8", + "src": "4031:31:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "functionReturnParameters": 1116, - "id": 1120, + "functionReturnParameters": 892, + "id": 896, "nodeType": "Return", - "src": "4565:38:8" + "src": "4024:38:2" } ] }, "documentation": "@dev whether a note is already spent ", - "id": 1122, + "id": 898, "implemented": true, "kind": "function", "modifiers": [], "name": "isSpent", "nodeType": "FunctionDefinition", "parameters": { - "id": 1113, + "id": 889, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1112, + "id": 888, "name": "_nullifierHash", "nodeType": "VariableDeclaration", - "scope": 1122, - "src": "4509:22:8", + "scope": 898, + "src": "3968:22:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3751,10 +4025,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 1111, + "id": 887, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "4509:7:8", + "src": "3968:7:2", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -3764,19 +4038,19 @@ "visibility": "internal" } ], - "src": "4508:24:8" + "src": "3967:24:2" }, "returnParameters": { - "id": 1116, + "id": 892, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1115, + "id": 891, "name": "", "nodeType": "VariableDeclaration", - "scope": 1122, - "src": "4553:4:8", + "scope": 898, + "src": "4012:4:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3784,10 +4058,10 @@ "typeString": "bool" }, "typeName": { - "id": 1114, + "id": 890, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "4553:4:8", + "src": "4012:4:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -3797,36 +4071,36 @@ "visibility": "internal" } ], - "src": "4552:6:8" + "src": "4011:6:2" }, - "scope": 1194, - "src": "4492:116:8", + "scope": 970, + "src": "3951:116:2", "stateMutability": "view", "superFunction": null, "visibility": "public" }, { "body": { - "id": 1166, + "id": 942, "nodeType": "Block", - "src": "4771:191:8", + "src": "4230:191:2", "statements": [ { "expression": { "argumentTypes": null, - "id": 1138, + "id": 914, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 1131, + "id": 907, "name": "spent", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1129, - "src": "4777:5:8", + "referencedDeclaration": 905, + "src": "4236:5:2", "typeDescriptions": { "typeIdentifier": "t_array$_t_bool_$dyn_memory_ptr", "typeString": "bool[] memory" @@ -3841,18 +4115,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1135, + "id": 911, "name": "_nullifierHashes", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1125, - "src": "4796:16:8", + "referencedDeclaration": 901, + "src": "4255:16:2", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr", "typeString": "bytes32[] calldata" } }, - "id": 1136, + "id": 912, "isConstant": false, "isLValue": false, "isPure": false, @@ -3860,7 +4134,7 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "4796:23:8", + "src": "4255:23:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3874,39 +4148,39 @@ "typeString": "uint256" } ], - "id": 1134, + "id": 910, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "NewExpression", - "src": "4785:10:8", + "src": "4244:10:2", "typeDescriptions": { "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_bool_$dyn_memory_$", "typeString": "function (uint256) pure returns (bool[] memory)" }, "typeName": { "baseType": { - "id": 1132, + "id": 908, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "4789:4:8", + "src": "4248:4:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 1133, + "id": 909, "length": null, "nodeType": "ArrayTypeName", - "src": "4789:6:8", + "src": "4248:6:2", "typeDescriptions": { "typeIdentifier": "t_array$_t_bool_$dyn_storage_ptr", "typeString": "bool[]" } } }, - "id": 1137, + "id": 913, "isConstant": false, "isLValue": false, "isPure": false, @@ -3914,27 +4188,27 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4785:35:8", + "src": "4244:35:2", "typeDescriptions": { "typeIdentifier": "t_array$_t_bool_$dyn_memory", "typeString": "bool[] memory" } }, - "src": "4777:43:8", + "src": "4236:43:2", "typeDescriptions": { "typeIdentifier": "t_array$_t_bool_$dyn_memory_ptr", "typeString": "bool[] memory" } }, - "id": 1139, + "id": 915, "nodeType": "ExpressionStatement", - "src": "4777:43:8" + "src": "4236:43:2" }, { "body": { - "id": 1164, + "id": 940, "nodeType": "Block", - "src": "4876:82:8", + "src": "4335:82:2", "statements": [ { "condition": { @@ -3944,26 +4218,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1152, + "id": 928, "name": "_nullifierHashes", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1125, - "src": "4896:16:8", + "referencedDeclaration": 901, + "src": "4355:16:2", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr", "typeString": "bytes32[] calldata" } }, - "id": 1154, + "id": 930, "indexExpression": { "argumentTypes": null, - "id": 1153, + "id": 929, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1141, - "src": "4913:1:8", + "referencedDeclaration": 917, + "src": "4372:1:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3974,7 +4248,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "4896:19:8", + "src": "4355:19:2", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -3988,18 +4262,18 @@ "typeString": "bytes32" } ], - "id": 1151, + "id": 927, "name": "isSpent", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1122, - "src": "4888:7:8", + "referencedDeclaration": 898, + "src": "4347:7:2", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_bool_$", "typeString": "function (bytes32) view returns (bool)" } }, - "id": 1155, + "id": 931, "isConstant": false, "isLValue": false, "isPure": false, @@ -4007,25 +4281,25 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4888:28:8", + "src": "4347:28:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 1163, + "id": 939, "nodeType": "IfStatement", - "src": "4884:68:8", + "src": "4343:68:2", "trueBody": { - "id": 1162, + "id": 938, "nodeType": "Block", - "src": "4918:34:8", + "src": "4377:34:2", "statements": [ { "expression": { "argumentTypes": null, - "id": 1160, + "id": 936, "isConstant": false, "isLValue": false, "isPure": false, @@ -4034,26 +4308,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1156, + "id": 932, "name": "spent", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1129, - "src": "4928:5:8", + "referencedDeclaration": 905, + "src": "4387:5:2", "typeDescriptions": { "typeIdentifier": "t_array$_t_bool_$dyn_memory_ptr", "typeString": "bool[] memory" } }, - "id": 1158, + "id": 934, "indexExpression": { "argumentTypes": null, - "id": 1157, + "id": 933, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1141, - "src": "4934:1:8", + "referencedDeclaration": 917, + "src": "4393:1:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4064,7 +4338,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "4928:8:8", + "src": "4387:8:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -4075,14 +4349,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "74727565", - "id": 1159, + "id": 935, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "4939:4:8", + "src": "4398:4:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -4090,15 +4364,15 @@ }, "value": "true" }, - "src": "4928:15:8", + "src": "4387:15:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 1161, + "id": 937, "nodeType": "ExpressionStatement", - "src": "4928:15:8" + "src": "4387:15:2" } ] } @@ -4111,19 +4385,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1147, + "id": 923, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1144, + "id": 920, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1141, - "src": "4842:1:8", + "referencedDeclaration": 917, + "src": "4301:1:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4135,18 +4409,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1145, + "id": 921, "name": "_nullifierHashes", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1125, - "src": "4846:16:8", + "referencedDeclaration": 901, + "src": "4305:16:2", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr", "typeString": "bytes32[] calldata" } }, - "id": 1146, + "id": 922, "isConstant": false, "isLValue": false, "isPure": false, @@ -4154,31 +4428,31 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "4846:23:8", + "src": "4305:23:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "4842:27:8", + "src": "4301:27:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 1165, + "id": 941, "initializationExpression": { "assignments": [ - 1141 + 917 ], "declarations": [ { "constant": false, - "id": 1141, + "id": 917, "name": "i", "nodeType": "VariableDeclaration", - "scope": 1165, - "src": "4830:6:8", + "scope": 941, + "src": "4289:6:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4186,10 +4460,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1140, + "id": 916, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "4830:4:8", + "src": "4289:4:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4199,18 +4473,18 @@ "visibility": "internal" } ], - "id": 1143, + "id": 919, "initialValue": { "argumentTypes": null, "hexValue": "30", - "id": 1142, + "id": 918, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4839:1:8", + "src": "4298:1:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -4219,12 +4493,12 @@ "value": "0" }, "nodeType": "VariableDeclarationStatement", - "src": "4830:10:8" + "src": "4289:10:2" }, "loopExpression": { "expression": { "argumentTypes": null, - "id": 1149, + "id": 925, "isConstant": false, "isLValue": false, "isPure": false, @@ -4232,15 +4506,15 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "4871:3:8", + "src": "4330:3:2", "subExpression": { "argumentTypes": null, - "id": 1148, + "id": 924, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1141, - "src": "4871:1:8", + "referencedDeclaration": 917, + "src": "4330:1:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4251,33 +4525,33 @@ "typeString": "uint256" } }, - "id": 1150, + "id": 926, "nodeType": "ExpressionStatement", - "src": "4871:3:8" + "src": "4330:3:2" }, "nodeType": "ForStatement", - "src": "4826:132:8" + "src": "4285:132:2" } ] }, "documentation": "@dev whether an array of notes is already spent ", - "id": 1167, + "id": 943, "implemented": true, "kind": "function", "modifiers": [], "name": "isSpentArray", "nodeType": "FunctionDefinition", "parameters": { - "id": 1126, + "id": 902, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1125, + "id": 901, "name": "_nullifierHashes", "nodeType": "VariableDeclaration", - "scope": 1167, - "src": "4691:35:8", + "scope": 943, + "src": "4150:35:2", "stateVariable": false, "storageLocation": "calldata", "typeDescriptions": { @@ -4286,19 +4560,19 @@ }, "typeName": { "baseType": { - "id": 1123, + "id": 899, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "4691:7:8", + "src": "4150:7:2", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "id": 1124, + "id": 900, "length": null, "nodeType": "ArrayTypeName", - "src": "4691:9:8", + "src": "4150:9:2", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", "typeString": "bytes32[]" @@ -4308,19 +4582,19 @@ "visibility": "internal" } ], - "src": "4690:37:8" + "src": "4149:37:2" }, "returnParameters": { - "id": 1130, + "id": 906, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1129, + "id": 905, "name": "spent", "nodeType": "VariableDeclaration", - "scope": 1167, - "src": "4750:19:8", + "scope": 943, + "src": "4209:19:2", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -4329,19 +4603,19 @@ }, "typeName": { "baseType": { - "id": 1127, + "id": 903, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "4750:4:8", + "src": "4209:4:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 1128, + "id": 904, "length": null, "nodeType": "ArrayTypeName", - "src": "4750:6:8", + "src": "4209:6:2", "typeDescriptions": { "typeIdentifier": "t_array$_t_bool_$dyn_storage_ptr", "typeString": "bool[]" @@ -4351,38 +4625,38 @@ "visibility": "internal" } ], - "src": "4749:21:8" + "src": "4208:21:2" }, - "scope": 1194, - "src": "4669:293:8", + "scope": 970, + "src": "4128:293:2", "stateMutability": "view", "superFunction": null, "visibility": "external" }, { "body": { - "id": 1180, + "id": 956, "nodeType": "Block", - "src": "5260:45:8", + "src": "4719:45:2", "statements": [ { "expression": { "argumentTypes": null, - "id": 1178, + "id": 954, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 1174, + "id": 950, "name": "verifier", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 907, - "src": "5266:8:8", + "referencedDeclaration": 670, + "src": "4725:8:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_IVerifier_$891", + "typeIdentifier": "t_contract$_IVerifier_$648", "typeString": "contract IVerifier" } }, @@ -4393,12 +4667,12 @@ "arguments": [ { "argumentTypes": null, - "id": 1176, + "id": 952, "name": "_newVerifier", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1169, - "src": "5287:12:8", + "referencedDeclaration": 945, + "src": "4746:12:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4412,18 +4686,18 @@ "typeString": "address" } ], - "id": 1175, + "id": 951, "name": "IVerifier", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 891, - "src": "5277:9:8", + "referencedDeclaration": 648, + "src": "4736:9:2", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IVerifier_$891_$", + "typeIdentifier": "t_type$_t_contract$_IVerifier_$648_$", "typeString": "type(contract IVerifier)" } }, - "id": 1177, + "id": 953, "isConstant": false, "isLValue": false, "isPure": false, @@ -4431,62 +4705,62 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5277:23:8", + "src": "4736:23:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_IVerifier_$891", + "typeIdentifier": "t_contract$_IVerifier_$648", "typeString": "contract IVerifier" } }, - "src": "5266:34:8", + "src": "4725:34:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_IVerifier_$891", + "typeIdentifier": "t_contract$_IVerifier_$648", "typeString": "contract IVerifier" } }, - "id": 1179, + "id": 955, "nodeType": "ExpressionStatement", - "src": "5266:34:8" + "src": "4725:34:2" } ] }, "documentation": "@dev allow operator to update SNARK verification keys. This is needed to update keys after the final trusted setup ceremony is held.\nAfter that operator rights are supposed to be transferred to zero address", - "id": 1181, + "id": 957, "implemented": true, "kind": "function", "modifiers": [ { "arguments": null, - "id": 1172, + "id": 948, "modifierName": { "argumentTypes": null, - "id": 1171, + "id": 947, "name": "onlyOperator", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 921, - "src": "5247:12:8", + "referencedDeclaration": 686, + "src": "4706:12:2", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "5247:12:8" + "src": "4706:12:2" } ], "name": "updateVerifier", "nodeType": "FunctionDefinition", "parameters": { - "id": 1170, + "id": 946, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1169, + "id": 945, "name": "_newVerifier", "nodeType": "VariableDeclaration", - "scope": 1181, - "src": "5216:20:8", + "scope": 957, + "src": "4675:20:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4494,10 +4768,10 @@ "typeString": "address" }, "typeName": { - "id": 1168, + "id": 944, "name": "address", "nodeType": "ElementaryTypeName", - "src": "5216:7:8", + "src": "4675:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -4508,42 +4782,42 @@ "visibility": "internal" } ], - "src": "5215:22:8" + "src": "4674:22:2" }, "returnParameters": { - "id": 1173, + "id": 949, "nodeType": "ParameterList", "parameters": [], - "src": "5260:0:8" + "src": "4719:0:2" }, - "scope": 1194, - "src": "5192:113:8", + "scope": 970, + "src": "4651:113:2", "stateMutability": "nonpayable", "superFunction": null, "visibility": "external" }, { "body": { - "id": 1192, + "id": 968, "nodeType": "Block", - "src": "5423:34:8", + "src": "4882:34:2", "statements": [ { "expression": { "argumentTypes": null, - "id": 1190, + "id": 966, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 1188, + "id": 964, "name": "operator", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 909, - "src": "5429:8:8", + "referencedDeclaration": 674, + "src": "4888:8:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4553,67 +4827,67 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 1189, + "id": 965, "name": "_newOperator", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1183, - "src": "5440:12:8", + "referencedDeclaration": 959, + "src": "4899:12:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "5429:23:8", + "src": "4888:23:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 1191, + "id": 967, "nodeType": "ExpressionStatement", - "src": "5429:23:8" + "src": "4888:23:2" } ] }, "documentation": "@dev operator can change his address ", - "id": 1193, + "id": 969, "implemented": true, "kind": "function", "modifiers": [ { "arguments": null, - "id": 1186, + "id": 962, "modifierName": { "argumentTypes": null, - "id": 1185, + "id": 961, "name": "onlyOperator", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 921, - "src": "5410:12:8", + "referencedDeclaration": 686, + "src": "4869:12:2", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "5410:12:8" + "src": "4869:12:2" } ], "name": "changeOperator", "nodeType": "FunctionDefinition", "parameters": { - "id": 1184, + "id": 960, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1183, + "id": 959, "name": "_newOperator", "nodeType": "VariableDeclaration", - "scope": 1193, - "src": "5379:20:8", + "scope": 969, + "src": "4838:20:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4621,10 +4895,10 @@ "typeString": "address" }, "typeName": { - "id": 1182, + "id": 958, "name": "address", "nodeType": "ElementaryTypeName", - "src": "5379:7:8", + "src": "4838:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -4635,36 +4909,39 @@ "visibility": "internal" } ], - "src": "5378:22:8" + "src": "4837:22:2" }, "returnParameters": { - "id": 1187, + "id": 963, "nodeType": "ParameterList", "parameters": [], - "src": "5423:0:8" + "src": "4882:0:2" }, - "scope": 1194, - "src": "5355:102:8", + "scope": 970, + "src": "4814:102:2", "stateMutability": "nonpayable", "superFunction": null, "visibility": "external" } ], - "scope": 1195, - "src": "995:4464:8" + "scope": 971, + "src": "318:4600:2" } ], - "src": "755:4705:8" + "src": "0:4919:2" }, "legacyAST": { "attributes": { "absolutePath": "/Users/brianli/dotfiles/tornado-core/contracts/Tornado.sol", "exportedSymbols": { + "IFeeManager": [ + 654 + ], "IVerifier": [ - 891 + 648 ], "Tornado": [ - 1194 + 970 ] } }, @@ -4677,39 +4954,39 @@ ".17" ] }, - "id": 877, + "id": 634, "name": "PragmaDirective", - "src": "755:23:8" + "src": "0:23:2" }, { "attributes": { - "SourceUnit": 695, + "SourceUnit": 633, "absolutePath": "/Users/brianli/dotfiles/tornado-core/contracts/MerkleTreeWithHistory.sol", "file": "./MerkleTreeWithHistory.sol", - "scope": 1195, + "scope": 971, "symbolAliases": [ null ], "unitAlias": "" }, - "id": 878, + "id": 635, "name": "ImportDirective", - "src": "780:37:8" + "src": "25:37:2" }, { "attributes": { - "SourceUnit": 3246, + "SourceUnit": 1001, "absolutePath": "@openzeppelin/contracts/utils/ReentrancyGuard.sol", "file": "@openzeppelin/contracts/utils/ReentrancyGuard.sol", - "scope": 1195, + "scope": 971, "symbolAliases": [ null ], "unitAlias": "" }, - "id": 879, + "id": 636, "name": "ImportDirective", - "src": "818:59:8" + "src": "63:59:2" }, { "attributes": { @@ -4723,10 +5000,10 @@ "documentation": null, "fullyImplemented": false, "linearizedBaseContracts": [ - 891 + 648 ], "name": "IVerifier", - "scope": 1195 + "scope": 971 }, "children": [ { @@ -4740,7 +5017,7 @@ null ], "name": "verifyProof", - "scope": 891, + "scope": 648, "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" @@ -4752,7 +5029,7 @@ "attributes": { "constant": false, "name": "_proof", - "scope": 890, + "scope": 647, "stateVariable": false, "storageLocation": "memory", "type": "bytes", @@ -4765,20 +5042,20 @@ "name": "bytes", "type": "bytes" }, - "id": 880, + "id": 637, "name": "ElementaryTypeName", - "src": "923:5:8" + "src": "168:5:2" } ], - "id": 881, + "id": 638, "name": "VariableDeclaration", - "src": "923:19:8" + "src": "168:19:2" }, { "attributes": { "constant": false, "name": "_input", - "scope": 890, + "scope": 647, "stateVariable": false, "storageLocation": "memory", "type": "uint256[6]", @@ -4796,9 +5073,9 @@ "name": "uint256", "type": "uint256" }, - "id": 882, + "id": 639, "name": "ElementaryTypeName", - "src": "944:7:8" + "src": "189:7:2" }, { "attributes": { @@ -4813,24 +5090,24 @@ "type": "int_const 6", "value": "6" }, - "id": 883, + "id": 640, "name": "Literal", - "src": "952:1:8" + "src": "197:1:2" } ], - "id": 884, + "id": 641, "name": "ArrayTypeName", - "src": "944:10:8" + "src": "189:10:2" } ], - "id": 885, + "id": 642, "name": "VariableDeclaration", - "src": "944:24:8" + "src": "189:24:2" } ], - "id": 886, + "id": 643, "name": "ParameterList", - "src": "922:47:8" + "src": "167:47:2" }, { "children": [ @@ -4838,7 +5115,7 @@ "attributes": { "constant": false, "name": "", - "scope": 890, + "scope": 647, "stateVariable": false, "storageLocation": "default", "type": "bool", @@ -4851,46 +5128,136 @@ "name": "bool", "type": "bool" }, - "id": 887, + "id": 644, "name": "ElementaryTypeName", - "src": "985:4:8" + "src": "230:4:2" } ], - "id": 888, + "id": 645, "name": "VariableDeclaration", - "src": "985:4:8" + "src": "230:4:2" } ], - "id": 889, + "id": 646, "name": "ParameterList", - "src": "984:6:8" + "src": "229:6:2" } ], - "id": 890, + "id": 647, "name": "FunctionDefinition", - "src": "902:89:8" + "src": "147:89:2" } ], - "id": 891, + "id": 648, "name": "ContractDefinition", - "src": "879:114:8" + "src": "124:114:2" }, { "attributes": { + "baseContracts": [ + null + ], "contractDependencies": [ - 694, - 3245 + null ], "contractKind": "contract", "documentation": null, "fullyImplemented": false, "linearizedBaseContracts": [ - 1194, - 3245, - 694 + 654 + ], + "name": "IFeeManager", + "scope": 971 + }, + "children": [ + { + "attributes": { + "body": null, + "documentation": null, + "implemented": false, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "feeTo", + "scope": 654, + "stateMutability": "view", + "superFunction": null, + "visibility": "external" + }, + "children": [ + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 649, + "name": "ParameterList", + "src": "279:2:2" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "name": "", + "scope": 653, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 650, + "name": "ElementaryTypeName", + "src": "305:7:2" + } + ], + "id": 651, + "name": "VariableDeclaration", + "src": "305:7:2" + } + ], + "id": 652, + "name": "ParameterList", + "src": "304:9:2" + } + ], + "id": 653, + "name": "FunctionDefinition", + "src": "265:49:2" + } + ], + "id": 654, + "name": "ContractDefinition", + "src": "240:76:2" + }, + { + "attributes": { + "contractDependencies": [ + 632, + 1000 + ], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": false, + "linearizedBaseContracts": [ + 970, + 1000, + 632 ], "name": "Tornado", - "scope": 1195 + "scope": 971 }, "children": [ { @@ -4902,17 +5269,17 @@ "attributes": { "contractScope": null, "name": "MerkleTreeWithHistory", - "referencedDeclaration": 694, + "referencedDeclaration": 632, "type": "contract MerkleTreeWithHistory" }, - "id": 892, + "id": 655, "name": "UserDefinedTypeName", - "src": "1015:21:8" + "src": "338:21:2" } ], - "id": 893, + "id": 656, "name": "InheritanceSpecifier", - "src": "1015:21:8" + "src": "338:21:2" }, { "attributes": { @@ -4923,23 +5290,23 @@ "attributes": { "contractScope": null, "name": "ReentrancyGuard", - "referencedDeclaration": 3245, + "referencedDeclaration": 1000, "type": "contract ReentrancyGuard" }, - "id": 894, + "id": 657, "name": "UserDefinedTypeName", - "src": "1038:15:8" + "src": "361:15:2" } ], - "id": 895, + "id": 658, "name": "InheritanceSpecifier", - "src": "1038:15:8" + "src": "361:15:2" }, { "attributes": { "constant": false, "name": "denomination", - "scope": 1194, + "scope": 970, "stateVariable": true, "storageLocation": "default", "type": "uint256", @@ -4952,20 +5319,20 @@ "name": "uint256", "type": "uint256" }, - "id": 896, + "id": 659, "name": "ElementaryTypeName", - "src": "1058:7:8" + "src": "381:7:2" } ], - "id": 897, + "id": 660, "name": "VariableDeclaration", - "src": "1058:27:8" + "src": "381:27:2" }, { "attributes": { "constant": false, "name": "nullifierHashes", - "scope": 1194, + "scope": 970, "stateVariable": true, "storageLocation": "default", "type": "mapping(bytes32 => bool)", @@ -4983,34 +5350,34 @@ "name": "bytes32", "type": "bytes32" }, - "id": 898, + "id": 661, "name": "ElementaryTypeName", - "src": "1097:7:8" + "src": "420:7:2" }, { "attributes": { "name": "bool", "type": "bool" }, - "id": 899, + "id": 662, "name": "ElementaryTypeName", - "src": "1108:4:8" + "src": "431:4:2" } ], - "id": 900, + "id": 663, "name": "Mapping", - "src": "1089:24:8" + "src": "412:24:2" } ], - "id": 901, + "id": 664, "name": "VariableDeclaration", - "src": "1089:47:8" + "src": "412:47:2" }, { "attributes": { "constant": false, "name": "commitments", - "scope": 1194, + "scope": 970, "stateVariable": true, "storageLocation": "default", "type": "mapping(bytes32 => bool)", @@ -5028,34 +5395,34 @@ "name": "bytes32", "type": "bytes32" }, - "id": 902, + "id": 665, "name": "ElementaryTypeName", - "src": "1239:7:8" + "src": "562:7:2" }, { "attributes": { "name": "bool", "type": "bool" }, - "id": 903, + "id": 666, "name": "ElementaryTypeName", - "src": "1250:4:8" + "src": "573:4:2" } ], - "id": 904, + "id": 667, "name": "Mapping", - "src": "1231:24:8" + "src": "554:24:2" } ], - "id": 905, + "id": 668, "name": "VariableDeclaration", - "src": "1231:43:8" + "src": "554:43:2" }, { "attributes": { "constant": false, "name": "verifier", - "scope": 1194, + "scope": 970, "stateVariable": true, "storageLocation": "default", "type": "contract IVerifier", @@ -5067,23 +5434,51 @@ "attributes": { "contractScope": null, "name": "IVerifier", - "referencedDeclaration": 891, + "referencedDeclaration": 648, "type": "contract IVerifier" }, - "id": 906, + "id": 669, "name": "UserDefinedTypeName", - "src": "1278:9:8" + "src": "601:9:2" } ], - "id": 907, + "id": 670, "name": "VariableDeclaration", - "src": "1278:25:8" + "src": "601:25:2" + }, + { + "attributes": { + "constant": false, + "name": "feeManager", + "scope": 970, + "stateVariable": true, + "storageLocation": "default", + "type": "contract IFeeManager", + "value": null, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "contractScope": null, + "name": "IFeeManager", + "referencedDeclaration": 654, + "type": "contract IFeeManager" + }, + "id": 671, + "name": "UserDefinedTypeName", + "src": "630:11:2" + } + ], + "id": 672, + "name": "VariableDeclaration", + "src": "630:29:2" }, { "attributes": { "constant": false, "name": "operator", - "scope": 1194, + "scope": 970, "stateVariable": true, "storageLocation": "default", "type": "address", @@ -5097,14 +5492,14 @@ "stateMutability": "nonpayable", "type": "address" }, - "id": 908, + "id": 673, "name": "ElementaryTypeName", - "src": "1463:7:8" + "src": "819:7:2" } ], - "id": 909, + "id": 674, "name": "VariableDeclaration", - "src": "1463:23:8" + "src": "819:23:2" }, { "attributes": { @@ -5120,9 +5515,9 @@ ] }, "children": [], - "id": 910, + "id": 675, "name": "ParameterList", - "src": "1512:0:8" + "src": "868:0:2" }, { "children": [ @@ -5156,16 +5551,16 @@ } ], "overloadedDeclarations": [ - 3263, - 3264 + 1018, + 1019 ], - "referencedDeclaration": 3264, + "referencedDeclaration": 1019, "type": "function (bool,string memory) pure", "value": "require" }, - "id": 911, + "id": 676, "name": "Identifier", - "src": "1518:7:8" + "src": "874:7:2" }, { "attributes": { @@ -5200,18 +5595,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 3260, + "referencedDeclaration": 1015, "type": "msg", "value": "msg" }, - "id": 912, + "id": 677, "name": "Identifier", - "src": "1526:3:8" + "src": "882:3:2" } ], - "id": 913, + "id": 678, "name": "MemberAccess", - "src": "1526:10:8" + "src": "882:10:2" }, { "attributes": { @@ -5219,18 +5614,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 909, + "referencedDeclaration": 674, "type": "address", "value": "operator" }, - "id": 914, + "id": 679, "name": "Identifier", - "src": "1540:8:8" + "src": "896:8:2" } ], - "id": 915, + "id": 680, "name": "BinaryOperation", - "src": "1526:22:8" + "src": "882:22:2" }, { "attributes": { @@ -5245,34 +5640,34 @@ "type": "literal_string \"Only operator can call this function.\"", "value": "Only operator can call this function." }, - "id": 916, + "id": 681, "name": "Literal", - "src": "1550:39:8" + "src": "906:39:2" } ], - "id": 917, + "id": 682, "name": "FunctionCall", - "src": "1518:72:8" + "src": "874:72:2" } ], - "id": 918, + "id": 683, "name": "ExpressionStatement", - "src": "1518:72:8" + "src": "874:72:2" }, { - "id": 919, + "id": 684, "name": "PlaceholderStatement", - "src": "1596:1:8" + "src": "952:1:2" } ], - "id": 920, + "id": 685, "name": "Block", - "src": "1512:90:8" + "src": "868:90:2" } ], - "id": 921, + "id": 686, "name": "ModifierDefinition", - "src": "1490:112:8" + "src": "846:112:2" }, { "attributes": { @@ -5288,7 +5683,7 @@ "constant": false, "indexed": true, "name": "commitment", - "scope": 929, + "scope": 694, "stateVariable": false, "storageLocation": "default", "type": "bytes32", @@ -5301,21 +5696,21 @@ "name": "bytes32", "type": "bytes32" }, - "id": 922, + "id": 687, "name": "ElementaryTypeName", - "src": "1620:7:8" + "src": "976:7:2" } ], - "id": 923, + "id": 688, "name": "VariableDeclaration", - "src": "1620:26:8" + "src": "976:26:2" }, { "attributes": { "constant": false, "indexed": false, "name": "leafIndex", - "scope": 929, + "scope": 694, "stateVariable": false, "storageLocation": "default", "type": "uint32", @@ -5328,21 +5723,21 @@ "name": "uint32", "type": "uint32" }, - "id": 924, + "id": 689, "name": "ElementaryTypeName", - "src": "1648:6:8" + "src": "1004:6:2" } ], - "id": 925, + "id": 690, "name": "VariableDeclaration", - "src": "1648:16:8" + "src": "1004:16:2" }, { "attributes": { "constant": false, "indexed": false, "name": "timestamp", - "scope": 929, + "scope": 694, "stateVariable": false, "storageLocation": "default", "type": "uint256", @@ -5355,24 +5750,24 @@ "name": "uint256", "type": "uint256" }, - "id": 926, + "id": 691, "name": "ElementaryTypeName", - "src": "1666:7:8" + "src": "1022:7:2" } ], - "id": 927, + "id": 692, "name": "VariableDeclaration", - "src": "1666:17:8" + "src": "1022:17:2" } ], - "id": 928, + "id": 693, "name": "ParameterList", - "src": "1619:65:8" + "src": "975:65:2" } ], - "id": 929, + "id": 694, "name": "EventDefinition", - "src": "1606:79:8" + "src": "962:79:2" }, { "attributes": { @@ -5388,7 +5783,7 @@ "constant": false, "indexed": false, "name": "to", - "scope": 939, + "scope": 704, "stateVariable": false, "storageLocation": "default", "type": "address", @@ -5402,21 +5797,21 @@ "stateMutability": "nonpayable", "type": "address" }, - "id": 930, + "id": 695, "name": "ElementaryTypeName", - "src": "1705:7:8" + "src": "1061:7:2" } ], - "id": 931, + "id": 696, "name": "VariableDeclaration", - "src": "1705:10:8" + "src": "1061:10:2" }, { "attributes": { "constant": false, "indexed": false, "name": "nullifierHash", - "scope": 939, + "scope": 704, "stateVariable": false, "storageLocation": "default", "type": "bytes32", @@ -5429,21 +5824,21 @@ "name": "bytes32", "type": "bytes32" }, - "id": 932, + "id": 697, "name": "ElementaryTypeName", - "src": "1717:7:8" + "src": "1073:7:2" } ], - "id": 933, + "id": 698, "name": "VariableDeclaration", - "src": "1717:21:8" + "src": "1073:21:2" }, { "attributes": { "constant": false, "indexed": true, "name": "relayer", - "scope": 939, + "scope": 704, "stateVariable": false, "storageLocation": "default", "type": "address", @@ -5457,21 +5852,21 @@ "stateMutability": "nonpayable", "type": "address" }, - "id": 934, + "id": 699, "name": "ElementaryTypeName", - "src": "1740:7:8" + "src": "1096:7:2" } ], - "id": 935, + "id": 700, "name": "VariableDeclaration", - "src": "1740:23:8" + "src": "1096:23:2" }, { "attributes": { "constant": false, "indexed": false, "name": "fee", - "scope": 939, + "scope": 704, "stateVariable": false, "storageLocation": "default", "type": "uint256", @@ -5484,24 +5879,24 @@ "name": "uint256", "type": "uint256" }, - "id": 936, + "id": 701, "name": "ElementaryTypeName", - "src": "1765:7:8" + "src": "1121:7:2" } ], - "id": 937, + "id": 702, "name": "VariableDeclaration", - "src": "1765:11:8" + "src": "1121:11:2" } ], - "id": 938, + "id": 703, "name": "ParameterList", - "src": "1704:73:8" + "src": "1060:73:2" } ], - "id": 939, + "id": 704, "name": "EventDefinition", - "src": "1688:90:8" + "src": "1044:90:2" }, { "attributes": { @@ -5510,7 +5905,7 @@ "isConstructor": true, "kind": "constructor", "name": "", - "scope": 1194, + "scope": 970, "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" @@ -5522,7 +5917,7 @@ "attributes": { "constant": false, "name": "_verifier", - "scope": 973, + "scope": 744, "stateVariable": false, "storageLocation": "default", "type": "contract IVerifier", @@ -5534,23 +5929,51 @@ "attributes": { "contractScope": null, "name": "IVerifier", - "referencedDeclaration": 891, + "referencedDeclaration": 648, "type": "contract IVerifier" }, - "id": 940, + "id": 705, "name": "UserDefinedTypeName", - "src": "2094:9:8" + "src": "1450:9:2" } ], - "id": 941, + "id": 706, "name": "VariableDeclaration", - "src": "2094:19:8" + "src": "1450:19:2" + }, + { + "attributes": { + "constant": false, + "name": "_feeManager", + "scope": 744, + "stateVariable": false, + "storageLocation": "default", + "type": "contract IFeeManager", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "contractScope": null, + "name": "IFeeManager", + "referencedDeclaration": 654, + "type": "contract IFeeManager" + }, + "id": 707, + "name": "UserDefinedTypeName", + "src": "1475:11:2" + } + ], + "id": 708, + "name": "VariableDeclaration", + "src": "1475:23:2" }, { "attributes": { "constant": false, "name": "_denomination", - "scope": 973, + "scope": 744, "stateVariable": false, "storageLocation": "default", "type": "uint256", @@ -5563,20 +5986,20 @@ "name": "uint256", "type": "uint256" }, - "id": 942, + "id": 709, "name": "ElementaryTypeName", - "src": "2119:7:8" + "src": "1504:7:2" } ], - "id": 943, + "id": 710, "name": "VariableDeclaration", - "src": "2119:21:8" + "src": "1504:21:2" }, { "attributes": { "constant": false, "name": "_merkleTreeHeight", - "scope": 973, + "scope": 744, "stateVariable": false, "storageLocation": "default", "type": "uint32", @@ -5589,20 +6012,20 @@ "name": "uint32", "type": "uint32" }, - "id": 944, + "id": 711, "name": "ElementaryTypeName", - "src": "2146:6:8" + "src": "1531:6:2" } ], - "id": 945, + "id": 712, "name": "VariableDeclaration", - "src": "2146:24:8" + "src": "1531:24:2" }, { "attributes": { "constant": false, "name": "_operator", - "scope": 973, + "scope": 744, "stateVariable": false, "storageLocation": "default", "type": "address", @@ -5616,19 +6039,19 @@ "stateMutability": "nonpayable", "type": "address" }, - "id": 946, + "id": 713, "name": "ElementaryTypeName", - "src": "2176:7:8" + "src": "1561:7:2" } ], - "id": 947, + "id": 714, "name": "VariableDeclaration", - "src": "2176:17:8" + "src": "1561:17:2" } ], - "id": 948, + "id": 715, "name": "ParameterList", - "src": "2088:109:8" + "src": "1444:138:2" }, { "attributes": { @@ -5637,9 +6060,9 @@ ] }, "children": [], - "id": 952, + "id": 719, "name": "ParameterList", - "src": "2246:0:8" + "src": "1631:0:2" }, { "children": [ @@ -5649,13 +6072,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 694, + "referencedDeclaration": 632, "type": "type(contract MerkleTreeWithHistory)", "value": "MerkleTreeWithHistory" }, - "id": 949, + "id": 716, "name": "Identifier", - "src": "2198:21:8" + "src": "1583:21:2" }, { "attributes": { @@ -5663,18 +6086,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 945, + "referencedDeclaration": 712, "type": "uint32", "value": "_merkleTreeHeight" }, - "id": 950, + "id": 717, "name": "Identifier", - "src": "2220:17:8" + "src": "1605:17:2" } ], - "id": 951, + "id": 718, "name": "ModifierInvocation", - "src": "2198:40:8" + "src": "1583:40:2" }, { "children": [ @@ -5708,16 +6131,16 @@ } ], "overloadedDeclarations": [ - 3263, - 3264 + 1018, + 1019 ], - "referencedDeclaration": 3264, + "referencedDeclaration": 1019, "type": "function (bool,string memory) pure", "value": "require" }, - "id": 953, + "id": 720, "name": "Identifier", - "src": "2252:7:8" + "src": "1637:7:2" }, { "attributes": { @@ -5740,13 +6163,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 943, + "referencedDeclaration": 710, "type": "uint256", "value": "_denomination" }, - "id": 954, + "id": 721, "name": "Identifier", - "src": "2260:13:8" + "src": "1645:13:2" }, { "attributes": { @@ -5761,14 +6184,14 @@ "type": "int_const 0", "value": "0" }, - "id": 955, + "id": 722, "name": "Literal", - "src": "2276:1:8" + "src": "1661:1:2" } ], - "id": 956, + "id": 723, "name": "BinaryOperation", - "src": "2260:17:8" + "src": "1645:17:2" }, { "attributes": { @@ -5783,19 +6206,19 @@ "type": "literal_string \"denomination should be greater than 0\"", "value": "denomination should be greater than 0" }, - "id": 957, + "id": 724, "name": "Literal", - "src": "2279:39:8" + "src": "1664:39:2" } ], - "id": 958, + "id": 725, "name": "FunctionCall", - "src": "2252:67:8" + "src": "1637:67:2" } ], - "id": 959, + "id": 726, "name": "ExpressionStatement", - "src": "2252:67:8" + "src": "1637:67:2" }, { "children": [ @@ -5816,13 +6239,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 907, + "referencedDeclaration": 670, "type": "contract IVerifier", "value": "verifier" }, - "id": 960, + "id": 727, "name": "Identifier", - "src": "2325:8:8" + "src": "1710:8:2" }, { "attributes": { @@ -5830,23 +6253,74 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 941, + "referencedDeclaration": 706, "type": "contract IVerifier", "value": "_verifier" }, - "id": 961, + "id": 728, "name": "Identifier", - "src": "2336:9:8" + "src": "1721:9:2" } ], - "id": 962, + "id": 729, "name": "Assignment", - "src": "2325:20:8" + "src": "1710:20:2" } ], - "id": 963, + "id": 730, "name": "ExpressionStatement", - "src": "2325:20:8" + "src": "1710:20:2" + }, + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "contract IFeeManager" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 672, + "type": "contract IFeeManager", + "value": "feeManager" + }, + "id": 731, + "name": "Identifier", + "src": "1736:10:2" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 708, + "type": "contract IFeeManager", + "value": "_feeManager" + }, + "id": 732, + "name": "Identifier", + "src": "1749:11:2" + } + ], + "id": 733, + "name": "Assignment", + "src": "1736:24:2" + } + ], + "id": 734, + "name": "ExpressionStatement", + "src": "1736:24:2" }, { "children": [ @@ -5867,13 +6341,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 909, + "referencedDeclaration": 674, "type": "address", "value": "operator" }, - "id": 964, + "id": 735, "name": "Identifier", - "src": "2351:8:8" + "src": "1766:8:2" }, { "attributes": { @@ -5881,23 +6355,23 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 947, + "referencedDeclaration": 714, "type": "address", "value": "_operator" }, - "id": 965, + "id": 736, "name": "Identifier", - "src": "2362:9:8" + "src": "1777:9:2" } ], - "id": 966, + "id": 737, "name": "Assignment", - "src": "2351:20:8" + "src": "1766:20:2" } ], - "id": 967, + "id": 738, "name": "ExpressionStatement", - "src": "2351:20:8" + "src": "1766:20:2" }, { "children": [ @@ -5918,13 +6392,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 897, + "referencedDeclaration": 660, "type": "uint256", "value": "denomination" }, - "id": 968, + "id": 739, "name": "Identifier", - "src": "2377:12:8" + "src": "1792:12:2" }, { "attributes": { @@ -5932,33 +6406,33 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 943, + "referencedDeclaration": 710, "type": "uint256", "value": "_denomination" }, - "id": 969, + "id": 740, "name": "Identifier", - "src": "2392:13:8" + "src": "1807:13:2" } ], - "id": 970, + "id": 741, "name": "Assignment", - "src": "2377:28:8" + "src": "1792:28:2" } ], - "id": 971, + "id": 742, "name": "ExpressionStatement", - "src": "2377:28:8" + "src": "1792:28:2" } ], - "id": 972, + "id": 743, "name": "Block", - "src": "2246:164:8" + "src": "1631:194:2" } ], - "id": 973, + "id": 744, "name": "FunctionDefinition", - "src": "2077:333:8" + "src": "1433:392:2" }, { "attributes": { @@ -5967,7 +6441,7 @@ "isConstructor": false, "kind": "function", "name": "deposit", - "scope": 1194, + "scope": 970, "stateMutability": "payable", "superFunction": null, "visibility": "external" @@ -5979,7 +6453,7 @@ "attributes": { "constant": false, "name": "_commitment", - "scope": 1011, + "scope": 782, "stateVariable": false, "storageLocation": "default", "type": "bytes32", @@ -5992,19 +6466,19 @@ "name": "bytes32", "type": "bytes32" }, - "id": 974, + "id": 745, "name": "ElementaryTypeName", - "src": "2675:7:8" + "src": "2090:7:2" } ], - "id": 975, + "id": 746, "name": "VariableDeclaration", - "src": "2675:19:8" + "src": "2090:19:2" } ], - "id": 976, + "id": 747, "name": "ParameterList", - "src": "2674:21:8" + "src": "2089:21:2" }, { "attributes": { @@ -6013,9 +6487,9 @@ ] }, "children": [], - "id": 979, + "id": 750, "name": "ParameterList", - "src": "2726:0:8" + "src": "2141:0:2" }, { "attributes": { @@ -6028,18 +6502,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 3244, + "referencedDeclaration": 999, "type": "modifier ()", "value": "nonReentrant" }, - "id": 977, + "id": 748, "name": "Identifier", - "src": "2713:12:8" + "src": "2128:12:2" } ], - "id": 978, + "id": 749, "name": "ModifierInvocation", - "src": "2713:12:8" + "src": "2128:12:2" }, { "children": [ @@ -6073,16 +6547,16 @@ } ], "overloadedDeclarations": [ - 3263, - 3264 + 1018, + 1019 ], - "referencedDeclaration": 3264, + "referencedDeclaration": 1019, "type": "function (bool,string memory) pure", "value": "require" }, - "id": 980, + "id": 751, "name": "Identifier", - "src": "2732:7:8" + "src": "2147:7:2" }, { "attributes": { @@ -6112,13 +6586,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 905, + "referencedDeclaration": 668, "type": "mapping(bytes32 => bool)", "value": "commitments" }, - "id": 981, + "id": 752, "name": "Identifier", - "src": "2741:11:8" + "src": "2156:11:2" }, { "attributes": { @@ -6126,23 +6600,23 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 975, + "referencedDeclaration": 746, "type": "bytes32", "value": "_commitment" }, - "id": 982, + "id": 753, "name": "Identifier", - "src": "2753:11:8" + "src": "2168:11:2" } ], - "id": 983, + "id": 754, "name": "IndexAccess", - "src": "2741:24:8" + "src": "2156:24:2" } ], - "id": 984, + "id": 755, "name": "UnaryOperation", - "src": "2740:25:8" + "src": "2155:25:2" }, { "attributes": { @@ -6157,24 +6631,24 @@ "type": "literal_string \"The commitment has been submitted\"", "value": "The commitment has been submitted" }, - "id": 985, + "id": 756, "name": "Literal", - "src": "2767:35:8" + "src": "2182:35:2" } ], - "id": 986, + "id": 757, "name": "FunctionCall", - "src": "2732:71:8" + "src": "2147:71:2" } ], - "id": 987, + "id": 758, "name": "ExpressionStatement", - "src": "2732:71:8" + "src": "2147:71:2" }, { "attributes": { "assignments": [ - 989 + 760 ] }, "children": [ @@ -6182,7 +6656,7 @@ "attributes": { "constant": false, "name": "insertedIndex", - "scope": 1010, + "scope": 781, "stateVariable": false, "storageLocation": "default", "type": "uint32", @@ -6195,14 +6669,14 @@ "name": "uint32", "type": "uint32" }, - "id": 988, + "id": 759, "name": "ElementaryTypeName", - "src": "2810:6:8" + "src": "2225:6:2" } ], - "id": 989, + "id": 760, "name": "VariableDeclaration", - "src": "2810:20:8" + "src": "2225:20:2" }, { "attributes": { @@ -6230,13 +6704,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 636, + "referencedDeclaration": 574, "type": "function (bytes32) returns (uint32)", "value": "_insert" }, - "id": 990, + "id": 761, "name": "Identifier", - "src": "2833:7:8" + "src": "2248:7:2" }, { "attributes": { @@ -6244,23 +6718,23 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 975, + "referencedDeclaration": 746, "type": "bytes32", "value": "_commitment" }, - "id": 991, + "id": 762, "name": "Identifier", - "src": "2841:11:8" + "src": "2256:11:2" } ], - "id": 992, + "id": 763, "name": "FunctionCall", - "src": "2833:20:8" + "src": "2248:20:2" } ], - "id": 993, + "id": 764, "name": "VariableDeclarationStatement", - "src": "2810:43:8" + "src": "2225:43:2" }, { "children": [ @@ -6291,13 +6765,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 905, + "referencedDeclaration": 668, "type": "mapping(bytes32 => bool)", "value": "commitments" }, - "id": 994, + "id": 765, "name": "Identifier", - "src": "2859:11:8" + "src": "2274:11:2" }, { "attributes": { @@ -6305,18 +6779,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 975, + "referencedDeclaration": 746, "type": "bytes32", "value": "_commitment" }, - "id": 995, + "id": 766, "name": "Identifier", - "src": "2871:11:8" + "src": "2286:11:2" } ], - "id": 996, + "id": 767, "name": "IndexAccess", - "src": "2859:24:8" + "src": "2274:24:2" }, { "attributes": { @@ -6331,19 +6805,19 @@ "type": "bool", "value": "true" }, - "id": 997, + "id": 768, "name": "Literal", - "src": "2886:4:8" + "src": "2301:4:2" } ], - "id": 998, + "id": 769, "name": "Assignment", - "src": "2859:31:8" + "src": "2274:31:2" } ], - "id": 999, + "id": 770, "name": "ExpressionStatement", - "src": "2859:31:8" + "src": "2274:31:2" }, { "children": [ @@ -6373,23 +6847,23 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1014, + "referencedDeclaration": 785, "type": "function ()", "value": "_processDeposit" }, - "id": 1000, + "id": 771, "name": "Identifier", - "src": "2896:15:8" + "src": "2311:15:2" } ], - "id": 1001, + "id": 772, "name": "FunctionCall", - "src": "2896:17:8" + "src": "2311:17:2" } ], - "id": 1002, + "id": 773, "name": "ExpressionStatement", - "src": "2896:17:8" + "src": "2311:17:2" }, { "children": [ @@ -6427,13 +6901,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 929, + "referencedDeclaration": 694, "type": "function (bytes32,uint32,uint256)", "value": "Deposit" }, - "id": 1003, + "id": 774, "name": "Identifier", - "src": "2925:7:8" + "src": "2340:7:2" }, { "attributes": { @@ -6441,13 +6915,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 975, + "referencedDeclaration": 746, "type": "bytes32", "value": "_commitment" }, - "id": 1004, + "id": 775, "name": "Identifier", - "src": "2933:11:8" + "src": "2348:11:2" }, { "attributes": { @@ -6455,13 +6929,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 989, + "referencedDeclaration": 760, "type": "uint32", "value": "insertedIndex" }, - "id": 1005, + "id": 776, "name": "Identifier", - "src": "2946:13:8" + "src": "2361:13:2" }, { "attributes": { @@ -6481,38 +6955,38 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 3250, + "referencedDeclaration": 1005, "type": "block", "value": "block" }, - "id": 1006, + "id": 777, "name": "Identifier", - "src": "2961:5:8" + "src": "2376:5:2" } ], - "id": 1007, + "id": 778, "name": "MemberAccess", - "src": "2961:15:8" + "src": "2376:15:2" } ], - "id": 1008, + "id": 779, "name": "FunctionCall", - "src": "2925:52:8" + "src": "2340:52:2" } ], - "id": 1009, + "id": 780, "name": "EmitStatement", - "src": "2920:57:8" + "src": "2335:57:2" } ], - "id": 1010, + "id": 781, "name": "Block", - "src": "2726:256:8" + "src": "2141:256:2" } ], - "id": 1011, + "id": 782, "name": "FunctionDefinition", - "src": "2658:324:8" + "src": "2073:324:2" }, { "attributes": { @@ -6525,7 +6999,7 @@ null ], "name": "_processDeposit", - "scope": 1194, + "scope": 970, "stateMutability": "nonpayable", "superFunction": null, "visibility": "internal" @@ -6538,9 +7012,9 @@ ] }, "children": [], - "id": 1012, + "id": 783, "name": "ParameterList", - "src": "3069:2:8" + "src": "2484:2:2" }, { "attributes": { @@ -6549,14 +7023,14 @@ ] }, "children": [], - "id": 1013, + "id": 784, "name": "ParameterList", - "src": "3080:0:8" + "src": "2495:0:2" } ], - "id": 1014, + "id": 785, "name": "FunctionDefinition", - "src": "3045:36:8" + "src": "2460:36:2" }, { "attributes": { @@ -6565,7 +7039,7 @@ "isConstructor": false, "kind": "function", "name": "withdraw", - "scope": 1194, + "scope": 970, "stateMutability": "payable", "superFunction": null, "visibility": "external" @@ -6577,7 +7051,7 @@ "attributes": { "constant": false, "name": "_proof", - "scope": 1099, + "scope": 873, "stateVariable": false, "storageLocation": "calldata", "type": "bytes", @@ -6590,20 +7064,20 @@ "name": "bytes", "type": "bytes" }, - "id": 1015, + "id": 786, "name": "ElementaryTypeName", - "src": "3496:5:8" + "src": "2911:5:2" } ], - "id": 1016, + "id": 787, "name": "VariableDeclaration", - "src": "3496:21:8" + "src": "2911:21:2" }, { "attributes": { "constant": false, "name": "_root", - "scope": 1099, + "scope": 873, "stateVariable": false, "storageLocation": "default", "type": "bytes32", @@ -6616,20 +7090,20 @@ "name": "bytes32", "type": "bytes32" }, - "id": 1017, + "id": 788, "name": "ElementaryTypeName", - "src": "3519:7:8" + "src": "2934:7:2" } ], - "id": 1018, + "id": 789, "name": "VariableDeclaration", - "src": "3519:13:8" + "src": "2934:13:2" }, { "attributes": { "constant": false, "name": "_nullifierHash", - "scope": 1099, + "scope": 873, "stateVariable": false, "storageLocation": "default", "type": "bytes32", @@ -6642,20 +7116,20 @@ "name": "bytes32", "type": "bytes32" }, - "id": 1019, + "id": 790, "name": "ElementaryTypeName", - "src": "3534:7:8" + "src": "2949:7:2" } ], - "id": 1020, + "id": 791, "name": "VariableDeclaration", - "src": "3534:22:8" + "src": "2949:22:2" }, { "attributes": { "constant": false, "name": "_recipient", - "scope": 1099, + "scope": 873, "stateVariable": false, "storageLocation": "default", "type": "address payable", @@ -6669,20 +7143,20 @@ "stateMutability": "payable", "type": "address payable" }, - "id": 1021, + "id": 792, "name": "ElementaryTypeName", - "src": "3558:15:8" + "src": "2973:15:2" } ], - "id": 1022, + "id": 793, "name": "VariableDeclaration", - "src": "3558:26:8" + "src": "2973:26:2" }, { "attributes": { "constant": false, "name": "_relayer", - "scope": 1099, + "scope": 873, "stateVariable": false, "storageLocation": "default", "type": "address payable", @@ -6696,20 +7170,20 @@ "stateMutability": "payable", "type": "address payable" }, - "id": 1023, + "id": 794, "name": "ElementaryTypeName", - "src": "3586:15:8" + "src": "3001:15:2" } ], - "id": 1024, + "id": 795, "name": "VariableDeclaration", - "src": "3586:24:8" + "src": "3001:24:2" }, { "attributes": { "constant": false, "name": "_fee", - "scope": 1099, + "scope": 873, "stateVariable": false, "storageLocation": "default", "type": "uint256", @@ -6722,20 +7196,20 @@ "name": "uint256", "type": "uint256" }, - "id": 1025, + "id": 796, "name": "ElementaryTypeName", - "src": "3612:7:8" + "src": "3027:7:2" } ], - "id": 1026, + "id": 797, "name": "VariableDeclaration", - "src": "3612:12:8" + "src": "3027:12:2" }, { "attributes": { "constant": false, "name": "_refund", - "scope": 1099, + "scope": 873, "stateVariable": false, "storageLocation": "default", "type": "uint256", @@ -6748,19 +7222,19 @@ "name": "uint256", "type": "uint256" }, - "id": 1027, + "id": 798, "name": "ElementaryTypeName", - "src": "3626:7:8" + "src": "3041:7:2" } ], - "id": 1028, + "id": 799, "name": "VariableDeclaration", - "src": "3626:15:8" + "src": "3041:15:2" } ], - "id": 1029, + "id": 800, "name": "ParameterList", - "src": "3495:147:8" + "src": "2910:147:2" }, { "attributes": { @@ -6769,9 +7243,9 @@ ] }, "children": [], - "id": 1032, + "id": 803, "name": "ParameterList", - "src": "3673:0:8" + "src": "3088:0:2" }, { "attributes": { @@ -6784,18 +7258,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 3244, + "referencedDeclaration": 999, "type": "modifier ()", "value": "nonReentrant" }, - "id": 1030, + "id": 801, "name": "Identifier", - "src": "3660:12:8" + "src": "3075:12:2" } ], - "id": 1031, + "id": 802, "name": "ModifierInvocation", - "src": "3660:12:8" + "src": "3075:12:2" }, { "children": [ @@ -6829,16 +7303,16 @@ } ], "overloadedDeclarations": [ - 3263, - 3264 + 1018, + 1019 ], - "referencedDeclaration": 3264, + "referencedDeclaration": 1019, "type": "function (bool,string memory) pure", "value": "require" }, - "id": 1033, + "id": 804, "name": "Identifier", - "src": "3679:7:8" + "src": "3094:7:2" }, { "attributes": { @@ -6861,13 +7335,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1026, + "referencedDeclaration": 797, "type": "uint256", "value": "_fee" }, - "id": 1034, + "id": 805, "name": "Identifier", - "src": "3687:4:8" + "src": "3102:4:2" }, { "attributes": { @@ -6875,18 +7349,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 897, + "referencedDeclaration": 660, "type": "uint256", "value": "denomination" }, - "id": 1035, + "id": 806, "name": "Identifier", - "src": "3695:12:8" + "src": "3110:12:2" } ], - "id": 1036, + "id": 807, "name": "BinaryOperation", - "src": "3687:20:8" + "src": "3102:20:2" }, { "attributes": { @@ -6901,19 +7375,19 @@ "type": "literal_string \"Fee exceeds transfer value\"", "value": "Fee exceeds transfer value" }, - "id": 1037, + "id": 808, "name": "Literal", - "src": "3709:28:8" + "src": "3124:28:2" } ], - "id": 1038, + "id": 809, "name": "FunctionCall", - "src": "3679:59:8" + "src": "3094:59:2" } ], - "id": 1039, + "id": 810, "name": "ExpressionStatement", - "src": "3679:59:8" + "src": "3094:59:2" }, { "children": [ @@ -6945,16 +7419,16 @@ } ], "overloadedDeclarations": [ - 3263, - 3264 + 1018, + 1019 ], - "referencedDeclaration": 3264, + "referencedDeclaration": 1019, "type": "function (bool,string memory) pure", "value": "require" }, - "id": 1040, + "id": 811, "name": "Identifier", - "src": "3744:7:8" + "src": "3159:7:2" }, { "attributes": { @@ -6984,13 +7458,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 901, + "referencedDeclaration": 664, "type": "mapping(bytes32 => bool)", "value": "nullifierHashes" }, - "id": 1041, + "id": 812, "name": "Identifier", - "src": "3753:15:8" + "src": "3168:15:2" }, { "attributes": { @@ -6998,23 +7472,23 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1020, + "referencedDeclaration": 791, "type": "bytes32", "value": "_nullifierHash" }, - "id": 1042, + "id": 813, "name": "Identifier", - "src": "3769:14:8" + "src": "3184:14:2" } ], - "id": 1043, + "id": 814, "name": "IndexAccess", - "src": "3753:31:8" + "src": "3168:31:2" } ], - "id": 1044, + "id": 815, "name": "UnaryOperation", - "src": "3752:32:8" + "src": "3167:32:2" }, { "attributes": { @@ -7029,19 +7503,19 @@ "type": "literal_string \"The note has been already spent\"", "value": "The note has been already spent" }, - "id": 1045, + "id": 816, "name": "Literal", - "src": "3786:33:8" + "src": "3201:33:2" } ], - "id": 1046, + "id": 817, "name": "FunctionCall", - "src": "3744:76:8" + "src": "3159:76:2" } ], - "id": 1047, + "id": 818, "name": "ExpressionStatement", - "src": "3744:76:8" + "src": "3159:76:2" }, { "children": [ @@ -7073,16 +7547,16 @@ } ], "overloadedDeclarations": [ - 3263, - 3264 + 1018, + 1019 ], - "referencedDeclaration": 3264, + "referencedDeclaration": 1019, "type": "function (bool,string memory) pure", "value": "require" }, - "id": 1048, + "id": 819, "name": "Identifier", - "src": "3826:7:8" + "src": "3241:7:2" }, { "attributes": { @@ -7110,13 +7584,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 683, + "referencedDeclaration": 621, "type": "function (bytes32) view returns (bool)", "value": "isKnownRoot" }, - "id": 1049, + "id": 820, "name": "Identifier", - "src": "3834:11:8" + "src": "3249:11:2" }, { "attributes": { @@ -7124,18 +7598,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1018, + "referencedDeclaration": 789, "type": "bytes32", "value": "_root" }, - "id": 1050, + "id": 821, "name": "Identifier", - "src": "3846:5:8" + "src": "3261:5:2" } ], - "id": 1051, + "id": 822, "name": "FunctionCall", - "src": "3834:18:8" + "src": "3249:18:2" }, { "attributes": { @@ -7150,19 +7624,19 @@ "type": "literal_string \"Cannot find your merkle root\"", "value": "Cannot find your merkle root" }, - "id": 1052, + "id": 823, "name": "Literal", - "src": "3854:30:8" + "src": "3269:30:2" } ], - "id": 1053, + "id": 824, "name": "FunctionCall", - "src": "3826:59:8" + "src": "3241:59:2" } ], - "id": 1054, + "id": 825, "name": "ExpressionStatement", - "src": "3826:59:8" + "src": "3241:59:2" }, { "children": [ @@ -7194,16 +7668,16 @@ } ], "overloadedDeclarations": [ - 3263, - 3264 + 1018, + 1019 ], - "referencedDeclaration": 3264, + "referencedDeclaration": 1019, "type": "function (bool,string memory) pure", "value": "require" }, - "id": 1055, + "id": 826, "name": "Identifier", - "src": "3924:7:8" + "src": "3339:7:2" }, { "attributes": { @@ -7237,7 +7711,7 @@ "isPure": false, "lValueRequested": false, "member_name": "verifyProof", - "referencedDeclaration": 890, + "referencedDeclaration": 647, "type": "function (bytes memory,uint256[6] memory) external returns (bool)" }, "children": [ @@ -7247,18 +7721,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 907, + "referencedDeclaration": 670, "type": "contract IVerifier", "value": "verifier" }, - "id": 1056, + "id": 827, "name": "Identifier", - "src": "3932:8:8" + "src": "3347:8:2" } ], - "id": 1057, + "id": 828, "name": "MemberAccess", - "src": "3932:20:8" + "src": "3347:20:2" }, { "attributes": { @@ -7266,13 +7740,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1016, + "referencedDeclaration": 787, "type": "bytes calldata", "value": "_proof" }, - "id": 1058, + "id": 829, "name": "Identifier", - "src": "3953:6:8" + "src": "3368:6:2" }, { "attributes": { @@ -7315,9 +7789,9 @@ "type": "type(uint256)", "value": "uint256" }, - "id": 1059, + "id": 830, "name": "ElementaryTypeNameExpression", - "src": "3962:7:8" + "src": "3377:7:2" }, { "attributes": { @@ -7325,18 +7799,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1018, + "referencedDeclaration": 789, "type": "bytes32", "value": "_root" }, - "id": 1060, + "id": 831, "name": "Identifier", - "src": "3970:5:8" + "src": "3385:5:2" } ], - "id": 1061, + "id": 832, "name": "FunctionCall", - "src": "3962:14:8" + "src": "3377:14:2" }, { "attributes": { @@ -7368,9 +7842,9 @@ "type": "type(uint256)", "value": "uint256" }, - "id": 1062, + "id": 833, "name": "ElementaryTypeNameExpression", - "src": "3978:7:8" + "src": "3393:7:2" }, { "attributes": { @@ -7378,18 +7852,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1020, + "referencedDeclaration": 791, "type": "bytes32", "value": "_nullifierHash" }, - "id": 1063, + "id": 834, "name": "Identifier", - "src": "3986:14:8" + "src": "3401:14:2" } ], - "id": 1064, + "id": 835, "name": "FunctionCall", - "src": "3978:23:8" + "src": "3393:23:2" }, { "attributes": { @@ -7421,9 +7895,9 @@ "type": "type(uint256)", "value": "uint256" }, - "id": 1065, + "id": 836, "name": "ElementaryTypeNameExpression", - "src": "4003:7:8" + "src": "3418:7:2" }, { "attributes": { @@ -7431,18 +7905,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1022, + "referencedDeclaration": 793, "type": "address payable", "value": "_recipient" }, - "id": 1066, + "id": 837, "name": "Identifier", - "src": "4011:10:8" + "src": "3426:10:2" } ], - "id": 1067, + "id": 838, "name": "FunctionCall", - "src": "4003:19:8" + "src": "3418:19:2" }, { "attributes": { @@ -7474,9 +7948,9 @@ "type": "type(uint256)", "value": "uint256" }, - "id": 1068, + "id": 839, "name": "ElementaryTypeNameExpression", - "src": "4024:7:8" + "src": "3439:7:2" }, { "attributes": { @@ -7484,18 +7958,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1024, + "referencedDeclaration": 795, "type": "address payable", "value": "_relayer" }, - "id": 1069, + "id": 840, "name": "Identifier", - "src": "4032:8:8" + "src": "3447:8:2" } ], - "id": 1070, + "id": 841, "name": "FunctionCall", - "src": "4024:17:8" + "src": "3439:17:2" }, { "attributes": { @@ -7503,13 +7977,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1026, + "referencedDeclaration": 797, "type": "uint256", "value": "_fee" }, - "id": 1071, + "id": 842, "name": "Identifier", - "src": "4043:4:8" + "src": "3458:4:2" }, { "attributes": { @@ -7517,23 +7991,23 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1028, + "referencedDeclaration": 799, "type": "uint256", "value": "_refund" }, - "id": 1072, + "id": 843, "name": "Identifier", - "src": "4049:7:8" + "src": "3464:7:2" } ], - "id": 1073, + "id": 844, "name": "TupleExpression", - "src": "3961:96:8" + "src": "3376:96:2" } ], - "id": 1074, + "id": 845, "name": "FunctionCall", - "src": "3932:126:8" + "src": "3347:126:2" }, { "attributes": { @@ -7548,19 +8022,19 @@ "type": "literal_string \"Invalid withdraw proof\"", "value": "Invalid withdraw proof" }, - "id": 1075, + "id": 846, "name": "Literal", - "src": "4060:24:8" + "src": "3475:24:2" } ], - "id": 1076, + "id": 847, "name": "FunctionCall", - "src": "3924:161:8" + "src": "3339:161:2" } ], - "id": 1077, + "id": 848, "name": "ExpressionStatement", - "src": "3924:161:8" + "src": "3339:161:2" }, { "children": [ @@ -7591,13 +8065,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 901, + "referencedDeclaration": 664, "type": "mapping(bytes32 => bool)", "value": "nullifierHashes" }, - "id": 1078, + "id": 849, "name": "Identifier", - "src": "4092:15:8" + "src": "3507:15:2" }, { "attributes": { @@ -7605,18 +8079,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1020, + "referencedDeclaration": 791, "type": "bytes32", "value": "_nullifierHash" }, - "id": 1079, + "id": 850, "name": "Identifier", - "src": "4108:14:8" + "src": "3523:14:2" } ], - "id": 1080, + "id": 851, "name": "IndexAccess", - "src": "4092:31:8" + "src": "3507:31:2" }, { "attributes": { @@ -7631,19 +8105,19 @@ "type": "bool", "value": "true" }, - "id": 1081, + "id": 852, "name": "Literal", - "src": "4126:4:8" + "src": "3541:4:2" } ], - "id": 1082, + "id": 853, "name": "Assignment", - "src": "4092:38:8" + "src": "3507:38:2" } ], - "id": 1083, + "id": 854, "name": "ExpressionStatement", - "src": "4092:38:8" + "src": "3507:38:2" }, { "children": [ @@ -7680,18 +8154,22 @@ { "typeIdentifier": "t_uint256", "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" } ], "overloadedDeclarations": [ null ], - "referencedDeclaration": 1110, - "type": "function (address payable,address payable,uint256,uint256)", + "referencedDeclaration": 886, + "type": "function (address payable,address payable,uint256,uint256,address)", "value": "_processWithdraw" }, - "id": 1084, + "id": 855, "name": "Identifier", - "src": "4136:16:8" + "src": "3551:16:2" }, { "attributes": { @@ -7699,13 +8177,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1022, + "referencedDeclaration": 793, "type": "address payable", "value": "_recipient" }, - "id": 1085, + "id": 856, "name": "Identifier", - "src": "4153:10:8" + "src": "3568:10:2" }, { "attributes": { @@ -7713,13 +8191,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1024, + "referencedDeclaration": 795, "type": "address payable", "value": "_relayer" }, - "id": 1086, + "id": 857, "name": "Identifier", - "src": "4165:8:8" + "src": "3580:8:2" }, { "attributes": { @@ -7727,13 +8205,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1026, + "referencedDeclaration": 797, "type": "uint256", "value": "_fee" }, - "id": 1087, + "id": 858, "name": "Identifier", - "src": "4175:4:8" + "src": "3590:4:2" }, { "attributes": { @@ -7741,23 +8219,79 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1028, + "referencedDeclaration": 799, "type": "uint256", "value": "_refund" }, - "id": 1088, + "id": 859, "name": "Identifier", - "src": "4181:7:8" + "src": "3596:7:2" + }, + { + "attributes": { + "argumentTypes": null, + "arguments": [ + null + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "address", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + null + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "feeTo", + "referencedDeclaration": 653, + "type": "function () view external returns (address)" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 672, + "type": "contract IFeeManager", + "value": "feeManager" + }, + "id": 860, + "name": "Identifier", + "src": "3605:10:2" + } + ], + "id": 861, + "name": "MemberAccess", + "src": "3605:16:2" + } + ], + "id": 862, + "name": "FunctionCall", + "src": "3605:18:2" } ], - "id": 1089, + "id": 863, "name": "FunctionCall", - "src": "4136:53:8" + "src": "3551:73:2" } ], - "id": 1090, + "id": 864, "name": "ExpressionStatement", - "src": "4136:53:8" + "src": "3551:73:2" }, { "children": [ @@ -7799,13 +8333,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 939, + "referencedDeclaration": 704, "type": "function (address,bytes32,address,uint256)", "value": "Withdrawal" }, - "id": 1091, + "id": 865, "name": "Identifier", - "src": "4200:10:8" + "src": "3635:10:2" }, { "attributes": { @@ -7813,13 +8347,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1022, + "referencedDeclaration": 793, "type": "address payable", "value": "_recipient" }, - "id": 1092, + "id": 866, "name": "Identifier", - "src": "4211:10:8" + "src": "3646:10:2" }, { "attributes": { @@ -7827,13 +8361,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1020, + "referencedDeclaration": 791, "type": "bytes32", "value": "_nullifierHash" }, - "id": 1093, + "id": 867, "name": "Identifier", - "src": "4223:14:8" + "src": "3658:14:2" }, { "attributes": { @@ -7841,13 +8375,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1024, + "referencedDeclaration": 795, "type": "address payable", "value": "_relayer" }, - "id": 1094, + "id": 868, "name": "Identifier", - "src": "4239:8:8" + "src": "3674:8:2" }, { "attributes": { @@ -7855,33 +8389,33 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1026, + "referencedDeclaration": 797, "type": "uint256", "value": "_fee" }, - "id": 1095, + "id": 869, "name": "Identifier", - "src": "4249:4:8" + "src": "3684:4:2" } ], - "id": 1096, + "id": 870, "name": "FunctionCall", - "src": "4200:54:8" + "src": "3635:54:2" } ], - "id": 1097, + "id": 871, "name": "EmitStatement", - "src": "4195:59:8" + "src": "3630:59:2" } ], - "id": 1098, + "id": 872, "name": "Block", - "src": "3673:586:8" + "src": "3088:606:2" } ], - "id": 1099, + "id": 873, "name": "FunctionDefinition", - "src": "3478:781:8" + "src": "2893:801:2" }, { "attributes": { @@ -7894,7 +8428,7 @@ null ], "name": "_processWithdraw", - "scope": 1194, + "scope": 970, "stateMutability": "nonpayable", "superFunction": null, "visibility": "internal" @@ -7906,7 +8440,7 @@ "attributes": { "constant": false, "name": "_recipient", - "scope": 1110, + "scope": 886, "stateVariable": false, "storageLocation": "default", "type": "address payable", @@ -7920,20 +8454,20 @@ "stateMutability": "payable", "type": "address payable" }, - "id": 1100, + "id": 874, "name": "ElementaryTypeName", - "src": "4348:15:8" + "src": "3783:15:2" } ], - "id": 1101, + "id": 875, "name": "VariableDeclaration", - "src": "4348:26:8" + "src": "3783:26:2" }, { "attributes": { "constant": false, "name": "_relayer", - "scope": 1110, + "scope": 886, "stateVariable": false, "storageLocation": "default", "type": "address payable", @@ -7947,20 +8481,20 @@ "stateMutability": "payable", "type": "address payable" }, - "id": 1102, + "id": 876, "name": "ElementaryTypeName", - "src": "4376:15:8" + "src": "3811:15:2" } ], - "id": 1103, + "id": 877, "name": "VariableDeclaration", - "src": "4376:24:8" + "src": "3811:24:2" }, { "attributes": { "constant": false, - "name": "_fee", - "scope": 1110, + "name": "_relayer_fee", + "scope": 886, "stateVariable": false, "storageLocation": "default", "type": "uint256", @@ -7973,20 +8507,20 @@ "name": "uint256", "type": "uint256" }, - "id": 1104, + "id": 878, "name": "ElementaryTypeName", - "src": "4402:7:8" + "src": "3837:7:2" } ], - "id": 1105, + "id": 879, "name": "VariableDeclaration", - "src": "4402:12:8" + "src": "3837:20:2" }, { "attributes": { "constant": false, "name": "_refund", - "scope": 1110, + "scope": 886, "stateVariable": false, "storageLocation": "default", "type": "uint256", @@ -7999,19 +8533,46 @@ "name": "uint256", "type": "uint256" }, - "id": 1106, + "id": 880, "name": "ElementaryTypeName", - "src": "4416:7:8" + "src": "3859:7:2" } ], - "id": 1107, + "id": 881, "name": "VariableDeclaration", - "src": "4416:15:8" + "src": "3859:15:2" + }, + { + "attributes": { + "constant": false, + "name": "_feeTo", + "scope": 886, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 882, + "name": "ElementaryTypeName", + "src": "3876:7:2" + } + ], + "id": 883, + "name": "VariableDeclaration", + "src": "3876:14:2" } ], - "id": 1108, + "id": 884, "name": "ParameterList", - "src": "4347:85:8" + "src": "3782:109:2" }, { "attributes": { @@ -8020,14 +8581,14 @@ ] }, "children": [], - "id": 1109, + "id": 885, "name": "ParameterList", - "src": "4441:0:8" + "src": "3900:0:2" } ], - "id": 1110, + "id": 886, "name": "FunctionDefinition", - "src": "4322:120:8" + "src": "3757:144:2" }, { "attributes": { @@ -8039,7 +8600,7 @@ null ], "name": "isSpent", - "scope": 1194, + "scope": 970, "stateMutability": "view", "superFunction": null, "visibility": "public" @@ -8051,7 +8612,7 @@ "attributes": { "constant": false, "name": "_nullifierHash", - "scope": 1122, + "scope": 898, "stateVariable": false, "storageLocation": "default", "type": "bytes32", @@ -8064,19 +8625,19 @@ "name": "bytes32", "type": "bytes32" }, - "id": 1111, + "id": 887, "name": "ElementaryTypeName", - "src": "4509:7:8" + "src": "3968:7:2" } ], - "id": 1112, + "id": 888, "name": "VariableDeclaration", - "src": "4509:22:8" + "src": "3968:22:2" } ], - "id": 1113, + "id": 889, "name": "ParameterList", - "src": "4508:24:8" + "src": "3967:24:2" }, { "children": [ @@ -8084,7 +8645,7 @@ "attributes": { "constant": false, "name": "", - "scope": 1122, + "scope": 898, "stateVariable": false, "storageLocation": "default", "type": "bool", @@ -8097,25 +8658,25 @@ "name": "bool", "type": "bool" }, - "id": 1114, + "id": 890, "name": "ElementaryTypeName", - "src": "4553:4:8" + "src": "4012:4:2" } ], - "id": 1115, + "id": 891, "name": "VariableDeclaration", - "src": "4553:4:8" + "src": "4012:4:2" } ], - "id": 1116, + "id": 892, "name": "ParameterList", - "src": "4552:6:8" + "src": "4011:6:2" }, { "children": [ { "attributes": { - "functionReturnParameters": 1116 + "functionReturnParameters": 892 }, "children": [ { @@ -8134,13 +8695,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 901, + "referencedDeclaration": 664, "type": "mapping(bytes32 => bool)", "value": "nullifierHashes" }, - "id": 1117, + "id": 893, "name": "Identifier", - "src": "4572:15:8" + "src": "4031:15:2" }, { "attributes": { @@ -8148,33 +8709,33 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1112, + "referencedDeclaration": 888, "type": "bytes32", "value": "_nullifierHash" }, - "id": 1118, + "id": 894, "name": "Identifier", - "src": "4588:14:8" + "src": "4047:14:2" } ], - "id": 1119, + "id": 895, "name": "IndexAccess", - "src": "4572:31:8" + "src": "4031:31:2" } ], - "id": 1120, + "id": 896, "name": "Return", - "src": "4565:38:8" + "src": "4024:38:2" } ], - "id": 1121, + "id": 897, "name": "Block", - "src": "4559:49:8" + "src": "4018:49:2" } ], - "id": 1122, + "id": 898, "name": "FunctionDefinition", - "src": "4492:116:8" + "src": "3951:116:2" }, { "attributes": { @@ -8186,7 +8747,7 @@ null ], "name": "isSpentArray", - "scope": 1194, + "scope": 970, "stateMutability": "view", "superFunction": null, "visibility": "external" @@ -8198,7 +8759,7 @@ "attributes": { "constant": false, "name": "_nullifierHashes", - "scope": 1167, + "scope": 943, "stateVariable": false, "storageLocation": "calldata", "type": "bytes32[]", @@ -8217,24 +8778,24 @@ "name": "bytes32", "type": "bytes32" }, - "id": 1123, + "id": 899, "name": "ElementaryTypeName", - "src": "4691:7:8" + "src": "4150:7:2" } ], - "id": 1124, + "id": 900, "name": "ArrayTypeName", - "src": "4691:9:8" + "src": "4150:9:2" } ], - "id": 1125, + "id": 901, "name": "VariableDeclaration", - "src": "4691:35:8" + "src": "4150:35:2" } ], - "id": 1126, + "id": 902, "name": "ParameterList", - "src": "4690:37:8" + "src": "4149:37:2" }, { "children": [ @@ -8242,7 +8803,7 @@ "attributes": { "constant": false, "name": "spent", - "scope": 1167, + "scope": 943, "stateVariable": false, "storageLocation": "memory", "type": "bool[]", @@ -8261,24 +8822,24 @@ "name": "bool", "type": "bool" }, - "id": 1127, + "id": 903, "name": "ElementaryTypeName", - "src": "4750:4:8" + "src": "4209:4:2" } ], - "id": 1128, + "id": 904, "name": "ArrayTypeName", - "src": "4750:6:8" + "src": "4209:6:2" } ], - "id": 1129, + "id": 905, "name": "VariableDeclaration", - "src": "4750:19:8" + "src": "4209:19:2" } ], - "id": 1130, + "id": 906, "name": "ParameterList", - "src": "4749:21:8" + "src": "4208:21:2" }, { "children": [ @@ -8301,13 +8862,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1129, + "referencedDeclaration": 905, "type": "bool[] memory", "value": "spent" }, - "id": 1131, + "id": 907, "name": "Identifier", - "src": "4777:5:8" + "src": "4236:5:2" }, { "attributes": { @@ -8350,19 +8911,19 @@ "name": "bool", "type": "bool" }, - "id": 1132, + "id": 908, "name": "ElementaryTypeName", - "src": "4789:4:8" + "src": "4248:4:2" } ], - "id": 1133, + "id": 909, "name": "ArrayTypeName", - "src": "4789:6:8" + "src": "4248:6:2" } ], - "id": 1134, + "id": 910, "name": "NewExpression", - "src": "4785:10:8" + "src": "4244:10:2" }, { "attributes": { @@ -8382,40 +8943,40 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1125, + "referencedDeclaration": 901, "type": "bytes32[] calldata", "value": "_nullifierHashes" }, - "id": 1135, + "id": 911, "name": "Identifier", - "src": "4796:16:8" + "src": "4255:16:2" } ], - "id": 1136, + "id": 912, "name": "MemberAccess", - "src": "4796:23:8" + "src": "4255:23:2" } ], - "id": 1137, + "id": 913, "name": "FunctionCall", - "src": "4785:35:8" + "src": "4244:35:2" } ], - "id": 1138, + "id": 914, "name": "Assignment", - "src": "4777:43:8" + "src": "4236:43:2" } ], - "id": 1139, + "id": 915, "name": "ExpressionStatement", - "src": "4777:43:8" + "src": "4236:43:2" }, { "children": [ { "attributes": { "assignments": [ - 1141 + 917 ] }, "children": [ @@ -8423,7 +8984,7 @@ "attributes": { "constant": false, "name": "i", - "scope": 1165, + "scope": 941, "stateVariable": false, "storageLocation": "default", "type": "uint256", @@ -8436,14 +8997,14 @@ "name": "uint", "type": "uint256" }, - "id": 1140, + "id": 916, "name": "ElementaryTypeName", - "src": "4830:4:8" + "src": "4289:4:2" } ], - "id": 1141, + "id": 917, "name": "VariableDeclaration", - "src": "4830:6:8" + "src": "4289:6:2" }, { "attributes": { @@ -8458,14 +9019,14 @@ "type": "int_const 0", "value": "0" }, - "id": 1142, + "id": 918, "name": "Literal", - "src": "4839:1:8" + "src": "4298:1:2" } ], - "id": 1143, + "id": 919, "name": "VariableDeclarationStatement", - "src": "4830:10:8" + "src": "4289:10:2" }, { "attributes": { @@ -8488,13 +9049,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1141, + "referencedDeclaration": 917, "type": "uint256", "value": "i" }, - "id": 1144, + "id": 920, "name": "Identifier", - "src": "4842:1:8" + "src": "4301:1:2" }, { "attributes": { @@ -8514,23 +9075,23 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1125, + "referencedDeclaration": 901, "type": "bytes32[] calldata", "value": "_nullifierHashes" }, - "id": 1145, + "id": 921, "name": "Identifier", - "src": "4846:16:8" + "src": "4305:16:2" } ], - "id": 1146, + "id": 922, "name": "MemberAccess", - "src": "4846:23:8" + "src": "4305:23:2" } ], - "id": 1147, + "id": 923, "name": "BinaryOperation", - "src": "4842:27:8" + "src": "4301:27:2" }, { "children": [ @@ -8552,23 +9113,23 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1141, + "referencedDeclaration": 917, "type": "uint256", "value": "i" }, - "id": 1148, + "id": 924, "name": "Identifier", - "src": "4871:1:8" + "src": "4330:1:2" } ], - "id": 1149, + "id": 925, "name": "UnaryOperation", - "src": "4871:3:8" + "src": "4330:3:2" } ], - "id": 1150, + "id": 926, "name": "ExpressionStatement", - "src": "4871:3:8" + "src": "4330:3:2" }, { "children": [ @@ -8603,13 +9164,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1122, + "referencedDeclaration": 898, "type": "function (bytes32) view returns (bool)", "value": "isSpent" }, - "id": 1151, + "id": 927, "name": "Identifier", - "src": "4888:7:8" + "src": "4347:7:2" }, { "attributes": { @@ -8627,13 +9188,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1125, + "referencedDeclaration": 901, "type": "bytes32[] calldata", "value": "_nullifierHashes" }, - "id": 1152, + "id": 928, "name": "Identifier", - "src": "4896:16:8" + "src": "4355:16:2" }, { "attributes": { @@ -8641,23 +9202,23 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1141, + "referencedDeclaration": 917, "type": "uint256", "value": "i" }, - "id": 1153, + "id": 929, "name": "Identifier", - "src": "4913:1:8" + "src": "4372:1:2" } ], - "id": 1154, + "id": 930, "name": "IndexAccess", - "src": "4896:19:8" + "src": "4355:19:2" } ], - "id": 1155, + "id": 931, "name": "FunctionCall", - "src": "4888:28:8" + "src": "4347:28:2" }, { "children": [ @@ -8690,13 +9251,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1129, + "referencedDeclaration": 905, "type": "bool[] memory", "value": "spent" }, - "id": 1156, + "id": 932, "name": "Identifier", - "src": "4928:5:8" + "src": "4387:5:2" }, { "attributes": { @@ -8704,18 +9265,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1141, + "referencedDeclaration": 917, "type": "uint256", "value": "i" }, - "id": 1157, + "id": 933, "name": "Identifier", - "src": "4934:1:8" + "src": "4393:1:2" } ], - "id": 1158, + "id": 934, "name": "IndexAccess", - "src": "4928:8:8" + "src": "4387:8:2" }, { "attributes": { @@ -8730,49 +9291,49 @@ "type": "bool", "value": "true" }, - "id": 1159, + "id": 935, "name": "Literal", - "src": "4939:4:8" + "src": "4398:4:2" } ], - "id": 1160, + "id": 936, "name": "Assignment", - "src": "4928:15:8" + "src": "4387:15:2" } ], - "id": 1161, + "id": 937, "name": "ExpressionStatement", - "src": "4928:15:8" + "src": "4387:15:2" } ], - "id": 1162, + "id": 938, "name": "Block", - "src": "4918:34:8" + "src": "4377:34:2" } ], - "id": 1163, + "id": 939, "name": "IfStatement", - "src": "4884:68:8" + "src": "4343:68:2" } ], - "id": 1164, + "id": 940, "name": "Block", - "src": "4876:82:8" + "src": "4335:82:2" } ], - "id": 1165, + "id": 941, "name": "ForStatement", - "src": "4826:132:8" + "src": "4285:132:2" } ], - "id": 1166, + "id": 942, "name": "Block", - "src": "4771:191:8" + "src": "4230:191:2" } ], - "id": 1167, + "id": 943, "name": "FunctionDefinition", - "src": "4669:293:8" + "src": "4128:293:2" }, { "attributes": { @@ -8781,7 +9342,7 @@ "isConstructor": false, "kind": "function", "name": "updateVerifier", - "scope": 1194, + "scope": 970, "stateMutability": "nonpayable", "superFunction": null, "visibility": "external" @@ -8793,7 +9354,7 @@ "attributes": { "constant": false, "name": "_newVerifier", - "scope": 1181, + "scope": 957, "stateVariable": false, "storageLocation": "default", "type": "address", @@ -8807,19 +9368,19 @@ "stateMutability": "nonpayable", "type": "address" }, - "id": 1168, + "id": 944, "name": "ElementaryTypeName", - "src": "5216:7:8" + "src": "4675:7:2" } ], - "id": 1169, + "id": 945, "name": "VariableDeclaration", - "src": "5216:20:8" + "src": "4675:20:2" } ], - "id": 1170, + "id": 946, "name": "ParameterList", - "src": "5215:22:8" + "src": "4674:22:2" }, { "attributes": { @@ -8828,9 +9389,9 @@ ] }, "children": [], - "id": 1173, + "id": 949, "name": "ParameterList", - "src": "5260:0:8" + "src": "4719:0:2" }, { "attributes": { @@ -8843,18 +9404,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 921, + "referencedDeclaration": 686, "type": "modifier ()", "value": "onlyOperator" }, - "id": 1171, + "id": 947, "name": "Identifier", - "src": "5247:12:8" + "src": "4706:12:2" } ], - "id": 1172, + "id": 948, "name": "ModifierInvocation", - "src": "5247:12:8" + "src": "4706:12:2" }, { "children": [ @@ -8877,13 +9438,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 907, + "referencedDeclaration": 670, "type": "contract IVerifier", "value": "verifier" }, - "id": 1174, + "id": 950, "name": "Identifier", - "src": "5266:8:8" + "src": "4725:8:2" }, { "attributes": { @@ -8911,13 +9472,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 891, + "referencedDeclaration": 648, "type": "type(contract IVerifier)", "value": "IVerifier" }, - "id": 1175, + "id": 951, "name": "Identifier", - "src": "5277:9:8" + "src": "4736:9:2" }, { "attributes": { @@ -8925,38 +9486,38 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1169, + "referencedDeclaration": 945, "type": "address", "value": "_newVerifier" }, - "id": 1176, + "id": 952, "name": "Identifier", - "src": "5287:12:8" + "src": "4746:12:2" } ], - "id": 1177, + "id": 953, "name": "FunctionCall", - "src": "5277:23:8" + "src": "4736:23:2" } ], - "id": 1178, + "id": 954, "name": "Assignment", - "src": "5266:34:8" + "src": "4725:34:2" } ], - "id": 1179, + "id": 955, "name": "ExpressionStatement", - "src": "5266:34:8" + "src": "4725:34:2" } ], - "id": 1180, + "id": 956, "name": "Block", - "src": "5260:45:8" + "src": "4719:45:2" } ], - "id": 1181, + "id": 957, "name": "FunctionDefinition", - "src": "5192:113:8" + "src": "4651:113:2" }, { "attributes": { @@ -8965,7 +9526,7 @@ "isConstructor": false, "kind": "function", "name": "changeOperator", - "scope": 1194, + "scope": 970, "stateMutability": "nonpayable", "superFunction": null, "visibility": "external" @@ -8977,7 +9538,7 @@ "attributes": { "constant": false, "name": "_newOperator", - "scope": 1193, + "scope": 969, "stateVariable": false, "storageLocation": "default", "type": "address", @@ -8991,19 +9552,19 @@ "stateMutability": "nonpayable", "type": "address" }, - "id": 1182, + "id": 958, "name": "ElementaryTypeName", - "src": "5379:7:8" + "src": "4838:7:2" } ], - "id": 1183, + "id": 959, "name": "VariableDeclaration", - "src": "5379:20:8" + "src": "4838:20:2" } ], - "id": 1184, + "id": 960, "name": "ParameterList", - "src": "5378:22:8" + "src": "4837:22:2" }, { "attributes": { @@ -9012,9 +9573,9 @@ ] }, "children": [], - "id": 1187, + "id": 963, "name": "ParameterList", - "src": "5423:0:8" + "src": "4882:0:2" }, { "attributes": { @@ -9027,18 +9588,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 921, + "referencedDeclaration": 686, "type": "modifier ()", "value": "onlyOperator" }, - "id": 1185, + "id": 961, "name": "Identifier", - "src": "5410:12:8" + "src": "4869:12:2" } ], - "id": 1186, + "id": 962, "name": "ModifierInvocation", - "src": "5410:12:8" + "src": "4869:12:2" }, { "children": [ @@ -9061,13 +9622,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 909, + "referencedDeclaration": 674, "type": "address", "value": "operator" }, - "id": 1188, + "id": 964, "name": "Identifier", - "src": "5429:8:8" + "src": "4888:8:2" }, { "attributes": { @@ -9075,43 +9636,43 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1183, + "referencedDeclaration": 959, "type": "address", "value": "_newOperator" }, - "id": 1189, + "id": 965, "name": "Identifier", - "src": "5440:12:8" + "src": "4899:12:2" } ], - "id": 1190, + "id": 966, "name": "Assignment", - "src": "5429:23:8" + "src": "4888:23:2" } ], - "id": 1191, + "id": 967, "name": "ExpressionStatement", - "src": "5429:23:8" + "src": "4888:23:2" } ], - "id": 1192, + "id": 968, "name": "Block", - "src": "5423:34:8" + "src": "4882:34:2" } ], - "id": 1193, + "id": 969, "name": "FunctionDefinition", - "src": "5355:102:8" + "src": "4814:102:2" } ], - "id": 1194, + "id": 970, "name": "ContractDefinition", - "src": "995:4464:8" + "src": "318:4600:2" } ], - "id": 1195, + "id": 971, "name": "SourceUnit", - "src": "755:4705:8" + "src": "0:4919:2" }, "compiler": { "name": "solc", @@ -9119,7 +9680,7 @@ }, "networks": {}, "schemaVersion": "3.3.4", - "updatedAt": "2021-03-14T02:18:33.093Z", + "updatedAt": "2021-04-02T22:21:29.545Z", "devdoc": { "methods": { "changeOperator(address)": { diff --git a/client/contracts/Verifier.json b/client/contracts/Verifier.json index 5ba4dc6..b66ad18 100644 --- a/client/contracts/Verifier.json +++ b/client/contracts/Verifier.json @@ -64,28 +64,28 @@ "type": "function" } ], - "metadata": "{\"compiler\":{\"version\":\"0.5.17+commit.d19bba13\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"constant\":true,\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"proof\",\"type\":\"bytes\"},{\"internalType\":\"uint256[6]\",\"name\":\"inputs\",\"type\":\"uint256[6]\"}],\"name\":\"verifyProof\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"r\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"uint256[2]\",\"name\":\"a\",\"type\":\"uint256[2]\"},{\"internalType\":\"uint256[2][2]\",\"name\":\"b\",\"type\":\"uint256[2][2]\"},{\"internalType\":\"uint256[2]\",\"name\":\"c\",\"type\":\"uint256[2]\"},{\"internalType\":\"uint256[6]\",\"name\":\"input\",\"type\":\"uint256[6]\"}],\"name\":\"verifyProof\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"r\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/Users/brianli/dotfiles/tornado-core/contracts/Verifier.sol\":\"Verifier\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/Users/brianli/dotfiles/tornado-core/contracts/Verifier.sol\":{\"keccak256\":\"0x1a5bad09fb4c93745d267b5ab910714daf90c73c613b99680b56ffa3b156e04f\",\"urls\":[\"bzz-raw://7c8ee2390aeba638e2f5269ef68f9dc271717a1fd376cdd41841033c4fe30eed\",\"dweb:/ipfs/QmRRxaeV9rMHb85onzMvCRkQLpEYgzqLDNuDhauH8Jxa3k\"]}},\"version\":1}", - "bytecode": "0x608060405234801561001057600080fd5b50611273806100206000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c8063695ef6f91461003b578063f398789b146100be575b600080fd5b6100aa600480360360e081101561005157600080fd5b81019060208101813564010000000081111561006c57600080fd5b82018360208201111561007e57600080fd5b803590602001918460018302840111640100000000831117156100a057600080fd5b91935091506101ba565b604080519115158252519081900360200190f35b6100aa60048036036101c08110156100d557600080fd5b6040805180820182529183019291818301918390600290839083908082843760009201829052506040805180820190915293969594608081019493509150600290835b828210156101565760408051808201825290808402860190600290839083908082843760009201919091525050508152600190910190602001610118565b50506040805180820182529396959481810194935091506002908390839080828437600092019190915250506040805160c0818101909252929594938181019392509060069083908390808284376000920191909152509194506102f39350505050565b60006101c4611113565b6101cc611113565b6101d4611113565b6101dc611113565b87876101008110156101ed57600080fd5b604080518082018252918301929181830191839060029083908390808284376000920191909152505060408051808201825292959493818101939250906002908390839080828437600092019190915250506040805180820182529295949381810193925090600290839083908082843760009201919091525050604080518082018252929594938181019392509060029083908390808284376000920191909152505060408051808201825288815260208101889052815160c0818101909352999d50979b509599509097506102e7968b96958995509093508d92506006915083908390808284376000920191909152506102f3915050565b98975050505050505050565b60006102fd611131565b6040805180820182528751815260208089015181830152908352815160808101835287515181840190815288518301516060808401919091529082528351808501855289840180515182525184015181850152828401528483019190915282518084018452875181528783015181840152848401528251600680825260e0820190945290929091820160c08038833901905050905060005b60068110156103ce578481600681106103aa57fe5b60200201518282815181106103bb57fe5b6020908102919091010152600101610395565b506103d981836103f7565b6103e8576001925050506103ef565b6000925050505b949350505050565b60007f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001610422611163565b61042a6105cf565b905080608001515185516001011461047e576040805162461bcd60e51b81526020600482015260126024820152711d995c9a599a595c8b5898590b5a5b9c1d5d60721b604482015290519081900360640190fd5b6104866111aa565b50604080518082019091526000808252602082018190525b865181101561055857838782815181106104b457fe5b60200260200101511061050e576040805162461bcd60e51b815260206004820152601f60248201527f76657269666965722d6774652d736e61726b2d7363616c61722d6669656c6400604482015290519081900360640190fd5b61054e826105498560800151846001018151811061052857fe5b60200260200101518a858151811061053c57fe5b6020026020010151610b88565b610c1d565b915060010161049e565b5061057b81836080015160008151811061056e57fe5b6020026020010151610c1d565b90506105b161058d8660000151610cae565b8660200151846000015185602001518587604001518b604001518960600151610d3a565b6105c157600193505050506105c9565b600093505050505b92915050565b6105d7611163565b6040805180820182527f0fcfc2efcafb3429843f6a49e370d45db14da85c2137ed560feee4b663066a0381527f0182364bb2791dcc45e8ed7ad9ddc52bb7b9149859cb1aeee4fa7b5945a99d3a6020808301919091529083528151608080820184527f2d44070d402360fbd03a69b1bb4dfdd79b945ee0d50139aac06d4553cf37fedc8285019081527f1d4cde8a13cee9cd33c172c9d6752d36b54db718b05ef009ee667264719797dd606080850191909152908352845180860186527f20afa98dd61d1bb1ba91c0ee55a669e757e522b37552000019e51f8e35ba251981527f1cd81be4140ccd7b14625999a10893899c47bf784f0e41c93d5fc0d556a1c672818601528385015285840192909252835180820185527f2e85ccd2db153246a4cf6515de5a353df58dc0de8de7c2a0fe04b416cce172428186019081527f2c03abe8b7ce32b7d0c266e8836c35dda592eef5f52e5fd63ade612e082f540c828501528152845180860186527f1b5c345b9877aa9f9f16642fc65dbdb5aa6964c8ee03197448402ff2a077a7cf81527f1b065db458a1d0061ae823f771b12593d1647e1e1448c0dd03eba0bae223b5fb818601528185015285850152835190810184527f0897a5ebee8a3a8dd0f570d690d25d81cf8261ea10071627903d51b6f532402b8185019081527f05d21619c75f96c1ee0d13b30f86db9d2697e876728a71b9c4754d6d16a7c12c828401528152835180850185527f13e1039c7372cdaba3ac25cad14bc8893ea39ea79d8b06602140e1afd524b35181527f0a5f1bd5f11ad87cce3b5ad9f795738969836805f76238d3e452487d25d20820818501528184015290840152815160078082526101008201909352919082015b61085b6111aa565b81526020019060019003908161085357505060808201908152604080518082019091527f2240ebc9a289d1e5d3087d1ec046b60b3df8d0a44aefb7337bed0501bf717a5c81527f11249b239031d1a8bcf8856783287db1e987995d2dd4689abecf613a81d0b4f26020820152905180516000906108d457fe5b602002602001018190525060405180604001604052807f2aa927bb0b6af0459b4da2e1231a9e1322d6d1a79ee733f37c81cb2b79f5232281526020017f23d37a7ed52c97c5e5e131f25233d8e045669674efe38697490977cebab21a6f815250816080015160018151811061094557fe5b602002602001018190525060405180604001604052807f0f08bce35b3aa2119319ea9c7abe6f9afac47d08836b685278eb3ffa5559cb5881526020017f0dae08005379882a4914fdca204a42671b015b8d45b71ed01a17a0cd0ba1057a81525081608001516002815181106109b657fe5b602002602001018190525060405180604001604052807f0a2448a220e65412e04976c147341e34821b3d66b406fd7c4e652a7d2329d75a81526020017f1a742da9dec8f0fbaa9c82274b355903fa4ccb9822572415425d81bc701e64848152508160800151600381518110610a2757fe5b602002602001018190525060405180604001604052807f0e342e922b760816aafa7162d172396893a22a2b975e458dc7d4ba6bdeb96b8881526020017f0b34e8fa9fadd0366c56579fcfa651293eb1873a4b8e8039416ad665a3c4e7918152508160800151600481518110610a9857fe5b602002602001018190525060405180604001604052807f078d4c8700680601e6a0e00c18a8b8824058c09f2b97132f07e7728de871fb2881526020017f0d01efd5bcd5d603a442326ce8a0c01d81c621f27e7fcaa957f2aa246ef77f238152508160800151600581518110610b0957fe5b602002602001018190525060405180604001604052807f2da42f0bb52c06fe6cd836fd0c717f3a88ee0c21bddda47e00cf4305cab3ce1081526020017f13e534bb376c4573355c72a9bfcdb84abd349c5683bb3ccca22cb089026295ad8152508160800151600681518110610b7a57fe5b602002602001018190525090565b610b906111aa565b610b986111c4565b835181526020808501519082015260408101839052600060608360808460076107d05a03fa9050808015610bcb57610bcd565bfe5b5080610c15576040805162461bcd60e51b81526020600482015260126024820152711c185a5c9a5b99cb5b5d5b0b59985a5b195960721b604482015290519081900360640190fd5b505092915050565b610c256111aa565b610c2d6111e2565b8351815260208085015181830152835160408301528301516060808301919091526000908360c08460066107d05a03fa9050808015610bcb575080610c15576040805162461bcd60e51b81526020600482015260126024820152711c185a5c9a5b99cb5859190b59985a5b195960721b604482015290519081900360640190fd5b610cb66111aa565b81517f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4790158015610ce957506020830151155b15610d095750506040805180820190915260008082526020820152610d35565b60405180604001604052808460000151815260200182856020015181610d2b57fe5b0683038152509150505b919050565b60408051600480825260a0820190925260009160609190816020015b610d5e6111aa565b815260200190600190039081610d5657505060408051600480825260a0820190925291925060609190602082015b610d94611200565b815260200190600190039081610d8c5790505090508a82600081518110610db757fe5b60200260200101819052508882600181518110610dd057fe5b60200260200101819052508682600281518110610de957fe5b60200260200101819052508482600381518110610e0257fe5b60200260200101819052508981600081518110610e1b57fe5b60200260200101819052508781600181518110610e3457fe5b60200260200101819052508581600281518110610e4d57fe5b60200260200101819052508381600381518110610e6657fe5b6020026020010181905250610e7b8282610e8a565b9b9a5050505050505050505050565b60008151835114610edb576040805162461bcd60e51b81526020600482015260166024820152751c185a5c9a5b99cb5b195b99dd1a1ccb59985a5b195960521b604482015290519081900360640190fd5b8251604080516006830280825260c084028201602001909252606090828015610f0e578160200160208202803883390190505b50905060005b8381101561109357868181518110610f2857fe5b602002602001015160000151828260060260000181518110610f4657fe5b602002602001018181525050868181518110610f5e57fe5b602002602001015160200151828260060260010181518110610f7c57fe5b602002602001018181525050858181518110610f9457fe5b602090810291909101015151518251839060026006850201908110610fb557fe5b602002602001018181525050858181518110610fcd57fe5b60209081029190910101515160016020020151828260060260030181518110610ff257fe5b60200260200101818152505085818151811061100a57fe5b60200260200101516020015160006002811061102257fe5b602002015182826006026004018151811061103957fe5b60200260200101818152505085818151811061105157fe5b60200260200101516020015160016002811061106957fe5b602002015182826006026005018151811061108057fe5b6020908102919091010152600101610f14565b5061109c611220565b6000602082602086026020860160086107d05a03fa9050808015610bcb575080611105576040805162461bcd60e51b81526020600482015260156024820152741c185a5c9a5b99cb5bdc18dbd9194b59985a5b1959605a1b604482015290519081900360640190fd5b505115159695505050505050565b60405180604001604052806002906020820280388339509192915050565b60405180606001604052806111446111aa565b8152602001611151611200565b815260200161115e6111aa565b905290565b6040518060a001604052806111766111aa565b8152602001611183611200565b8152602001611190611200565b815260200161119d611200565b8152602001606081525090565b604051806040016040528060008152602001600081525090565b60405180606001604052806003906020820280388339509192915050565b60405180608001604052806004906020820280388339509192915050565b6040518060400160405280611213611113565b815260200161115e611113565b6040518060200160405280600190602082028038833950919291505056fea265627a7a72315820f07e86acfc775004269c820dd71e3af6ed01b112843762850ede5c9aafb8bcb964736f6c63430005110032", - "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100365760003560e01c8063695ef6f91461003b578063f398789b146100be575b600080fd5b6100aa600480360360e081101561005157600080fd5b81019060208101813564010000000081111561006c57600080fd5b82018360208201111561007e57600080fd5b803590602001918460018302840111640100000000831117156100a057600080fd5b91935091506101ba565b604080519115158252519081900360200190f35b6100aa60048036036101c08110156100d557600080fd5b6040805180820182529183019291818301918390600290839083908082843760009201829052506040805180820190915293969594608081019493509150600290835b828210156101565760408051808201825290808402860190600290839083908082843760009201919091525050508152600190910190602001610118565b50506040805180820182529396959481810194935091506002908390839080828437600092019190915250506040805160c0818101909252929594938181019392509060069083908390808284376000920191909152509194506102f39350505050565b60006101c4611113565b6101cc611113565b6101d4611113565b6101dc611113565b87876101008110156101ed57600080fd5b604080518082018252918301929181830191839060029083908390808284376000920191909152505060408051808201825292959493818101939250906002908390839080828437600092019190915250506040805180820182529295949381810193925090600290839083908082843760009201919091525050604080518082018252929594938181019392509060029083908390808284376000920191909152505060408051808201825288815260208101889052815160c0818101909352999d50979b509599509097506102e7968b96958995509093508d92506006915083908390808284376000920191909152506102f3915050565b98975050505050505050565b60006102fd611131565b6040805180820182528751815260208089015181830152908352815160808101835287515181840190815288518301516060808401919091529082528351808501855289840180515182525184015181850152828401528483019190915282518084018452875181528783015181840152848401528251600680825260e0820190945290929091820160c08038833901905050905060005b60068110156103ce578481600681106103aa57fe5b60200201518282815181106103bb57fe5b6020908102919091010152600101610395565b506103d981836103f7565b6103e8576001925050506103ef565b6000925050505b949350505050565b60007f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001610422611163565b61042a6105cf565b905080608001515185516001011461047e576040805162461bcd60e51b81526020600482015260126024820152711d995c9a599a595c8b5898590b5a5b9c1d5d60721b604482015290519081900360640190fd5b6104866111aa565b50604080518082019091526000808252602082018190525b865181101561055857838782815181106104b457fe5b60200260200101511061050e576040805162461bcd60e51b815260206004820152601f60248201527f76657269666965722d6774652d736e61726b2d7363616c61722d6669656c6400604482015290519081900360640190fd5b61054e826105498560800151846001018151811061052857fe5b60200260200101518a858151811061053c57fe5b6020026020010151610b88565b610c1d565b915060010161049e565b5061057b81836080015160008151811061056e57fe5b6020026020010151610c1d565b90506105b161058d8660000151610cae565b8660200151846000015185602001518587604001518b604001518960600151610d3a565b6105c157600193505050506105c9565b600093505050505b92915050565b6105d7611163565b6040805180820182527f0fcfc2efcafb3429843f6a49e370d45db14da85c2137ed560feee4b663066a0381527f0182364bb2791dcc45e8ed7ad9ddc52bb7b9149859cb1aeee4fa7b5945a99d3a6020808301919091529083528151608080820184527f2d44070d402360fbd03a69b1bb4dfdd79b945ee0d50139aac06d4553cf37fedc8285019081527f1d4cde8a13cee9cd33c172c9d6752d36b54db718b05ef009ee667264719797dd606080850191909152908352845180860186527f20afa98dd61d1bb1ba91c0ee55a669e757e522b37552000019e51f8e35ba251981527f1cd81be4140ccd7b14625999a10893899c47bf784f0e41c93d5fc0d556a1c672818601528385015285840192909252835180820185527f2e85ccd2db153246a4cf6515de5a353df58dc0de8de7c2a0fe04b416cce172428186019081527f2c03abe8b7ce32b7d0c266e8836c35dda592eef5f52e5fd63ade612e082f540c828501528152845180860186527f1b5c345b9877aa9f9f16642fc65dbdb5aa6964c8ee03197448402ff2a077a7cf81527f1b065db458a1d0061ae823f771b12593d1647e1e1448c0dd03eba0bae223b5fb818601528185015285850152835190810184527f0897a5ebee8a3a8dd0f570d690d25d81cf8261ea10071627903d51b6f532402b8185019081527f05d21619c75f96c1ee0d13b30f86db9d2697e876728a71b9c4754d6d16a7c12c828401528152835180850185527f13e1039c7372cdaba3ac25cad14bc8893ea39ea79d8b06602140e1afd524b35181527f0a5f1bd5f11ad87cce3b5ad9f795738969836805f76238d3e452487d25d20820818501528184015290840152815160078082526101008201909352919082015b61085b6111aa565b81526020019060019003908161085357505060808201908152604080518082019091527f2240ebc9a289d1e5d3087d1ec046b60b3df8d0a44aefb7337bed0501bf717a5c81527f11249b239031d1a8bcf8856783287db1e987995d2dd4689abecf613a81d0b4f26020820152905180516000906108d457fe5b602002602001018190525060405180604001604052807f2aa927bb0b6af0459b4da2e1231a9e1322d6d1a79ee733f37c81cb2b79f5232281526020017f23d37a7ed52c97c5e5e131f25233d8e045669674efe38697490977cebab21a6f815250816080015160018151811061094557fe5b602002602001018190525060405180604001604052807f0f08bce35b3aa2119319ea9c7abe6f9afac47d08836b685278eb3ffa5559cb5881526020017f0dae08005379882a4914fdca204a42671b015b8d45b71ed01a17a0cd0ba1057a81525081608001516002815181106109b657fe5b602002602001018190525060405180604001604052807f0a2448a220e65412e04976c147341e34821b3d66b406fd7c4e652a7d2329d75a81526020017f1a742da9dec8f0fbaa9c82274b355903fa4ccb9822572415425d81bc701e64848152508160800151600381518110610a2757fe5b602002602001018190525060405180604001604052807f0e342e922b760816aafa7162d172396893a22a2b975e458dc7d4ba6bdeb96b8881526020017f0b34e8fa9fadd0366c56579fcfa651293eb1873a4b8e8039416ad665a3c4e7918152508160800151600481518110610a9857fe5b602002602001018190525060405180604001604052807f078d4c8700680601e6a0e00c18a8b8824058c09f2b97132f07e7728de871fb2881526020017f0d01efd5bcd5d603a442326ce8a0c01d81c621f27e7fcaa957f2aa246ef77f238152508160800151600581518110610b0957fe5b602002602001018190525060405180604001604052807f2da42f0bb52c06fe6cd836fd0c717f3a88ee0c21bddda47e00cf4305cab3ce1081526020017f13e534bb376c4573355c72a9bfcdb84abd349c5683bb3ccca22cb089026295ad8152508160800151600681518110610b7a57fe5b602002602001018190525090565b610b906111aa565b610b986111c4565b835181526020808501519082015260408101839052600060608360808460076107d05a03fa9050808015610bcb57610bcd565bfe5b5080610c15576040805162461bcd60e51b81526020600482015260126024820152711c185a5c9a5b99cb5b5d5b0b59985a5b195960721b604482015290519081900360640190fd5b505092915050565b610c256111aa565b610c2d6111e2565b8351815260208085015181830152835160408301528301516060808301919091526000908360c08460066107d05a03fa9050808015610bcb575080610c15576040805162461bcd60e51b81526020600482015260126024820152711c185a5c9a5b99cb5859190b59985a5b195960721b604482015290519081900360640190fd5b610cb66111aa565b81517f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4790158015610ce957506020830151155b15610d095750506040805180820190915260008082526020820152610d35565b60405180604001604052808460000151815260200182856020015181610d2b57fe5b0683038152509150505b919050565b60408051600480825260a0820190925260009160609190816020015b610d5e6111aa565b815260200190600190039081610d5657505060408051600480825260a0820190925291925060609190602082015b610d94611200565b815260200190600190039081610d8c5790505090508a82600081518110610db757fe5b60200260200101819052508882600181518110610dd057fe5b60200260200101819052508682600281518110610de957fe5b60200260200101819052508482600381518110610e0257fe5b60200260200101819052508981600081518110610e1b57fe5b60200260200101819052508781600181518110610e3457fe5b60200260200101819052508581600281518110610e4d57fe5b60200260200101819052508381600381518110610e6657fe5b6020026020010181905250610e7b8282610e8a565b9b9a5050505050505050505050565b60008151835114610edb576040805162461bcd60e51b81526020600482015260166024820152751c185a5c9a5b99cb5b195b99dd1a1ccb59985a5b195960521b604482015290519081900360640190fd5b8251604080516006830280825260c084028201602001909252606090828015610f0e578160200160208202803883390190505b50905060005b8381101561109357868181518110610f2857fe5b602002602001015160000151828260060260000181518110610f4657fe5b602002602001018181525050868181518110610f5e57fe5b602002602001015160200151828260060260010181518110610f7c57fe5b602002602001018181525050858181518110610f9457fe5b602090810291909101015151518251839060026006850201908110610fb557fe5b602002602001018181525050858181518110610fcd57fe5b60209081029190910101515160016020020151828260060260030181518110610ff257fe5b60200260200101818152505085818151811061100a57fe5b60200260200101516020015160006002811061102257fe5b602002015182826006026004018151811061103957fe5b60200260200101818152505085818151811061105157fe5b60200260200101516020015160016002811061106957fe5b602002015182826006026005018151811061108057fe5b6020908102919091010152600101610f14565b5061109c611220565b6000602082602086026020860160086107d05a03fa9050808015610bcb575080611105576040805162461bcd60e51b81526020600482015260156024820152741c185a5c9a5b99cb5bdc18dbd9194b59985a5b1959605a1b604482015290519081900360640190fd5b505115159695505050505050565b60405180604001604052806002906020820280388339509192915050565b60405180606001604052806111446111aa565b8152602001611151611200565b815260200161115e6111aa565b905290565b6040518060a001604052806111766111aa565b8152602001611183611200565b8152602001611190611200565b815260200161119d611200565b8152602001606081525090565b604051806040016040528060008152602001600081525090565b60405180606001604052806003906020820280388339509192915050565b60405180608001604052806004906020820280388339509192915050565b6040518060400160405280611213611113565b815260200161115e611113565b6040518060200160405280600190602082028038833950919291505056fea265627a7a72315820f07e86acfc775004269c820dd71e3af6ed01b112843762850ede5c9aafb8bcb964736f6c63430005110032", - "sourceMap": "7067:5041:0:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7067:5041:0;;;;;;;", - "deployedSourceMap": "7067:5041:0:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7067:5041:0;;;;;;;;;;;;;;;;;;;;;;;;11745:361;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;11745:361:0;;;;;;;;21:11:-1;5:28;;2:2;;;46:1;43;36:12;2:2;11745:361:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;11745:361:0;;;;;;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;11745:361:0;;-1:-1:-1;11745:361:0;-1:-1:-1;11745:361:0;:::i;:::-;;;;;;;;;;;;;;;;;;11065:675;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;11065:675:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;1:33:-1;99:1;81:16;;74:27;;;-1:-1;11065:675:0;;;;;;;;;;;;;;;;;;-1:-1:-1;11065:675:0;-1:-1:-1;11065:675:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1:33:-1;99:1;81:16;;74:27;;;;-1:-1;;;11065:675:0;;;;;;;;;;;;-1:-1:-1;;11065:675:0;;;;;;;;;;;;;;;;;-1:-1:-1;11065:675:0;-1:-1:-1;11065:675:0;;;;;;;;;1:33:-1;99:1;81:16;;74:27;;;;-1:-1;;11065:675:0;;;;;;;;;;;;;;;;;;;-1:-1:-1;11065:675:0;;;;;;;;;;1:33:-1;99:1;81:16;;74:27;;;;-1:-1;11065:675:0;;-1:-1:-1;11065:675:0;;-1:-1:-1;;;;11065:675:0:i;11745:361::-;11836:6;11916:16;;:::i;:::-;11934:17;;:::i;:::-;11953;;:::i;:::-;11972:16;;:::i;:::-;12003:5;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;11992:55:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;1:33:-1;99:1;81:16;;74:27;;;;-1:-1;;11992:55:0;;;;;;;;;;;;;;;;;-1:-1:-1;11992:55:0;;;;;;;;;;1:33:-1;99:1;81:16;;74:27;;;;-1:-1;;11992:55:0;;;;;;;;;;;;;;;;;-1:-1:-1;11992:55:0;;;;;;;;;;1:33:-1;99:1;81:16;;74:27;;;;-1:-1;;11992:55:0;;;;;;;;;;;;;;;;;-1:-1:-1;11992:55:0;;;;;;;;;;1:33:-1;99:1;81:16;;74:27;;;;-1:-1;;12064:35:0;;;;;;;;;;;;;;;;;;;;;;;;;;11915:132;;-1:-1:-1;11915:132:0;;-1:-1:-1;11915:132:0;;-1:-1:-1;11992:55:0;;-1:-1:-1;12064:35:0;;11915:132;;12064:35;11992:55;;-1:-1:-1;12064:35:0;;-1:-1:-1;12092:6:0;;-1:-1:-1;12064:35:0;;-1:-1:-1;12064:35:0;;12092:6;;12064:35;12092:6;12064:35;1:33:-1;99:1;81:16;;74:27;;;;-1:-1;12064:11:0;;-1:-1:-1;;12064:35:0:i;:::-;12057:42;11745:361;-1:-1:-1;;;;;;;;11745:361:0:o;11065:675::-;11244:6;11262:18;;:::i;:::-;11300:27;;;;;;;;11316:4;;11300:27;;11316:4;11322;;;;11300:27;;;;11290:37;;;11347:55;;;;;;;11364:4;;:7;11347:55;;;;;;11373:4;;:7;;;11347:55;;;;;;;;;;;;;;;;;;11384:4;;;;;:7;11347:55;;11393:4;:7;;;11347:55;;;;-1:-1:-1;;;11347:55:0;11337:7;;;:65;;;;11422:27;;;;;;;11438:4;;11422:27;;11444:4;;;;11422:27;;;;11412:7;;;:37;11487:24;;11498:12;11487:24;;;;;;;;;11347:55;;11487:24;;;;17:15:-1;;105:10;11487:24:0;88:34:-1;136:17;;-1:-1;;11459:52:0;-1:-1:-1;11525:6:0;11521:88;11541:12;11537:1;:16;11521:88;;;11590:5;11596:1;11590:8;;;;;;;;;;;11573:11;11585:1;11573:14;;;;;;;;;;;;;;;;;:25;11555:3;;11521:88;;;;11622:26;11629:11;11642:5;11622:6;:26::i;:::-;11618:116;;11676:4;11669:11;;;;;;11618:116;11718:5;11711:12;;;;11065:675;;;;;;;:::o;10128:932::-;10208:4;10253:77;10340:22;;:::i;:::-;10365:14;:12;:14::i;:::-;10340:39;;10417:2;:5;;;:12;10397:5;:12;10412:1;10397:16;:32;10389:62;;;;;-1:-1:-1;;;10389:62:0;;;;;;;;;;;;-1:-1:-1;;;10389:62:0;;;;;;;;;;;;;;;10508:27;;:::i;:::-;-1:-1:-1;10538:21:0;;;;;;;;;-1:-1:-1;10538:21:0;;;;;;;;;10569:224;10590:5;:12;10586:1;:16;10569:224;;;10642:18;10631:5;10637:1;10631:8;;;;;;;;;;;;;;:29;10623:72;;;;;-1:-1:-1;;;10623:72:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;10716:66;10733:4;10739:42;10758:2;:5;;;10764:1;10768;10764:5;10758:12;;;;;;;;;;;;;;10772:5;10778:1;10772:8;;;;;;;;;;;;;;10739:18;:42::i;:::-;10716:16;:66::i;:::-;10709:73;-1:-1:-1;10604:3:0;;10569:224;;;;10809:32;10826:4;10832:2;:5;;;10838:1;10832:8;;;;;;;;;;;;;;10809:16;:32::i;:::-;10802:39;;10856:169;10890:23;10905:5;:7;;;10890:14;:23::i;:::-;10915:5;:7;;;10936:2;:8;;;10946:2;:8;;;10968:4;10974:2;:9;;;10997:5;:7;;;11006:2;:9;;;10856:20;:169::i;:::-;10851:184;;11034:1;11027:8;;;;;;;10851:184;11052:1;11045:8;;;;;10128:932;;;;;:::o;7410:2713::-;7457:22;;:::i;:::-;7502:169;;;;;;;;7518:76;7502:169;;7595:75;7502:169;;;;;;;;7491:180;;;7692:333;;;;;;;;7709:77;7692:333;;;;;;7787:77;7692:333;;;;;;;;;;;;;;;;;;7868:77;7692:333;;7946:77;7692:333;;;;-1:-1:-1;;;7692:333:0;7681:8;;;:344;;;;8047:333;;;;;;;8064:77;8047:333;;;;;;8142:77;8047:333;;;;;;;;;;;;;8223:77;8047:333;;8301:77;8047:333;;;;-1:-1:-1;;;8047:333:0;8035:9;;;:345;8402:329;;;;;;;8419:76;8402:329;;;;;;8496:76;8402:329;;;;;;;;;;;;;8576:76;8402:329;;8653:76;8402:329;;;;-1:-1:-1;;;8402:329:0;8390:9;;;:341;8749:24;;8771:1;8749:24;;;;;;;;;;8771:1;8749:24;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;8741:5:0;;;:32;;;8794:171;;;;;;;;;8810:77;8794:171;;8888:76;8794:171;;;;8783:5;;:8;;-1:-1:-1;;8783:8:0;;;;;;;;;:182;;;;8986:172;;;;;;;;9002:77;8986:172;;;;9080:77;8986:172;;;8975:2;:5;;;8981:1;8975:8;;;;;;;;;;;;;:183;;;;9179:170;;;;;;;;9195:76;9179:170;;;;9272:76;9179:170;;;9168:2;:5;;;9174:1;9168:8;;;;;;;;;;;;;:181;;;;9370:171;;;;;;;;9386:76;9370:171;;;;9463:77;9370:171;;;9359:2;:5;;;9365:1;9359:8;;;;;;;;;;;;;:182;;;;9562:170;;;;;;;;9578:76;9562:170;;;;9655:76;9562:170;;;9551:2;:5;;;9557:1;9551:8;;;;;;;;;;;;;:181;;;;9753:170;;;;;;;;9769:76;9753:170;;;;9846:76;9753:170;;;9742:2;:5;;;9748:1;9742:8;;;;;;;;;;;;;:181;;;;9944:171;;;;;;;;9960:77;9944:171;;;;10038:76;9944:171;;;9933:2;:5;;;9939:1;9933:8;;;;;;;;;;;;;:182;;;;7410:2713;:::o;3722:537::-;3791:16;;:::i;:::-;3819:20;;:::i;:::-;3860:3;;3849:14;;:8;3884:3;;;;3873:8;;;:14;3897:8;;;:12;;;-1:-1:-1;4085:4:0;4082:1;4076:4;3849:14;4066:1;4059:4;4054:3;4050:14;4039:51;4028:62;-1:-1:-1;4028:62:0;4175:20;;;;4160:35;;4175:20;4184:9;4160:35;;4223:7;4214:38;;;;;-1:-1:-1;;;4214:38:0;;;;;;;;;;;;-1:-1:-1;;;4214:38:0;;;;;;;;;;;;;;;3722:537;;;;;;:::o;2993:576::-;3072:16;;:::i;:::-;3100:20;;:::i;:::-;3141:4;;3130:15;;:8;3166:4;;;;3155:8;;;:15;3191:4;;3180:8;;;:15;3216:4;;;3205:8;;;;:15;;;;-1:-1:-1;;3393:1:0;3387:4;3130:15;3377:1;3370:4;3365:3;3361:14;3350:51;3339:62;-1:-1:-1;3339:62:0;3486:20;;;;3471:35;3533:7;3525:37;;;;;-1:-1:-1;;;3525:37:0;;;;;;;;;;;;-1:-1:-1;;;3525:37:0;;;;;;;;;;;;;;2604:340;2661:14;;:::i;:::-;2839:3;;2748:77;;2839:8;:20;;;;-1:-1:-1;2851:3:0;;;;:8;2839:20;2835:58;;;-1:-1:-1;;2880:13:0;;;;;;;;;-1:-1:-1;2880:13:0;;;;;;;2873:20;;2835:58;2910:27;;;;;;;;2918:1;:3;;;2910:27;;;;2934:1;2928;:3;;;:7;;;;;;2923:1;:13;2910:27;;;2903:34;;;2604:340;;;;:::o;6512:552::-;6801:16;;;6815:1;6801:16;;;;;;;;;6763:4;;6779:19;;6801:16;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;6849:16:0;;;6863:1;6849:16;;;;;;;;;6779:38;;-1:-1:-1;6827:19:0;;6849:16;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;6827:38;;6883:2;6875;6878:1;6875:5;;;;;;;;;;;;;:10;;;;6903:2;6895;6898:1;6895:5;;;;;;;;;;;;;:10;;;;6923:2;6915;6918:1;6915:5;;;;;;;;;;;;;:10;;;;6943:2;6935;6938:1;6935:5;;;;;;;;;;;;;:10;;;;6963:2;6955;6958:1;6955:5;;;;;;;;;;;;;:10;;;;6983:2;6975;6978:1;6975:5;;;;;;;;;;;;;:10;;;;7003:2;6995;6998:1;6995:5;;;;;;;;;;;;;:10;;;;7023:2;7015;7018:1;7015:5;;;;;;;;;;;;;:10;;;;7042:15;7050:2;7054;7042:7;:15::i;:::-;7035:22;6512:552;-1:-1:-1;;;;;;;;;;;6512:552:0:o;4470:1034::-;4552:4;4589:2;:9;4576:2;:9;:22;4568:56;;;;;-1:-1:-1;;;4568:56:0;;;;;;;;;;;;-1:-1:-1;;;4568:56:0;;;;;;;;;;;;;;;4650:9;;4730:21;;;4697:1;4686:12;;4730:21;;;;;;;;;;;;;4708:19;;4686:12;4730:21;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;136:17;;-1:-1;4730:21:0;-1:-1:-1;4708:43:0;-1:-1:-1;4766:6:0;4761:307;4782:8;4778:1;:12;4761:307;;;4838:2;4841:1;4838:5;;;;;;;;;;;;;;:7;;;4819:5;4825:1;4829;4825:5;4833:1;4825:9;4819:16;;;;;;;;;;;;;:26;;;;;4878:2;4881:1;4878:5;;;;;;;;;;;;;;:7;;;4859:5;4865:1;4869;4865:5;4873:1;4865:9;4859:16;;;;;;;;;;;;;:26;;;;;4918:2;4921:1;4918:5;;;;;;;;;;;;;;;;;;:7;:10;4899:16;;:5;;4913:1;4909;4905:5;;:9;;4899:16;;;;;;;;;;;:29;;;;;4961:2;4964:1;4961:5;;;;;;;;;;;;;;;;;;:7;4969:1;4961:10;;;;4942:5;4948:1;4952;4948:5;4956:1;4948:9;4942:16;;;;;;;;;;;;;:29;;;;;5004:2;5007:1;5004:5;;;;;;;;;;;;;;:7;;;5012:1;5004:10;;;;;;;;;;;4985:5;4991:1;4995;4991:5;4999:1;4991:9;4985:16;;;;;;;;;;;;;:29;;;;;5047:2;5050:1;5047:5;;;;;;;;;;;;;;:7;;;5055:1;5047:10;;;;;;;;;;;5028:5;5034:1;5038;5034:5;5042:1;5034:9;5028:16;;;;;;;;;;;;;;;;;:29;4792:3;;4761:307;;;;5077:18;;:::i;:::-;5105:12;5300:4;5295:3;5288:4;5277:9;5273:20;5266:4;5259:5;5255:16;5252:1;5245:4;5240:3;5236:14;5225:80;5214:91;-1:-1:-1;5214:91:0;5390:20;;;;5375:35;5437:7;5429:40;;;;;-1:-1:-1;;;5429:40:0;;;;;;;;;;;;-1:-1:-1;;;5429:40:0;;;;;;;;;;;;;;;-1:-1:-1;5486:6:0;:11;;;;-1:-1:-1;;;;;;4470:1034:0:o;7067:5041::-;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;-1:-1;7067:5041:0;;;-1:-1:-1;;7067:5041:0:o;:::-;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;:::o;:::-;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;-1:-1;7067:5041:0;;;-1:-1:-1;;7067:5041:0:o;:::-;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;-1:-1;7067:5041:0;;;-1:-1:-1;;7067:5041:0:o;:::-;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;-1:-1;7067:5041:0;;;-1:-1:-1;;7067:5041:0:o", - "source": "//\n// Copyright 2017 Christian Reitwiessner\n// Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \"Software\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:\n// The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n//\n// 2019 OKIMS\n// ported to solidity 0.5\n// fixed linter warnings\n// added requiere error messages\n//\npragma solidity ^0.5.0;\nlibrary Pairing {\n struct G1Point {\n uint X;\n uint Y;\n }\n // Encoding of field elements is: X[0] * z + X[1]\n struct G2Point {\n uint[2] X;\n uint[2] Y;\n }\n /// @return the generator of G1\n function P1() internal pure returns (G1Point memory) {\n return G1Point(1, 2);\n }\n /// @return the generator of G2\n function P2() internal pure returns (G2Point memory) {\n // Original code point\n return G2Point(\n [11559732032986387107991004021392285783925812861821192530917403151452391805634,\n 10857046999023057135944570762232829481370756359578518086990519993285655852781],\n [4082367875863433681332203403145435568316851327593401208105741076214120093531,\n 8495653923123431417604973247489272438418190587263600148770280649306958101930]\n );\n\n/*\n // Changed by Jordi point\n return G2Point(\n [10857046999023057135944570762232829481370756359578518086990519993285655852781,\n 11559732032986387107991004021392285783925812861821192530917403151452391805634],\n [8495653923123431417604973247489272438418190587263600148770280649306958101930,\n 4082367875863433681332203403145435568316851327593401208105741076214120093531]\n );\n*/\n }\n /// @return the negation of p, i.e. p.addition(p.negate()) should be zero.\n function negate(G1Point memory p) internal pure returns (G1Point memory) {\n // The prime q in the base field F_q for G1\n uint q = 21888242871839275222246405745257275088696311157297823662689037894645226208583;\n if (p.X == 0 && p.Y == 0)\n return G1Point(0, 0);\n return G1Point(p.X, q - (p.Y % q));\n }\n /// @return the sum of two points of G1\n function addition(G1Point memory p1, G1Point memory p2) internal view returns (G1Point memory r) {\n uint[4] memory input;\n input[0] = p1.X;\n input[1] = p1.Y;\n input[2] = p2.X;\n input[3] = p2.Y;\n bool success;\n // solium-disable-next-line security/no-inline-assembly\n assembly {\n success := staticcall(sub(gas, 2000), 6, input, 0xc0, r, 0x60)\n // Use \"invalid\" to make gas estimation work\n switch success case 0 { invalid() }\n }\n require(success,\"pairing-add-failed\");\n }\n /// @return the product of a point on G1 and a scalar, i.e.\n /// p == p.scalar_mul(1) and p.addition(p) == p.scalar_mul(2) for all points p.\n function scalar_mul(G1Point memory p, uint s) internal view returns (G1Point memory r) {\n uint[3] memory input;\n input[0] = p.X;\n input[1] = p.Y;\n input[2] = s;\n bool success;\n // solium-disable-next-line security/no-inline-assembly\n assembly {\n success := staticcall(sub(gas, 2000), 7, input, 0x80, r, 0x60)\n // Use \"invalid\" to make gas estimation work\n switch success case 0 { invalid() }\n }\n require (success,\"pairing-mul-failed\");\n }\n /// @return the result of computing the pairing check\n /// e(p1[0], p2[0]) * .... * e(p1[n], p2[n]) == 1\n /// For example pairing([P1(), P1().negate()], [P2(), P2()]) should\n /// return true.\n function pairing(G1Point[] memory p1, G2Point[] memory p2) internal view returns (bool) {\n require(p1.length == p2.length,\"pairing-lengths-failed\");\n uint elements = p1.length;\n uint inputSize = elements * 6;\n uint[] memory input = new uint[](inputSize);\n for (uint i = 0; i < elements; i++)\n {\n input[i * 6 + 0] = p1[i].X;\n input[i * 6 + 1] = p1[i].Y;\n input[i * 6 + 2] = p2[i].X[0];\n input[i * 6 + 3] = p2[i].X[1];\n input[i * 6 + 4] = p2[i].Y[0];\n input[i * 6 + 5] = p2[i].Y[1];\n }\n uint[1] memory out;\n bool success;\n // solium-disable-next-line security/no-inline-assembly\n assembly {\n success := staticcall(sub(gas, 2000), 8, add(input, 0x20), mul(inputSize, 0x20), out, 0x20)\n // Use \"invalid\" to make gas estimation work\n switch success case 0 { invalid() }\n }\n require(success,\"pairing-opcode-failed\");\n return out[0] != 0;\n }\n /// Convenience method for a pairing check for two pairs.\n function pairingProd2(G1Point memory a1, G2Point memory a2, G1Point memory b1, G2Point memory b2) internal view returns (bool) {\n G1Point[] memory p1 = new G1Point[](2);\n G2Point[] memory p2 = new G2Point[](2);\n p1[0] = a1;\n p1[1] = b1;\n p2[0] = a2;\n p2[1] = b2;\n return pairing(p1, p2);\n }\n /// Convenience method for a pairing check for three pairs.\n function pairingProd3(\n G1Point memory a1, G2Point memory a2,\n G1Point memory b1, G2Point memory b2,\n G1Point memory c1, G2Point memory c2\n ) internal view returns (bool) {\n G1Point[] memory p1 = new G1Point[](3);\n G2Point[] memory p2 = new G2Point[](3);\n p1[0] = a1;\n p1[1] = b1;\n p1[2] = c1;\n p2[0] = a2;\n p2[1] = b2;\n p2[2] = c2;\n return pairing(p1, p2);\n }\n /// Convenience method for a pairing check for four pairs.\n function pairingProd4(\n G1Point memory a1, G2Point memory a2,\n G1Point memory b1, G2Point memory b2,\n G1Point memory c1, G2Point memory c2,\n G1Point memory d1, G2Point memory d2\n ) internal view returns (bool) {\n G1Point[] memory p1 = new G1Point[](4);\n G2Point[] memory p2 = new G2Point[](4);\n p1[0] = a1;\n p1[1] = b1;\n p1[2] = c1;\n p1[3] = d1;\n p2[0] = a2;\n p2[1] = b2;\n p2[2] = c2;\n p2[3] = d2;\n return pairing(p1, p2);\n }\n}\ncontract Verifier {\n using Pairing for *;\n struct VerifyingKey {\n Pairing.G1Point alfa1;\n Pairing.G2Point beta2;\n Pairing.G2Point gamma2;\n Pairing.G2Point delta2;\n Pairing.G1Point[] IC;\n }\n struct Proof {\n Pairing.G1Point A;\n Pairing.G2Point B;\n Pairing.G1Point C;\n }\n function verifyingKey() internal pure returns (VerifyingKey memory vk) {\n vk.alfa1 = Pairing.G1Point(7151775474753074349603912814830808112682320561937812962620439914534956067331,682377702098595391270027270967757538763707619874081511951624062082325519674);\n vk.beta2 = Pairing.G2Point([20474272456110192496490825760486544109357124721531445873939145313433733824220,13252888896085562774867675229114787891631643770424400324246247076229386049501], [14784379610034634187204423718356693090071689376688584624280291017164379006233,13046591222454305887136715197273759391534286065861464467946061993683867256434]);\n vk.gamma2 = Pairing.G2Point([21042795335361435922334910932602603279284038519849328824162118789496209240642,19908252351547958567549699620020851168966078981120922100188901935428234335244], [12375358201929679940055095151469821879988088967898472545435218684203421378511,12223694718671561908305426624445745497890095643689160030471238966053469140475]);\n vk.delta2 = Pairing.G2Point([3886441844303543781124707154850574092604010586329691630765567103769412517931,2632754659934557755551959824654540259945663642639362309737823288379077804332], [8991509635806059221905008777597794339790670060173258089443909278982396490577,4691171071997919797132027201833073068514914502335649997511830613929126660128]);\n vk.IC = new Pairing.G1Point[](7);\n vk.IC[0] = Pairing.G1Point(15493342410434936755631579473464409083923770306563815758480953489390186887772,7753995649714900666208266146509870606782015660111458217253018284907299910898);\n vk.IC[1] = Pairing.G1Point(19296011005264714033718351493537172463570687861720373272007918735071429075746,16204599863540013761774674626905638065591212224511845646247942294147714652783);\n vk.IC[2] = Pairing.G1Point(6800131163095851761624472656381537016631915980579513643476302966123639982936,6187553643615591777064477778372210442801186703705175334343813412283817723258);\n vk.IC[3] = Pairing.G1Point(4587236276877759665317431125194154795602571890982244289024831299326384396122,11965403480957802226918942425420027101347015982012757991262803217462830457988);\n vk.IC[4] = Pairing.G1Point(6424577348595355116274404126261845824928373631359383206779835056684747287432,5068925343739685487841387431671860275036721147250958866048951387840854681489);\n vk.IC[5] = Pairing.G1Point(3415843548574565829319442408676813522319941059565646881086034695645515873064,5883489158379442339980761211460192605180893997876253461080527033851992047395);\n vk.IC[6] = Pairing.G1Point(20644165802587991582826647132535920964743533681089204673978388434999038955024,8998916039073087523772804621208137737037769156523190942078025903730975741357);\n\n }\n function verify(uint[] memory input, Proof memory proof) internal view returns (uint) {\n uint256 snark_scalar_field = 21888242871839275222246405745257275088548364400416034343698204186575808495617;\n VerifyingKey memory vk = verifyingKey();\n require(input.length + 1 == vk.IC.length,\"verifier-bad-input\");\n // Compute the linear combination vk_x\n Pairing.G1Point memory vk_x = Pairing.G1Point(0, 0);\n for (uint i = 0; i < input.length; i++) {\n require(input[i] < snark_scalar_field,\"verifier-gte-snark-scalar-field\");\n vk_x = Pairing.addition(vk_x, Pairing.scalar_mul(vk.IC[i + 1], input[i]));\n }\n vk_x = Pairing.addition(vk_x, vk.IC[0]);\n if (!Pairing.pairingProd4(\n Pairing.negate(proof.A), proof.B,\n vk.alfa1, vk.beta2,\n vk_x, vk.gamma2,\n proof.C, vk.delta2\n )) return 1;\n return 0;\n }\n function verifyProof(\n uint[2] memory a,\n uint[2][2] memory b,\n uint[2] memory c,\n uint[6] memory input\n ) public view returns (bool r) {\n Proof memory proof;\n proof.A = Pairing.G1Point(a[0], a[1]);\n proof.B = Pairing.G2Point([b[0][0], b[0][1]], [b[1][0], b[1][1]]);\n proof.C = Pairing.G1Point(c[0], c[1]);\n uint[] memory inputValues = new uint[](input.length);\n for(uint i = 0; i < input.length; i++){\n inputValues[i] = input[i];\n }\n if (verify(inputValues, proof) == 0) {\n return true;\n } else {\n return false;\n }\n }\n function verifyProof(bytes calldata proof, uint[6] calldata inputs) external view returns (bool r) {\n // solidity does not support decoding uint[2][2] yet\n (uint[2] memory a, uint[2] memory b1, uint[2] memory b2, uint[2] memory c) = abi.decode(proof, (uint[2], uint[2], uint[2], uint[2]));\n return verifyProof(a, [b1, b2], c, inputs);\n }\n}\n", + "metadata": "{\"compiler\":{\"version\":\"0.5.17+commit.d19bba13\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"constant\":true,\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"proof\",\"type\":\"bytes\"},{\"internalType\":\"uint256[6]\",\"name\":\"inputs\",\"type\":\"uint256[6]\"}],\"name\":\"verifyProof\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"r\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"uint256[2]\",\"name\":\"a\",\"type\":\"uint256[2]\"},{\"internalType\":\"uint256[2][2]\",\"name\":\"b\",\"type\":\"uint256[2][2]\"},{\"internalType\":\"uint256[2]\",\"name\":\"c\",\"type\":\"uint256[2]\"},{\"internalType\":\"uint256[6]\",\"name\":\"input\",\"type\":\"uint256[6]\"}],\"name\":\"verifyProof\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"r\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/Users/brianli/dotfiles/tornado-core/contracts/Verifier.sol\":\"Verifier\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/Users/brianli/dotfiles/tornado-core/contracts/Verifier.sol\":{\"keccak256\":\"0x2d2106b71c711cca4104f3461070179aaf8be85b69fda7c8dfcd76814485c881\",\"urls\":[\"bzz-raw://7474a6137fdc929a57f92915260c8a3844afba69851cd58dc914b805a959ad5c\",\"dweb:/ipfs/QmRXy5mfEjqEJizefADC5GHC2o7TMD7ZDq2N55WZbSnUwi\"]}},\"version\":1}", + "bytecode": "0x608060405234801561001057600080fd5b50611272806100206000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c8063695ef6f91461003b578063f398789b146100be575b600080fd5b6100aa600480360360e081101561005157600080fd5b81019060208101813564010000000081111561006c57600080fd5b82018360208201111561007e57600080fd5b803590602001918460018302840111640100000000831117156100a057600080fd5b91935091506101ba565b604080519115158252519081900360200190f35b6100aa60048036036101c08110156100d557600080fd5b6040805180820182529183019291818301918390600290839083908082843760009201829052506040805180820190915293969594608081019493509150600290835b828210156101565760408051808201825290808402860190600290839083908082843760009201919091525050508152600190910190602001610118565b50506040805180820182529396959481810194935091506002908390839080828437600092019190915250506040805160c0818101909252929594938181019392509060069083908390808284376000920191909152509194506102f39350505050565b60006101c4611112565b6101cc611112565b6101d4611112565b6101dc611112565b87876101008110156101ed57600080fd5b604080518082018252918301929181830191839060029083908390808284376000920191909152505060408051808201825292959493818101939250906002908390839080828437600092019190915250506040805180820182529295949381810193925090600290839083908082843760009201919091525050604080518082018252929594938181019392509060029083908390808284376000920191909152505060408051808201825288815260208101889052815160c0818101909352999d50979b509599509097506102e7968b96958995509093508d92506006915083908390808284376000920191909152506102f3915050565b98975050505050505050565b60006102fd611130565b6040805180820182528751815260208089015181830152908352815160808101835287515181840190815288518301516060808401919091529082528351808501855289840180515182525184015181850152828401528483019190915282518084018452875181528783015181840152848401528251600680825260e0820190945290929091820160c08038833901905050905060005b60068110156103ce578481600681106103aa57fe5b60200201518282815181106103bb57fe5b6020908102919091010152600101610395565b506103d981836103f7565b6103e8576001925050506103ef565b6000925050505b949350505050565b60007f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001610422611162565b61042a6105cf565b905080608001515185516001011461047e576040805162461bcd60e51b81526020600482015260126024820152711d995c9a599a595c8b5898590b5a5b9c1d5d60721b604482015290519081900360640190fd5b6104866111a9565b50604080518082019091526000808252602082018190525b865181101561055857838782815181106104b457fe5b60200260200101511061050e576040805162461bcd60e51b815260206004820152601f60248201527f76657269666965722d6774652d736e61726b2d7363616c61722d6669656c6400604482015290519081900360640190fd5b61054e826105498560800151846001018151811061052857fe5b60200260200101518a858151811061053c57fe5b6020026020010151610b87565b610c1c565b915060010161049e565b5061057b81836080015160008151811061056e57fe5b6020026020010151610c1c565b90506105b161058d8660000151610cad565b8660200151846000015185602001518587604001518b604001518960600151610d39565b6105c157600193505050506105c9565b600093505050505b92915050565b6105d7611162565b6040805180820182527f1b8c6347c1e0d05d36e2b70469f75ba0c8871929a6fbdc36a0c0389cb108956a81527f0484e79a6e2d3801157dd0dcd6980425ff9bd6178ded57c3022234bb0477b0f26020808301919091529083528151608080820184527f2391325fc3329172d210bc05972b8293467ef06100ef6758210ed5cf909b1d528285019081527f08f2b30d40b1153d04def12b1d606d17e2fd2b8f68be34f5b96eb88538434456606080850191909152908352845180860186527f1f88a93e9b95eea64c5f985d448946e727fe3b6224fa734aa6f152787465f6ee81527f055019c37c7074dede28306eec08eb2d3cdad04ad98ac1b0cd892118a9f8d12e818601528385015285840192909252835180820185527f2811692f60f674aa59d855e1646fac16f400cc808b7479136f12c5df69e1d9c18186019081527f26ed72c4ccc25752e3fc778fd5338d2ba3529f4d05b5865dea2157c834988461828501528152845180860186527f18604204d41390c0bbc5844eb26b411695ad5c611001c9031d1b313ffda7e73c81527f2613e57964a78dba91756a9e92f984a956fc44f54e21a5dd14de38e535504259818601528185015285850152835190810184527f0d592c7c4ebc35fd3a115258b9497dd798220a1287bd4a869595318c6233dd038185019081527f010368c87264a0d5bcffa1e4b0a1655a38e130ec528cb93b9b1d9ca74a36b401828401528152835180850185527f2154012f380f6cd6ff1b84e602f8d98eee346d76b828cd645a4ed55797165e8081527f0a102e437c601e17026c6df89adfe66c6ca02336334e9d6bbb730165b7a1c868818501528184015290840152815160078082526101008201909352919082015b61085b6111a9565b81526020019060019003908161085357505060808201908152604080518082019091527f07407ff7ce65a7ba350c37e5711f81a3137ef8f8e730ce51d464530e7aee858581527f090e5ecfdce3bf145a596236112b4458e7c1fd864fac19a3d381f5e669dcb4316020820152905180516000906108d457fe5b602002602001018190525060405180604001604052807f01f58035c62b98083a859510e84a49fa4f557b4d2e0630ba2e7f542fef486e6e81526020017f226c70b5b44234c53da55fd63ec8b5e2d1efc48b83596d69e8b2b12349f73ecd815250816080015160018151811061094557fe5b602002602001018190525060405180604001604052807f0a9eeae5ea70740d56b59bee5c038ffcac9fe9414cca2127136dc3d993e278d881526020017f14d464598f70a4be2cac1e1eb22c4dca44ba15b730bfaea5e0ff206f604aaf0f81525081608001516002815181106109b657fe5b602002602001018190525060405180604001604052807f12ead3ed5042deb31a77894dd46a4aa9c14cd691ce1bf69f4c055535727af6fa81526020017f06be94499c8dba02bfa4efea636dad5fd2f76cf5b44a4a7b0f090f3e2f8c87298152508160800151600381518110610a2757fe5b602002602001018190525060405180604001604052807eaa57e26e12c6182634f4432c8c9257506f8394d9ce77f55b6eb76df49a848b81526020017f105b6b86cdae86b8b60aa6d4679c6e253f1abd3c146c95070b47940e840c44178152508160800151600481518110610a9757fe5b602002602001018190525060405180604001604052807f2c0a606a26b865caa80d90436951e8793eb5deb1147e6ff687a5eb8e650c331381526020017f2cb3db3a0b773ae18a86baafb715d991782d8abbc83ce76695f8fe6334fca1268152508160800151600581518110610b0857fe5b602002602001018190525060405180604001604052807f2ba393c661345fcd4c98277715e3a9e70c4bf138b665530fef0106ce9e14eed381526020017f25b2deb87dccf94b4d06cce32324657d2eec20eff82761fb878144d512cb56b78152508160800151600681518110610b7957fe5b602002602001018190525090565b610b8f6111a9565b610b976111c3565b835181526020808501519082015260408101839052600060608360808460076107d05a03fa9050808015610bca57610bcc565bfe5b5080610c14576040805162461bcd60e51b81526020600482015260126024820152711c185a5c9a5b99cb5b5d5b0b59985a5b195960721b604482015290519081900360640190fd5b505092915050565b610c246111a9565b610c2c6111e1565b8351815260208085015181830152835160408301528301516060808301919091526000908360c08460066107d05a03fa9050808015610bca575080610c14576040805162461bcd60e51b81526020600482015260126024820152711c185a5c9a5b99cb5859190b59985a5b195960721b604482015290519081900360640190fd5b610cb56111a9565b81517f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4790158015610ce857506020830151155b15610d085750506040805180820190915260008082526020820152610d34565b60405180604001604052808460000151815260200182856020015181610d2a57fe5b0683038152509150505b919050565b60408051600480825260a0820190925260009160609190816020015b610d5d6111a9565b815260200190600190039081610d5557505060408051600480825260a0820190925291925060609190602082015b610d936111ff565b815260200190600190039081610d8b5790505090508a82600081518110610db657fe5b60200260200101819052508882600181518110610dcf57fe5b60200260200101819052508682600281518110610de857fe5b60200260200101819052508482600381518110610e0157fe5b60200260200101819052508981600081518110610e1a57fe5b60200260200101819052508781600181518110610e3357fe5b60200260200101819052508581600281518110610e4c57fe5b60200260200101819052508381600381518110610e6557fe5b6020026020010181905250610e7a8282610e89565b9b9a5050505050505050505050565b60008151835114610eda576040805162461bcd60e51b81526020600482015260166024820152751c185a5c9a5b99cb5b195b99dd1a1ccb59985a5b195960521b604482015290519081900360640190fd5b8251604080516006830280825260c084028201602001909252606090828015610f0d578160200160208202803883390190505b50905060005b8381101561109257868181518110610f2757fe5b602002602001015160000151828260060260000181518110610f4557fe5b602002602001018181525050868181518110610f5d57fe5b602002602001015160200151828260060260010181518110610f7b57fe5b602002602001018181525050858181518110610f9357fe5b602090810291909101015151518251839060026006850201908110610fb457fe5b602002602001018181525050858181518110610fcc57fe5b60209081029190910101515160016020020151828260060260030181518110610ff157fe5b60200260200101818152505085818151811061100957fe5b60200260200101516020015160006002811061102157fe5b602002015182826006026004018151811061103857fe5b60200260200101818152505085818151811061105057fe5b60200260200101516020015160016002811061106857fe5b602002015182826006026005018151811061107f57fe5b6020908102919091010152600101610f13565b5061109b61121f565b6000602082602086026020860160086107d05a03fa9050808015610bca575080611104576040805162461bcd60e51b81526020600482015260156024820152741c185a5c9a5b99cb5bdc18dbd9194b59985a5b1959605a1b604482015290519081900360640190fd5b505115159695505050505050565b60405180604001604052806002906020820280388339509192915050565b60405180606001604052806111436111a9565b81526020016111506111ff565b815260200161115d6111a9565b905290565b6040518060a001604052806111756111a9565b81526020016111826111ff565b815260200161118f6111ff565b815260200161119c6111ff565b8152602001606081525090565b604051806040016040528060008152602001600081525090565b60405180606001604052806003906020820280388339509192915050565b60405180608001604052806004906020820280388339509192915050565b6040518060400160405280611212611112565b815260200161115d611112565b6040518060200160405280600190602082028038833950919291505056fea265627a7a72315820f60e629758763e369f88111c2c79994dee9cebc52aa5f18632cb828d8d4a9f5564736f6c63430005110032", + "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100365760003560e01c8063695ef6f91461003b578063f398789b146100be575b600080fd5b6100aa600480360360e081101561005157600080fd5b81019060208101813564010000000081111561006c57600080fd5b82018360208201111561007e57600080fd5b803590602001918460018302840111640100000000831117156100a057600080fd5b91935091506101ba565b604080519115158252519081900360200190f35b6100aa60048036036101c08110156100d557600080fd5b6040805180820182529183019291818301918390600290839083908082843760009201829052506040805180820190915293969594608081019493509150600290835b828210156101565760408051808201825290808402860190600290839083908082843760009201919091525050508152600190910190602001610118565b50506040805180820182529396959481810194935091506002908390839080828437600092019190915250506040805160c0818101909252929594938181019392509060069083908390808284376000920191909152509194506102f39350505050565b60006101c4611112565b6101cc611112565b6101d4611112565b6101dc611112565b87876101008110156101ed57600080fd5b604080518082018252918301929181830191839060029083908390808284376000920191909152505060408051808201825292959493818101939250906002908390839080828437600092019190915250506040805180820182529295949381810193925090600290839083908082843760009201919091525050604080518082018252929594938181019392509060029083908390808284376000920191909152505060408051808201825288815260208101889052815160c0818101909352999d50979b509599509097506102e7968b96958995509093508d92506006915083908390808284376000920191909152506102f3915050565b98975050505050505050565b60006102fd611130565b6040805180820182528751815260208089015181830152908352815160808101835287515181840190815288518301516060808401919091529082528351808501855289840180515182525184015181850152828401528483019190915282518084018452875181528783015181840152848401528251600680825260e0820190945290929091820160c08038833901905050905060005b60068110156103ce578481600681106103aa57fe5b60200201518282815181106103bb57fe5b6020908102919091010152600101610395565b506103d981836103f7565b6103e8576001925050506103ef565b6000925050505b949350505050565b60007f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001610422611162565b61042a6105cf565b905080608001515185516001011461047e576040805162461bcd60e51b81526020600482015260126024820152711d995c9a599a595c8b5898590b5a5b9c1d5d60721b604482015290519081900360640190fd5b6104866111a9565b50604080518082019091526000808252602082018190525b865181101561055857838782815181106104b457fe5b60200260200101511061050e576040805162461bcd60e51b815260206004820152601f60248201527f76657269666965722d6774652d736e61726b2d7363616c61722d6669656c6400604482015290519081900360640190fd5b61054e826105498560800151846001018151811061052857fe5b60200260200101518a858151811061053c57fe5b6020026020010151610b87565b610c1c565b915060010161049e565b5061057b81836080015160008151811061056e57fe5b6020026020010151610c1c565b90506105b161058d8660000151610cad565b8660200151846000015185602001518587604001518b604001518960600151610d39565b6105c157600193505050506105c9565b600093505050505b92915050565b6105d7611162565b6040805180820182527f1b8c6347c1e0d05d36e2b70469f75ba0c8871929a6fbdc36a0c0389cb108956a81527f0484e79a6e2d3801157dd0dcd6980425ff9bd6178ded57c3022234bb0477b0f26020808301919091529083528151608080820184527f2391325fc3329172d210bc05972b8293467ef06100ef6758210ed5cf909b1d528285019081527f08f2b30d40b1153d04def12b1d606d17e2fd2b8f68be34f5b96eb88538434456606080850191909152908352845180860186527f1f88a93e9b95eea64c5f985d448946e727fe3b6224fa734aa6f152787465f6ee81527f055019c37c7074dede28306eec08eb2d3cdad04ad98ac1b0cd892118a9f8d12e818601528385015285840192909252835180820185527f2811692f60f674aa59d855e1646fac16f400cc808b7479136f12c5df69e1d9c18186019081527f26ed72c4ccc25752e3fc778fd5338d2ba3529f4d05b5865dea2157c834988461828501528152845180860186527f18604204d41390c0bbc5844eb26b411695ad5c611001c9031d1b313ffda7e73c81527f2613e57964a78dba91756a9e92f984a956fc44f54e21a5dd14de38e535504259818601528185015285850152835190810184527f0d592c7c4ebc35fd3a115258b9497dd798220a1287bd4a869595318c6233dd038185019081527f010368c87264a0d5bcffa1e4b0a1655a38e130ec528cb93b9b1d9ca74a36b401828401528152835180850185527f2154012f380f6cd6ff1b84e602f8d98eee346d76b828cd645a4ed55797165e8081527f0a102e437c601e17026c6df89adfe66c6ca02336334e9d6bbb730165b7a1c868818501528184015290840152815160078082526101008201909352919082015b61085b6111a9565b81526020019060019003908161085357505060808201908152604080518082019091527f07407ff7ce65a7ba350c37e5711f81a3137ef8f8e730ce51d464530e7aee858581527f090e5ecfdce3bf145a596236112b4458e7c1fd864fac19a3d381f5e669dcb4316020820152905180516000906108d457fe5b602002602001018190525060405180604001604052807f01f58035c62b98083a859510e84a49fa4f557b4d2e0630ba2e7f542fef486e6e81526020017f226c70b5b44234c53da55fd63ec8b5e2d1efc48b83596d69e8b2b12349f73ecd815250816080015160018151811061094557fe5b602002602001018190525060405180604001604052807f0a9eeae5ea70740d56b59bee5c038ffcac9fe9414cca2127136dc3d993e278d881526020017f14d464598f70a4be2cac1e1eb22c4dca44ba15b730bfaea5e0ff206f604aaf0f81525081608001516002815181106109b657fe5b602002602001018190525060405180604001604052807f12ead3ed5042deb31a77894dd46a4aa9c14cd691ce1bf69f4c055535727af6fa81526020017f06be94499c8dba02bfa4efea636dad5fd2f76cf5b44a4a7b0f090f3e2f8c87298152508160800151600381518110610a2757fe5b602002602001018190525060405180604001604052807eaa57e26e12c6182634f4432c8c9257506f8394d9ce77f55b6eb76df49a848b81526020017f105b6b86cdae86b8b60aa6d4679c6e253f1abd3c146c95070b47940e840c44178152508160800151600481518110610a9757fe5b602002602001018190525060405180604001604052807f2c0a606a26b865caa80d90436951e8793eb5deb1147e6ff687a5eb8e650c331381526020017f2cb3db3a0b773ae18a86baafb715d991782d8abbc83ce76695f8fe6334fca1268152508160800151600581518110610b0857fe5b602002602001018190525060405180604001604052807f2ba393c661345fcd4c98277715e3a9e70c4bf138b665530fef0106ce9e14eed381526020017f25b2deb87dccf94b4d06cce32324657d2eec20eff82761fb878144d512cb56b78152508160800151600681518110610b7957fe5b602002602001018190525090565b610b8f6111a9565b610b976111c3565b835181526020808501519082015260408101839052600060608360808460076107d05a03fa9050808015610bca57610bcc565bfe5b5080610c14576040805162461bcd60e51b81526020600482015260126024820152711c185a5c9a5b99cb5b5d5b0b59985a5b195960721b604482015290519081900360640190fd5b505092915050565b610c246111a9565b610c2c6111e1565b8351815260208085015181830152835160408301528301516060808301919091526000908360c08460066107d05a03fa9050808015610bca575080610c14576040805162461bcd60e51b81526020600482015260126024820152711c185a5c9a5b99cb5859190b59985a5b195960721b604482015290519081900360640190fd5b610cb56111a9565b81517f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4790158015610ce857506020830151155b15610d085750506040805180820190915260008082526020820152610d34565b60405180604001604052808460000151815260200182856020015181610d2a57fe5b0683038152509150505b919050565b60408051600480825260a0820190925260009160609190816020015b610d5d6111a9565b815260200190600190039081610d5557505060408051600480825260a0820190925291925060609190602082015b610d936111ff565b815260200190600190039081610d8b5790505090508a82600081518110610db657fe5b60200260200101819052508882600181518110610dcf57fe5b60200260200101819052508682600281518110610de857fe5b60200260200101819052508482600381518110610e0157fe5b60200260200101819052508981600081518110610e1a57fe5b60200260200101819052508781600181518110610e3357fe5b60200260200101819052508581600281518110610e4c57fe5b60200260200101819052508381600381518110610e6557fe5b6020026020010181905250610e7a8282610e89565b9b9a5050505050505050505050565b60008151835114610eda576040805162461bcd60e51b81526020600482015260166024820152751c185a5c9a5b99cb5b195b99dd1a1ccb59985a5b195960521b604482015290519081900360640190fd5b8251604080516006830280825260c084028201602001909252606090828015610f0d578160200160208202803883390190505b50905060005b8381101561109257868181518110610f2757fe5b602002602001015160000151828260060260000181518110610f4557fe5b602002602001018181525050868181518110610f5d57fe5b602002602001015160200151828260060260010181518110610f7b57fe5b602002602001018181525050858181518110610f9357fe5b602090810291909101015151518251839060026006850201908110610fb457fe5b602002602001018181525050858181518110610fcc57fe5b60209081029190910101515160016020020151828260060260030181518110610ff157fe5b60200260200101818152505085818151811061100957fe5b60200260200101516020015160006002811061102157fe5b602002015182826006026004018151811061103857fe5b60200260200101818152505085818151811061105057fe5b60200260200101516020015160016002811061106857fe5b602002015182826006026005018151811061107f57fe5b6020908102919091010152600101610f13565b5061109b61121f565b6000602082602086026020860160086107d05a03fa9050808015610bca575080611104576040805162461bcd60e51b81526020600482015260156024820152741c185a5c9a5b99cb5bdc18dbd9194b59985a5b1959605a1b604482015290519081900360640190fd5b505115159695505050505050565b60405180604001604052806002906020820280388339509192915050565b60405180606001604052806111436111a9565b81526020016111506111ff565b815260200161115d6111a9565b905290565b6040518060a001604052806111756111a9565b81526020016111826111ff565b815260200161118f6111ff565b815260200161119c6111ff565b8152602001606081525090565b604051806040016040528060008152602001600081525090565b60405180606001604052806003906020820280388339509192915050565b60405180608001604052806004906020820280388339509192915050565b6040518060400160405280611212611112565b815260200161115d611112565b6040518060200160405280600190602082028038833950919291505056fea265627a7a72315820f60e629758763e369f88111c2c79994dee9cebc52aa5f18632cb828d8d4a9f5564736f6c63430005110032", + "sourceMap": "7067:5039:4:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7067:5039:4;;;;;;;", + "deployedSourceMap": "7067:5039:4:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7067:5039:4;;;;;;;;;;;;;;;;;;;;;;;;11743:361;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;11743:361:4;;;;;;;;21:11:-1;5:28;;2:2;;;46:1;43;36:12;2:2;11743:361:4;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;11743:361: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;11743:361:4;;-1:-1:-1;11743:361:4;-1:-1:-1;11743:361:4;:::i;:::-;;;;;;;;;;;;;;;;;;11063:675;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;11063:675:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;1:33:-1;99:1;81:16;;74:27;;;-1:-1;11063:675:4;;;;;;;;;;;;;;;;;;-1:-1:-1;11063:675:4;-1:-1:-1;11063:675:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1:33:-1;99:1;81:16;;74:27;;;;-1:-1;;;11063:675:4;;;;;;;;;;;;-1:-1:-1;;11063:675:4;;;;;;;;;;;;;;;;;-1:-1:-1;11063:675:4;-1:-1:-1;11063:675:4;;;;;;;;;1:33:-1;99:1;81:16;;74:27;;;;-1:-1;;11063:675:4;;;;;;;;;;;;;;;;;;;-1:-1:-1;11063:675:4;;;;;;;;;;1:33:-1;99:1;81:16;;74:27;;;;-1:-1;11063:675:4;;-1:-1:-1;11063:675:4;;-1:-1:-1;;;;11063:675:4:i;11743:361::-;11834:6;11914:16;;:::i;:::-;11932:17;;:::i;:::-;11951;;:::i;:::-;11970:16;;:::i;:::-;12001:5;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;11990:55:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;1:33:-1;99:1;81:16;;74:27;;;;-1:-1;;11990:55:4;;;;;;;;;;;;;;;;;-1:-1:-1;11990:55:4;;;;;;;;;;1:33:-1;99:1;81:16;;74:27;;;;-1:-1;;11990:55:4;;;;;;;;;;;;;;;;;-1:-1:-1;11990:55:4;;;;;;;;;;1:33:-1;99:1;81:16;;74:27;;;;-1:-1;;11990:55:4;;;;;;;;;;;;;;;;;-1:-1:-1;11990:55:4;;;;;;;;;;1:33:-1;99:1;81:16;;74:27;;;;-1:-1;;12062:35:4;;;;;;;;;;;;;;;;;;;;;;;;;;11913:132;;-1:-1:-1;11913:132:4;;-1:-1:-1;11913:132:4;;-1:-1:-1;11990:55:4;;-1:-1:-1;12062:35:4;;11913:132;;12062:35;11990:55;;-1:-1:-1;12062:35:4;;-1:-1:-1;12090:6:4;;-1:-1:-1;12062:35:4;;-1:-1:-1;12062:35:4;;12090:6;;12062:35;12090:6;12062:35;1:33:-1;99:1;81:16;;74:27;;;;-1:-1;12062:11:4;;-1:-1:-1;;12062:35:4:i;:::-;12055:42;11743:361;-1:-1:-1;;;;;;;;11743:361:4:o;11063:675::-;11242:6;11260:18;;:::i;:::-;11298:27;;;;;;;;11314:4;;11298:27;;11314:4;11320;;;;11298:27;;;;11288:37;;;11345:55;;;;;;;11362:4;;:7;11345:55;;;;;;11371:4;;:7;;;11345:55;;;;;;;;;;;;;;;;;;11382:4;;;;;:7;11345:55;;11391:4;:7;;;11345:55;;;;-1:-1:-1;;;11345:55:4;11335:7;;;:65;;;;11420:27;;;;;;;11436:4;;11420:27;;11442:4;;;;11420:27;;;;11410:7;;;:37;11485:24;;11496:12;11485:24;;;;;;;;;11345:55;;11485:24;;;;17:15:-1;;105:10;11485:24:4;88:34:-1;136:17;;-1:-1;;11457:52:4;-1:-1:-1;11523:6:4;11519:88;11539:12;11535:1;:16;11519:88;;;11588:5;11594:1;11588:8;;;;;;;;;;;11571:11;11583:1;11571:14;;;;;;;;;;;;;;;;;:25;11553:3;;11519:88;;;;11620:26;11627:11;11640:5;11620:6;:26::i;:::-;11616:116;;11674:4;11667:11;;;;;;11616:116;11716:5;11709:12;;;;11063:675;;;;;;;:::o;10126:932::-;10206:4;10251:77;10338:22;;:::i;:::-;10363:14;:12;:14::i;:::-;10338:39;;10415:2;:5;;;:12;10395:5;:12;10410:1;10395:16;:32;10387:62;;;;;-1:-1:-1;;;10387:62:4;;;;;;;;;;;;-1:-1:-1;;;10387:62:4;;;;;;;;;;;;;;;10506:27;;:::i;:::-;-1:-1:-1;10536:21:4;;;;;;;;;-1:-1:-1;10536:21:4;;;;;;;;;10567:224;10588:5;:12;10584:1;:16;10567:224;;;10640:18;10629:5;10635:1;10629:8;;;;;;;;;;;;;;:29;10621:72;;;;;-1:-1:-1;;;10621:72:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;10714:66;10731:4;10737:42;10756:2;:5;;;10762:1;10766;10762:5;10756:12;;;;;;;;;;;;;;10770:5;10776:1;10770:8;;;;;;;;;;;;;;10737:18;:42::i;:::-;10714:16;:66::i;:::-;10707:73;-1:-1:-1;10602:3:4;;10567:224;;;;10807:32;10824:4;10830:2;:5;;;10836:1;10830:8;;;;;;;;;;;;;;10807:16;:32::i;:::-;10800:39;;10854:169;10888:23;10903:5;:7;;;10888:14;:23::i;:::-;10913:5;:7;;;10934:2;:8;;;10944:2;:8;;;10966:4;10972:2;:9;;;10995:5;:7;;;11004:2;:9;;;10854:20;:169::i;:::-;10849:184;;11032:1;11025:8;;;;;;;10849:184;11050:1;11043:8;;;;;10126:932;;;;;:::o;7410:2711::-;7457:22;;:::i;:::-;7502:171;;;;;;;;7518:77;7502:171;;7596:76;7502:171;;;;;;;;7491:182;;;7694:331;;;;;;;;7711:77;7694:331;;;;;;7789:76;7694:331;;;;;;;;;;;;;;;;;;7869:77;7694:331;;7947:76;7694:331;;;;-1:-1:-1;;;7694:331:4;7683:8;;;:342;;;;8047:333;;;;;;;8064:77;8047:333;;;;;;8142:77;8047:333;;;;;;;;;;;;;8223:77;8047:333;;8301:77;8047:333;;;;-1:-1:-1;;;8047:333:4;8035:9;;;:345;8402:329;;;;;;;8419:76;8402:329;;;;;;8496:75;8402:329;;;;;;;;;;;;;8575:77;8402:329;;8653:76;8402:329;;;;-1:-1:-1;;;8402:329:4;8390:9;;;:341;8749:24;;8771:1;8749:24;;;;;;;;;;8771:1;8749:24;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;8741:5:4;;;:32;;;8794:170;;;;;;;;;8810:76;8794:170;;8887:76;8794:170;;;;8783:5;;:8;;-1:-1:-1;;8783:8:4;;;;;;;;;:181;;;;8985:170;;;;;;;;9001:75;8985:170;;;;9077:77;8985:170;;;8974:2;:5;;;8980:1;8974:8;;;;;;;;;;;;;:181;;;;9176:170;;;;;;;;9192:76;9176:170;;;;9269:76;9176:170;;;9165:2;:5;;;9171:1;9165:8;;;;;;;;;;;;;:181;;;;9367:170;;;;;;;;9383:76;9367:170;;;;9460:76;9367:170;;;9356:2;:5;;;9362:1;9356:8;;;;;;;;;;;;;:181;;;;9558:169;;;;;;;;9574:75;9558:169;;;;9650:76;9558:169;;;9547:2;:5;;;9553:1;9547:8;;;;;;;;;;;;;:180;;;;9748:172;;;;;;;;9764:77;9748:172;;;;9842:77;9748:172;;;9737:2;:5;;;9743:1;9737:8;;;;;;;;;;;;;:183;;;;9941:172;;;;;;;;9957:77;9941:172;;;;10035:77;9941:172;;;9930:2;:5;;;9936:1;9930:8;;;;;;;;;;;;;:183;;;;7410:2711;:::o;3722:537::-;3791:16;;:::i;:::-;3819:20;;:::i;:::-;3860:3;;3849:14;;:8;3884:3;;;;3873:8;;;:14;3897:8;;;:12;;;-1:-1:-1;4085:4:4;4082:1;4076:4;3849:14;4066:1;4059:4;4054:3;4050:14;4039:51;4028:62;-1:-1:-1;4028:62:4;4175:20;;;;4160:35;;4175:20;4184:9;4160:35;;4223:7;4214:38;;;;;-1:-1:-1;;;4214:38:4;;;;;;;;;;;;-1:-1:-1;;;4214:38:4;;;;;;;;;;;;;;;3722:537;;;;;;:::o;2993:576::-;3072:16;;:::i;:::-;3100:20;;:::i;:::-;3141:4;;3130:15;;:8;3166:4;;;;3155:8;;;:15;3191:4;;3180:8;;;:15;3216:4;;;3205:8;;;;:15;;;;-1:-1:-1;;3393:1:4;3387:4;3130:15;3377:1;3370:4;3365:3;3361:14;3350:51;3339:62;-1:-1:-1;3339:62:4;3486:20;;;;3471:35;3533:7;3525:37;;;;;-1:-1:-1;;;3525:37:4;;;;;;;;;;;;-1:-1:-1;;;3525:37:4;;;;;;;;;;;;;;2604:340;2661:14;;:::i;:::-;2839:3;;2748:77;;2839:8;:20;;;;-1:-1:-1;2851:3:4;;;;:8;2839:20;2835:58;;;-1:-1:-1;;2880:13:4;;;;;;;;;-1:-1:-1;2880:13:4;;;;;;;2873:20;;2835:58;2910:27;;;;;;;;2918:1;:3;;;2910:27;;;;2934:1;2928;:3;;;:7;;;;;;2923:1;:13;2910:27;;;2903:34;;;2604:340;;;;:::o;6512:552::-;6801:16;;;6815:1;6801:16;;;;;;;;;6763:4;;6779:19;;6801:16;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;6849:16:4;;;6863:1;6849:16;;;;;;;;;6779:38;;-1:-1:-1;6827:19:4;;6849:16;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;6827:38;;6883:2;6875;6878:1;6875:5;;;;;;;;;;;;;:10;;;;6903:2;6895;6898:1;6895:5;;;;;;;;;;;;;:10;;;;6923:2;6915;6918:1;6915:5;;;;;;;;;;;;;:10;;;;6943:2;6935;6938:1;6935:5;;;;;;;;;;;;;:10;;;;6963:2;6955;6958:1;6955:5;;;;;;;;;;;;;:10;;;;6983:2;6975;6978:1;6975:5;;;;;;;;;;;;;:10;;;;7003:2;6995;6998:1;6995:5;;;;;;;;;;;;;:10;;;;7023:2;7015;7018:1;7015:5;;;;;;;;;;;;;:10;;;;7042:15;7050:2;7054;7042:7;:15::i;:::-;7035:22;6512:552;-1:-1:-1;;;;;;;;;;;6512:552:4:o;4470:1034::-;4552:4;4589:2;:9;4576:2;:9;:22;4568:56;;;;;-1:-1:-1;;;4568:56:4;;;;;;;;;;;;-1:-1:-1;;;4568:56:4;;;;;;;;;;;;;;;4650:9;;4730:21;;;4697:1;4686:12;;4730:21;;;;;;;;;;;;;4708:19;;4686:12;4730:21;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;136:17;;-1:-1;4730:21:4;-1:-1:-1;4708:43:4;-1:-1:-1;4766:6:4;4761:307;4782:8;4778:1;:12;4761:307;;;4838:2;4841:1;4838:5;;;;;;;;;;;;;;:7;;;4819:5;4825:1;4829;4825:5;4833:1;4825:9;4819:16;;;;;;;;;;;;;:26;;;;;4878:2;4881:1;4878:5;;;;;;;;;;;;;;:7;;;4859:5;4865:1;4869;4865:5;4873:1;4865:9;4859:16;;;;;;;;;;;;;:26;;;;;4918:2;4921:1;4918:5;;;;;;;;;;;;;;;;;;:7;:10;4899:16;;:5;;4913:1;4909;4905:5;;:9;;4899:16;;;;;;;;;;;:29;;;;;4961:2;4964:1;4961:5;;;;;;;;;;;;;;;;;;:7;4969:1;4961:10;;;;4942:5;4948:1;4952;4948:5;4956:1;4948:9;4942:16;;;;;;;;;;;;;:29;;;;;5004:2;5007:1;5004:5;;;;;;;;;;;;;;:7;;;5012:1;5004:10;;;;;;;;;;;4985:5;4991:1;4995;4991:5;4999:1;4991:9;4985:16;;;;;;;;;;;;;:29;;;;;5047:2;5050:1;5047:5;;;;;;;;;;;;;;:7;;;5055:1;5047:10;;;;;;;;;;;5028:5;5034:1;5038;5034:5;5042:1;5034:9;5028:16;;;;;;;;;;;;;;;;;:29;4792:3;;4761:307;;;;5077:18;;:::i;:::-;5105:12;5300:4;5295:3;5288:4;5277:9;5273:20;5266:4;5259:5;5255:16;5252:1;5245:4;5240:3;5236:14;5225:80;5214:91;-1:-1:-1;5214:91:4;5390:20;;;;5375:35;5437:7;5429:40;;;;;-1:-1:-1;;;5429:40:4;;;;;;;;;;;;-1:-1:-1;;;5429:40:4;;;;;;;;;;;;;;;-1:-1:-1;5486:6:4;:11;;;;-1:-1:-1;;;;;;4470:1034:4:o;7067:5039::-;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;-1:-1;7067:5039:4;;;-1:-1:-1;;7067:5039:4:o;:::-;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;:::o;:::-;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;-1:-1;7067:5039:4;;;-1:-1:-1;;7067:5039:4:o;:::-;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;-1:-1;7067:5039:4;;;-1:-1:-1;;7067:5039:4:o;:::-;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;-1:-1;7067:5039:4;;;-1:-1:-1;;7067:5039:4:o", + "source": "//\n// Copyright 2017 Christian Reitwiessner\n// Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \"Software\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:\n// The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n//\n// 2019 OKIMS\n// ported to solidity 0.5\n// fixed linter warnings\n// added requiere error messages\n//\npragma solidity ^0.5.0;\nlibrary Pairing {\n struct G1Point {\n uint X;\n uint Y;\n }\n // Encoding of field elements is: X[0] * z + X[1]\n struct G2Point {\n uint[2] X;\n uint[2] Y;\n }\n /// @return the generator of G1\n function P1() internal pure returns (G1Point memory) {\n return G1Point(1, 2);\n }\n /// @return the generator of G2\n function P2() internal pure returns (G2Point memory) {\n // Original code point\n return G2Point(\n [11559732032986387107991004021392285783925812861821192530917403151452391805634,\n 10857046999023057135944570762232829481370756359578518086990519993285655852781],\n [4082367875863433681332203403145435568316851327593401208105741076214120093531,\n 8495653923123431417604973247489272438418190587263600148770280649306958101930]\n );\n\n/*\n // Changed by Jordi point\n return G2Point(\n [10857046999023057135944570762232829481370756359578518086990519993285655852781,\n 11559732032986387107991004021392285783925812861821192530917403151452391805634],\n [8495653923123431417604973247489272438418190587263600148770280649306958101930,\n 4082367875863433681332203403145435568316851327593401208105741076214120093531]\n );\n*/\n }\n /// @return the negation of p, i.e. p.addition(p.negate()) should be zero.\n function negate(G1Point memory p) internal pure returns (G1Point memory) {\n // The prime q in the base field F_q for G1\n uint q = 21888242871839275222246405745257275088696311157297823662689037894645226208583;\n if (p.X == 0 && p.Y == 0)\n return G1Point(0, 0);\n return G1Point(p.X, q - (p.Y % q));\n }\n /// @return the sum of two points of G1\n function addition(G1Point memory p1, G1Point memory p2) internal view returns (G1Point memory r) {\n uint[4] memory input;\n input[0] = p1.X;\n input[1] = p1.Y;\n input[2] = p2.X;\n input[3] = p2.Y;\n bool success;\n // solium-disable-next-line security/no-inline-assembly\n assembly {\n success := staticcall(sub(gas, 2000), 6, input, 0xc0, r, 0x60)\n // Use \"invalid\" to make gas estimation work\n switch success case 0 { invalid() }\n }\n require(success,\"pairing-add-failed\");\n }\n /// @return the product of a point on G1 and a scalar, i.e.\n /// p == p.scalar_mul(1) and p.addition(p) == p.scalar_mul(2) for all points p.\n function scalar_mul(G1Point memory p, uint s) internal view returns (G1Point memory r) {\n uint[3] memory input;\n input[0] = p.X;\n input[1] = p.Y;\n input[2] = s;\n bool success;\n // solium-disable-next-line security/no-inline-assembly\n assembly {\n success := staticcall(sub(gas, 2000), 7, input, 0x80, r, 0x60)\n // Use \"invalid\" to make gas estimation work\n switch success case 0 { invalid() }\n }\n require (success,\"pairing-mul-failed\");\n }\n /// @return the result of computing the pairing check\n /// e(p1[0], p2[0]) * .... * e(p1[n], p2[n]) == 1\n /// For example pairing([P1(), P1().negate()], [P2(), P2()]) should\n /// return true.\n function pairing(G1Point[] memory p1, G2Point[] memory p2) internal view returns (bool) {\n require(p1.length == p2.length,\"pairing-lengths-failed\");\n uint elements = p1.length;\n uint inputSize = elements * 6;\n uint[] memory input = new uint[](inputSize);\n for (uint i = 0; i < elements; i++)\n {\n input[i * 6 + 0] = p1[i].X;\n input[i * 6 + 1] = p1[i].Y;\n input[i * 6 + 2] = p2[i].X[0];\n input[i * 6 + 3] = p2[i].X[1];\n input[i * 6 + 4] = p2[i].Y[0];\n input[i * 6 + 5] = p2[i].Y[1];\n }\n uint[1] memory out;\n bool success;\n // solium-disable-next-line security/no-inline-assembly\n assembly {\n success := staticcall(sub(gas, 2000), 8, add(input, 0x20), mul(inputSize, 0x20), out, 0x20)\n // Use \"invalid\" to make gas estimation work\n switch success case 0 { invalid() }\n }\n require(success,\"pairing-opcode-failed\");\n return out[0] != 0;\n }\n /// Convenience method for a pairing check for two pairs.\n function pairingProd2(G1Point memory a1, G2Point memory a2, G1Point memory b1, G2Point memory b2) internal view returns (bool) {\n G1Point[] memory p1 = new G1Point[](2);\n G2Point[] memory p2 = new G2Point[](2);\n p1[0] = a1;\n p1[1] = b1;\n p2[0] = a2;\n p2[1] = b2;\n return pairing(p1, p2);\n }\n /// Convenience method for a pairing check for three pairs.\n function pairingProd3(\n G1Point memory a1, G2Point memory a2,\n G1Point memory b1, G2Point memory b2,\n G1Point memory c1, G2Point memory c2\n ) internal view returns (bool) {\n G1Point[] memory p1 = new G1Point[](3);\n G2Point[] memory p2 = new G2Point[](3);\n p1[0] = a1;\n p1[1] = b1;\n p1[2] = c1;\n p2[0] = a2;\n p2[1] = b2;\n p2[2] = c2;\n return pairing(p1, p2);\n }\n /// Convenience method for a pairing check for four pairs.\n function pairingProd4(\n G1Point memory a1, G2Point memory a2,\n G1Point memory b1, G2Point memory b2,\n G1Point memory c1, G2Point memory c2,\n G1Point memory d1, G2Point memory d2\n ) internal view returns (bool) {\n G1Point[] memory p1 = new G1Point[](4);\n G2Point[] memory p2 = new G2Point[](4);\n p1[0] = a1;\n p1[1] = b1;\n p1[2] = c1;\n p1[3] = d1;\n p2[0] = a2;\n p2[1] = b2;\n p2[2] = c2;\n p2[3] = d2;\n return pairing(p1, p2);\n }\n}\ncontract Verifier {\n using Pairing for *;\n struct VerifyingKey {\n Pairing.G1Point alfa1;\n Pairing.G2Point beta2;\n Pairing.G2Point gamma2;\n Pairing.G2Point delta2;\n Pairing.G1Point[] IC;\n }\n struct Proof {\n Pairing.G1Point A;\n Pairing.G2Point B;\n Pairing.G1Point C;\n }\n function verifyingKey() internal pure returns (VerifyingKey memory vk) {\n vk.alfa1 = Pairing.G1Point(12460490708279467301202778391127510537683948258096796922127174268009168016746,2044073673724661651577421329709273081857081212805872863635504960509226496242);\n vk.beta2 = Pairing.G2Point([16087490193876161637448045704887923394070749301729401042528207780307353148754,4047315548230716670792711364149480628046544638739431946110837410403922953302], [14263157589925503025528792522444100058771414693273945149032889920775598241518,2403089822051858644985808169464757375250302755592994009294110237616552595758]);\n vk.gamma2 = Pairing.G2Point([18123276304127160438393801088717318781198132961398793760812749257186063014337,17607423105313335525432869667679352624924066595757032717782399822257020503137], [11025581329650047651679757086388724167475219406913114270498430888483526010684,17223042113062030556278816694661970331697234922696012013177194723549528474201]);\n vk.delta2 = Pairing.G2Point([6037623448512168987260566201688122245791371525028098505952259164431847775491,458336575433998506016458017218111862879186139304654606381372583914446959617], [15074747331456849121041477998068795341356504164554362922885862289027940900480,4551717338615761726884555729815737240947234262038677985956844189240908695656]);\n vk.IC = new Pairing.G1Point[](7);\n vk.IC[0] = Pairing.G1Point(3280151354857701104805815107342927006881561188181486049350149056802788902277,4096205864284246892786942491620896521544938058951378408773174891322097316913);\n vk.IC[1] = Pairing.G1Point(886075252733300330869950498066252804027245332188737089899561929180698930798,15570234229151758134113005312914035073446975470656183090215346868677091213005);\n vk.IC[2] = Pairing.G1Point(4803911529229921243819115938814624698011704327571816657368259655263810910424,9421521138574274245916449596797669329387046444348355383899676800456202039055);\n vk.IC[3] = Pairing.G1Point(8556536154095961870679484985871880561903552891231663801453118433906208208634,3050601476829943501968050336923012297384352890508269063303888737139486918441);\n vk.IC[4] = Pairing.G1Point(300970557484518070492531175714788912131243344262805477266806064126958929035,7398530781379870905922247634738956356372326243016843550426084862881205863447);\n vk.IC[5] = Pairing.G1Point(19920099237792867409693124415022100529487012962841642820676567509262507193107,20219544009593389298713776672148908906084007300789292168389787721741450912038);\n vk.IC[6] = Pairing.G1Point(19738468465658587453371819831578835676337686216736310076443477948701915541203,17051611336678940832594719954268295083764993921610290255520015002513439413943);\n\n }\n function verify(uint[] memory input, Proof memory proof) internal view returns (uint) {\n uint256 snark_scalar_field = 21888242871839275222246405745257275088548364400416034343698204186575808495617;\n VerifyingKey memory vk = verifyingKey();\n require(input.length + 1 == vk.IC.length,\"verifier-bad-input\");\n // Compute the linear combination vk_x\n Pairing.G1Point memory vk_x = Pairing.G1Point(0, 0);\n for (uint i = 0; i < input.length; i++) {\n require(input[i] < snark_scalar_field,\"verifier-gte-snark-scalar-field\");\n vk_x = Pairing.addition(vk_x, Pairing.scalar_mul(vk.IC[i + 1], input[i]));\n }\n vk_x = Pairing.addition(vk_x, vk.IC[0]);\n if (!Pairing.pairingProd4(\n Pairing.negate(proof.A), proof.B,\n vk.alfa1, vk.beta2,\n vk_x, vk.gamma2,\n proof.C, vk.delta2\n )) return 1;\n return 0;\n }\n function verifyProof(\n uint[2] memory a,\n uint[2][2] memory b,\n uint[2] memory c,\n uint[6] memory input\n ) public view returns (bool r) {\n Proof memory proof;\n proof.A = Pairing.G1Point(a[0], a[1]);\n proof.B = Pairing.G2Point([b[0][0], b[0][1]], [b[1][0], b[1][1]]);\n proof.C = Pairing.G1Point(c[0], c[1]);\n uint[] memory inputValues = new uint[](input.length);\n for(uint i = 0; i < input.length; i++){\n inputValues[i] = input[i];\n }\n if (verify(inputValues, proof) == 0) {\n return true;\n } else {\n return false;\n }\n }\n function verifyProof(bytes calldata proof, uint[6] calldata inputs) external view returns (bool r) {\n // solidity does not support decoding uint[2][2] yet\n (uint[2] memory a, uint[2] memory b1, uint[2] memory b2, uint[2] memory c) = abi.decode(proof, (uint[2], uint[2], uint[2], uint[2]));\n return verifyProof(a, [b1, b2], c, inputs);\n }\n}\n", "sourcePath": "/Users/brianli/dotfiles/tornado-core/contracts/Verifier.sol", "ast": { "absolutePath": "/Users/brianli/dotfiles/tornado-core/contracts/Verifier.sol", "exportedSymbols": { "Pairing": [ - 577 + 1605 ], "Verifier": [ - 1058 + 2086 ] }, - "id": 1059, + "id": 2087, "nodeType": "SourceUnit", "nodes": [ { - "id": 1, + "id": 1029, "literals": [ "solidity", "^", @@ -93,7 +93,7 @@ ".0" ], "nodeType": "PragmaDirective", - "src": "1193:23:0" + "src": "1193:23:4" }, { "baseContracts": [], @@ -101,24 +101,24 @@ "contractKind": "library", "documentation": null, "fullyImplemented": true, - "id": 577, + "id": 1605, "linearizedBaseContracts": [ - 577 + 1605 ], "name": "Pairing", "nodeType": "ContractDefinition", "nodes": [ { "canonicalName": "Pairing.G1Point", - "id": 6, + "id": 1034, "members": [ { "constant": false, - "id": 3, + "id": 1031, "name": "X", "nodeType": "VariableDeclaration", - "scope": 6, - "src": "1264:6:0", + "scope": 1034, + "src": "1264:6:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -126,10 +126,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2, + "id": 1030, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1264:4:0", + "src": "1264:4:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -140,11 +140,11 @@ }, { "constant": false, - "id": 5, + "id": 1033, "name": "Y", "nodeType": "VariableDeclaration", - "scope": 6, - "src": "1280:6:0", + "scope": 1034, + "src": "1280:6:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -152,10 +152,10 @@ "typeString": "uint256" }, "typeName": { - "id": 4, + "id": 1032, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1280:4:0", + "src": "1280:4:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -167,21 +167,21 @@ ], "name": "G1Point", "nodeType": "StructDefinition", - "scope": 577, - "src": "1239:54:0", + "scope": 1605, + "src": "1239:54:4", "visibility": "public" }, { "canonicalName": "Pairing.G2Point", - "id": 15, + "id": 1043, "members": [ { "constant": false, - "id": 10, + "id": 1038, "name": "X", "nodeType": "VariableDeclaration", - "scope": 15, - "src": "1377:9:0", + "scope": 1043, + "src": "1377:9:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -190,27 +190,27 @@ }, "typeName": { "baseType": { - "id": 7, + "id": 1035, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1377:4:0", + "src": "1377:4:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 9, + "id": 1037, "length": { "argumentTypes": null, "hexValue": "32", - "id": 8, + "id": 1036, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1382:1:0", + "src": "1382:1:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_2_by_1", @@ -219,7 +219,7 @@ "value": "2" }, "nodeType": "ArrayTypeName", - "src": "1377:7:0", + "src": "1377:7:4", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$2_storage_ptr", "typeString": "uint256[2]" @@ -230,11 +230,11 @@ }, { "constant": false, - "id": 14, + "id": 1042, "name": "Y", "nodeType": "VariableDeclaration", - "scope": 15, - "src": "1396:9:0", + "scope": 1043, + "src": "1396:9:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -243,27 +243,27 @@ }, "typeName": { "baseType": { - "id": 11, + "id": 1039, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1396:4:0", + "src": "1396:4:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 13, + "id": 1041, "length": { "argumentTypes": null, "hexValue": "32", - "id": 12, + "id": 1040, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1401:1:0", + "src": "1401:1:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_2_by_1", @@ -272,7 +272,7 @@ "value": "2" }, "nodeType": "ArrayTypeName", - "src": "1396:7:0", + "src": "1396:7:4", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$2_storage_ptr", "typeString": "uint256[2]" @@ -284,15 +284,15 @@ ], "name": "G2Point", "nodeType": "StructDefinition", - "scope": 577, - "src": "1352:60:0", + "scope": 1605, + "src": "1352:60:4", "visibility": "public" }, { "body": { - "id": 25, + "id": 1053, "nodeType": "Block", - "src": "1506:37:0", + "src": "1506:37:4", "statements": [ { "expression": { @@ -301,14 +301,14 @@ { "argumentTypes": null, "hexValue": "31", - "id": 21, + "id": 1049, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1531:1:0", + "src": "1531:1:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -319,14 +319,14 @@ { "argumentTypes": null, "hexValue": "32", - "id": 22, + "id": 1050, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1534:1:0", + "src": "1534:1:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_2_by_1", @@ -346,18 +346,18 @@ "typeString": "int_const 2" } ], - "id": 20, + "id": 1048, "name": "G1Point", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6, - "src": "1523:7:0", + "referencedDeclaration": 1034, + "src": "1523:7:4", "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_G1Point_$6_storage_ptr_$", + "typeIdentifier": "t_type$_t_struct$_G1Point_$1034_storage_ptr_$", "typeString": "type(struct Pairing.G1Point storage pointer)" } }, - "id": 23, + "id": 1051, "isConstant": false, "isLValue": false, "isPure": true, @@ -365,58 +365,58 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1523:13:0", + "src": "1523:13:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_memory", + "typeIdentifier": "t_struct$_G1Point_$1034_memory", "typeString": "struct Pairing.G1Point memory" } }, - "functionReturnParameters": 19, - "id": 24, + "functionReturnParameters": 1047, + "id": 1052, "nodeType": "Return", - "src": "1516:20:0" + "src": "1516:20:4" } ] }, "documentation": "@return the generator of G1", - "id": 26, + "id": 1054, "implemented": true, "kind": "function", "modifiers": [], "name": "P1", "nodeType": "FunctionDefinition", "parameters": { - "id": 16, + "id": 1044, "nodeType": "ParameterList", "parameters": [], - "src": "1464:2:0" + "src": "1464:2:4" }, "returnParameters": { - "id": 19, + "id": 1047, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 18, + "id": 1046, "name": "", "nodeType": "VariableDeclaration", - "scope": 26, - "src": "1490:14:0", + "scope": 1054, + "src": "1490:14:4", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_memory_ptr", + "typeIdentifier": "t_struct$_G1Point_$1034_memory_ptr", "typeString": "struct Pairing.G1Point" }, "typeName": { "contractScope": null, - "id": 17, + "id": 1045, "name": "G1Point", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 6, - "src": "1490:7:0", + "referencedDeclaration": 1034, + "src": "1490:7:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_storage_ptr", + "typeIdentifier": "t_struct$_G1Point_$1034_storage_ptr", "typeString": "struct Pairing.G1Point" } }, @@ -424,19 +424,19 @@ "visibility": "internal" } ], - "src": "1489:16:0" + "src": "1489:16:4" }, - "scope": 577, - "src": "1453:90:0", + "scope": 1605, + "src": "1453:90:4", "stateMutability": "pure", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 40, + "id": 1068, "nodeType": "Block", - "src": "1637:883:0", + "src": "1637:883:4", "statements": [ { "expression": { @@ -448,14 +448,14 @@ { "argumentTypes": null, "hexValue": "3131353539373332303332393836333837313037393931303034303231333932323835373833393235383132383631383231313932353330393137343033313531343532333931383035363334", - "id": 32, + "id": 1060, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1707:77:0", + "src": "1707:77:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_11559732032986387107991004021392285783925812861821192530917403151452391805634_by_1", @@ -466,14 +466,14 @@ { "argumentTypes": null, "hexValue": "3130383537303436393939303233303537313335393434353730373632323332383239343831333730373536333539353738353138303836393930353139393933323835363535383532373831", - "id": 33, + "id": 1061, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1799:77:0", + "src": "1799:77:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_10857046999023057135944570762232829481370756359578518086990519993285655852781_by_1", @@ -482,14 +482,14 @@ "value": "10857046999023057135944570762232829481370756359578518086990519993285655852781" } ], - "id": 34, + "id": 1062, "isConstant": false, "isInlineArray": true, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "1706:171:0", + "src": "1706:171:4", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", "typeString": "uint256[2] memory" @@ -501,14 +501,14 @@ { "argumentTypes": null, "hexValue": "34303832333637383735383633343333363831333332323033343033313435343335353638333136383531333237353933343031323038313035373431303736323134313230303933353331", - "id": 35, + "id": 1063, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1892:76:0", + "src": "1892:76:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_4082367875863433681332203403145435568316851327593401208105741076214120093531_by_1", @@ -519,14 +519,14 @@ { "argumentTypes": null, "hexValue": "38343935363533393233313233343331343137363034393733323437343839323732343338343138313930353837323633363030313438373730323830363439333036393538313031393330", - "id": 36, + "id": 1064, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1983:76:0", + "src": "1983:76:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_8495653923123431417604973247489272438418190587263600148770280649306958101930_by_1", @@ -535,14 +535,14 @@ "value": "8495653923123431417604973247489272438418190587263600148770280649306958101930" } ], - "id": 37, + "id": 1065, "isConstant": false, "isInlineArray": true, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "1891:169:0", + "src": "1891:169:4", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", "typeString": "uint256[2] memory" @@ -560,18 +560,18 @@ "typeString": "uint256[2] memory" } ], - "id": 31, + "id": 1059, "name": "G2Point", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 15, - "src": "1685:7:0", + "referencedDeclaration": 1043, + "src": "1685:7:4", "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_G2Point_$15_storage_ptr_$", + "typeIdentifier": "t_type$_t_struct$_G2Point_$1043_storage_ptr_$", "typeString": "type(struct Pairing.G2Point storage pointer)" } }, - "id": 38, + "id": 1066, "isConstant": false, "isLValue": false, "isPure": true, @@ -579,58 +579,58 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1685:385:0", + "src": "1685:385:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G2Point_$15_memory", + "typeIdentifier": "t_struct$_G2Point_$1043_memory", "typeString": "struct Pairing.G2Point memory" } }, - "functionReturnParameters": 30, - "id": 39, + "functionReturnParameters": 1058, + "id": 1067, "nodeType": "Return", - "src": "1678:392:0" + "src": "1678:392:4" } ] }, "documentation": "@return the generator of G2", - "id": 41, + "id": 1069, "implemented": true, "kind": "function", "modifiers": [], "name": "P2", "nodeType": "FunctionDefinition", "parameters": { - "id": 27, + "id": 1055, "nodeType": "ParameterList", "parameters": [], - "src": "1595:2:0" + "src": "1595:2:4" }, "returnParameters": { - "id": 30, + "id": 1058, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 29, + "id": 1057, "name": "", "nodeType": "VariableDeclaration", - "scope": 41, - "src": "1621:14:0", + "scope": 1069, + "src": "1621:14:4", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_struct$_G2Point_$15_memory_ptr", + "typeIdentifier": "t_struct$_G2Point_$1043_memory_ptr", "typeString": "struct Pairing.G2Point" }, "typeName": { "contractScope": null, - "id": 28, + "id": 1056, "name": "G2Point", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 15, - "src": "1621:7:0", + "referencedDeclaration": 1043, + "src": "1621:7:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G2Point_$15_storage_ptr", + "typeIdentifier": "t_struct$_G2Point_$1043_storage_ptr", "typeString": "struct Pairing.G2Point" } }, @@ -638,32 +638,32 @@ "visibility": "internal" } ], - "src": "1620:16:0" + "src": "1620:16:4" }, - "scope": 577, - "src": "1584:936:0", + "scope": 1605, + "src": "1584:936:4", "stateMutability": "pure", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 79, + "id": 1107, "nodeType": "Block", - "src": "2677:267:0", + "src": "2677:267:4", "statements": [ { "assignments": [ - 49 + 1077 ], "declarations": [ { "constant": false, - "id": 49, + "id": 1077, "name": "q", "nodeType": "VariableDeclaration", - "scope": 79, - "src": "2739:6:0", + "scope": 1107, + "src": "2739:6:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -671,10 +671,10 @@ "typeString": "uint256" }, "typeName": { - "id": 48, + "id": 1076, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "2739:4:0", + "src": "2739:4:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -684,18 +684,18 @@ "visibility": "internal" } ], - "id": 51, + "id": 1079, "initialValue": { "argumentTypes": null, "hexValue": "3231383838323432383731383339323735323232323436343035373435323537323735303838363936333131313537323937383233363632363839303337383934363435323236323038353833", - "id": 50, + "id": 1078, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2748:77:0", + "src": "2748:77:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_21888242871839275222246405745257275088696311157297823662689037894645226208583_by_1", @@ -704,7 +704,7 @@ "value": "21888242871839275222246405745257275088696311157297823662689037894645226208583" }, "nodeType": "VariableDeclarationStatement", - "src": "2739:86:0" + "src": "2739:86:4" }, { "condition": { @@ -713,7 +713,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 60, + "id": 1088, "isConstant": false, "isLValue": false, "isPure": false, @@ -724,7 +724,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 55, + "id": 1083, "isConstant": false, "isLValue": false, "isPure": false, @@ -733,26 +733,26 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 52, + "id": 1080, "name": "p", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 43, - "src": "2839:1:0", + "referencedDeclaration": 1071, + "src": "2839:1:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_memory_ptr", + "typeIdentifier": "t_struct$_G1Point_$1034_memory_ptr", "typeString": "struct Pairing.G1Point memory" } }, - "id": 53, + "id": 1081, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "X", "nodeType": "MemberAccess", - "referencedDeclaration": 3, - "src": "2839:3:0", + "referencedDeclaration": 1031, + "src": "2839:3:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -763,14 +763,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 54, + "id": 1082, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2846:1:0", + "src": "2846:1:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -778,7 +778,7 @@ }, "value": "0" }, - "src": "2839:8:0", + "src": "2839:8:4", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -792,7 +792,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 59, + "id": 1087, "isConstant": false, "isLValue": false, "isPure": false, @@ -801,26 +801,26 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 56, + "id": 1084, "name": "p", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 43, - "src": "2851:1:0", + "referencedDeclaration": 1071, + "src": "2851:1:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_memory_ptr", + "typeIdentifier": "t_struct$_G1Point_$1034_memory_ptr", "typeString": "struct Pairing.G1Point memory" } }, - "id": 57, + "id": 1085, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "Y", "nodeType": "MemberAccess", - "referencedDeclaration": 5, - "src": "2851:3:0", + "referencedDeclaration": 1033, + "src": "2851:3:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -831,14 +831,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 58, + "id": 1086, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2858:1:0", + "src": "2858:1:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -846,22 +846,22 @@ }, "value": "0" }, - "src": "2851:8:0", + "src": "2851:8:4", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "2839:20:0", + "src": "2839:20:4", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 66, + "id": 1094, "nodeType": "IfStatement", - "src": "2835:58:0", + "src": "2835:58:4", "trueBody": { "expression": { "argumentTypes": null, @@ -869,14 +869,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 62, + "id": 1090, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2888:1:0", + "src": "2888:1:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -887,14 +887,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 63, + "id": 1091, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2891:1:0", + "src": "2891:1:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -914,18 +914,18 @@ "typeString": "int_const 0" } ], - "id": 61, + "id": 1089, "name": "G1Point", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6, - "src": "2880:7:0", + "referencedDeclaration": 1034, + "src": "2880:7:4", "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_G1Point_$6_storage_ptr_$", + "typeIdentifier": "t_type$_t_struct$_G1Point_$1034_storage_ptr_$", "typeString": "type(struct Pairing.G1Point storage pointer)" } }, - "id": 64, + "id": 1092, "isConstant": false, "isLValue": false, "isPure": true, @@ -933,16 +933,16 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2880:13:0", + "src": "2880:13:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_memory", + "typeIdentifier": "t_struct$_G1Point_$1034_memory", "typeString": "struct Pairing.G1Point memory" } }, - "functionReturnParameters": 47, - "id": 65, + "functionReturnParameters": 1075, + "id": 1093, "nodeType": "Return", - "src": "2873:20:0" + "src": "2873:20:4" } }, { @@ -953,26 +953,26 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 68, + "id": 1096, "name": "p", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 43, - "src": "2918:1:0", + "referencedDeclaration": 1071, + "src": "2918:1:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_memory_ptr", + "typeIdentifier": "t_struct$_G1Point_$1034_memory_ptr", "typeString": "struct Pairing.G1Point memory" } }, - "id": 69, + "id": 1097, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "X", "nodeType": "MemberAccess", - "referencedDeclaration": 3, - "src": "2918:3:0", + "referencedDeclaration": 1031, + "src": "2918:3:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -984,19 +984,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 76, + "id": 1104, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 70, + "id": 1098, "name": "q", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 49, - "src": "2923:1:0", + "referencedDeclaration": 1077, + "src": "2923:1:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1013,7 +1013,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 74, + "id": 1102, "isConstant": false, "isLValue": false, "isPure": false, @@ -1022,26 +1022,26 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 71, + "id": 1099, "name": "p", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 43, - "src": "2928:1:0", + "referencedDeclaration": 1071, + "src": "2928:1:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_memory_ptr", + "typeIdentifier": "t_struct$_G1Point_$1034_memory_ptr", "typeString": "struct Pairing.G1Point memory" } }, - "id": 72, + "id": 1100, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "Y", "nodeType": "MemberAccess", - "referencedDeclaration": 5, - "src": "2928:3:0", + "referencedDeclaration": 1033, + "src": "2928:3:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1051,38 +1051,38 @@ "operator": "%", "rightExpression": { "argumentTypes": null, - "id": 73, + "id": 1101, "name": "q", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 49, - "src": "2934:1:0", + "referencedDeclaration": 1077, + "src": "2934:1:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "2928:7:0", + "src": "2928:7:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], - "id": 75, + "id": 1103, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "2927:9:0", + "src": "2927:9:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "2923:13:0", + "src": "2923:13:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1100,18 +1100,18 @@ "typeString": "uint256" } ], - "id": 67, + "id": 1095, "name": "G1Point", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6, - "src": "2910:7:0", + "referencedDeclaration": 1034, + "src": "2910:7:4", "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_G1Point_$6_storage_ptr_$", + "typeIdentifier": "t_type$_t_struct$_G1Point_$1034_storage_ptr_$", "typeString": "type(struct Pairing.G1Point storage pointer)" } }, - "id": 77, + "id": 1105, "isConstant": false, "isLValue": false, "isPure": false, @@ -1119,52 +1119,52 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2910:27:0", + "src": "2910:27:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_memory", + "typeIdentifier": "t_struct$_G1Point_$1034_memory", "typeString": "struct Pairing.G1Point memory" } }, - "functionReturnParameters": 47, - "id": 78, + "functionReturnParameters": 1075, + "id": 1106, "nodeType": "Return", - "src": "2903:34:0" + "src": "2903:34:4" } ] }, "documentation": "@return the negation of p, i.e. p.addition(p.negate()) should be zero.", - "id": 80, + "id": 1108, "implemented": true, "kind": "function", "modifiers": [], "name": "negate", "nodeType": "FunctionDefinition", "parameters": { - "id": 44, + "id": 1072, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 43, + "id": 1071, "name": "p", "nodeType": "VariableDeclaration", - "scope": 80, - "src": "2620:16:0", + "scope": 1108, + "src": "2620:16:4", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_memory_ptr", + "typeIdentifier": "t_struct$_G1Point_$1034_memory_ptr", "typeString": "struct Pairing.G1Point" }, "typeName": { "contractScope": null, - "id": 42, + "id": 1070, "name": "G1Point", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 6, - "src": "2620:7:0", + "referencedDeclaration": 1034, + "src": "2620:7:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_storage_ptr", + "typeIdentifier": "t_struct$_G1Point_$1034_storage_ptr", "typeString": "struct Pairing.G1Point" } }, @@ -1172,34 +1172,34 @@ "visibility": "internal" } ], - "src": "2619:18:0" + "src": "2619:18:4" }, "returnParameters": { - "id": 47, + "id": 1075, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 46, + "id": 1074, "name": "", "nodeType": "VariableDeclaration", - "scope": 80, - "src": "2661:14:0", + "scope": 1108, + "src": "2661:14:4", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_memory_ptr", + "typeIdentifier": "t_struct$_G1Point_$1034_memory_ptr", "typeString": "struct Pairing.G1Point" }, "typeName": { "contractScope": null, - "id": 45, + "id": 1073, "name": "G1Point", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 6, - "src": "2661:7:0", + "referencedDeclaration": 1034, + "src": "2661:7:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_storage_ptr", + "typeIdentifier": "t_struct$_G1Point_$1034_storage_ptr", "typeString": "struct Pairing.G1Point" } }, @@ -1207,32 +1207,32 @@ "visibility": "internal" } ], - "src": "2660:16:0" + "src": "2660:16:4" }, - "scope": 577, - "src": "2604:340:0", + "scope": 1605, + "src": "2604:340:4", "stateMutability": "pure", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 132, + "id": 1160, "nodeType": "Block", - "src": "3090:479:0", + "src": "3090:479:4", "statements": [ { "assignments": [ - 93 + 1121 ], "declarations": [ { "constant": false, - "id": 93, + "id": 1121, "name": "input", "nodeType": "VariableDeclaration", - "scope": 132, - "src": "3100:20:0", + "scope": 1160, + "src": "3100:20:4", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -1241,27 +1241,27 @@ }, "typeName": { "baseType": { - "id": 91, + "id": 1119, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "3100:4:0", + "src": "3100:4:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 92, + "id": 1120, "length": { "argumentTypes": null, "hexValue": "34", - "id": 90, + "id": 1118, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3105:1:0", + "src": "3105:1:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_4_by_1", @@ -1270,7 +1270,7 @@ "value": "4" }, "nodeType": "ArrayTypeName", - "src": "3100:7:0", + "src": "3100:7:4", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$4_storage_ptr", "typeString": "uint256[4]" @@ -1280,15 +1280,15 @@ "visibility": "internal" } ], - "id": 94, + "id": 1122, "initialValue": null, "nodeType": "VariableDeclarationStatement", - "src": "3100:20:0" + "src": "3100:20:4" }, { "expression": { "argumentTypes": null, - "id": 100, + "id": 1128, "isConstant": false, "isLValue": false, "isPure": false, @@ -1297,29 +1297,29 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 95, + "id": 1123, "name": "input", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 93, - "src": "3130:5:0", + "referencedDeclaration": 1121, + "src": "3130:5:4", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$4_memory_ptr", "typeString": "uint256[4] memory" } }, - "id": 97, + "id": 1125, "indexExpression": { "argumentTypes": null, "hexValue": "30", - "id": 96, + "id": 1124, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3136:1:0", + "src": "3136:1:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -1332,7 +1332,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "3130:8:0", + "src": "3130:8:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1344,45 +1344,45 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 98, + "id": 1126, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 82, - "src": "3141:2:0", + "referencedDeclaration": 1110, + "src": "3141:2:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_memory_ptr", + "typeIdentifier": "t_struct$_G1Point_$1034_memory_ptr", "typeString": "struct Pairing.G1Point memory" } }, - "id": 99, + "id": 1127, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "X", "nodeType": "MemberAccess", - "referencedDeclaration": 3, - "src": "3141:4:0", + "referencedDeclaration": 1031, + "src": "3141:4:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3130:15:0", + "src": "3130:15:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 101, + "id": 1129, "nodeType": "ExpressionStatement", - "src": "3130:15:0" + "src": "3130:15:4" }, { "expression": { "argumentTypes": null, - "id": 107, + "id": 1135, "isConstant": false, "isLValue": false, "isPure": false, @@ -1391,29 +1391,29 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 102, + "id": 1130, "name": "input", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 93, - "src": "3155:5:0", + "referencedDeclaration": 1121, + "src": "3155:5:4", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$4_memory_ptr", "typeString": "uint256[4] memory" } }, - "id": 104, + "id": 1132, "indexExpression": { "argumentTypes": null, "hexValue": "31", - "id": 103, + "id": 1131, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3161:1:0", + "src": "3161:1:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -1426,7 +1426,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "3155:8:0", + "src": "3155:8:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1438,45 +1438,45 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 105, + "id": 1133, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 82, - "src": "3166:2:0", + "referencedDeclaration": 1110, + "src": "3166:2:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_memory_ptr", + "typeIdentifier": "t_struct$_G1Point_$1034_memory_ptr", "typeString": "struct Pairing.G1Point memory" } }, - "id": 106, + "id": 1134, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "Y", "nodeType": "MemberAccess", - "referencedDeclaration": 5, - "src": "3166:4:0", + "referencedDeclaration": 1033, + "src": "3166:4:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3155:15:0", + "src": "3155:15:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 108, + "id": 1136, "nodeType": "ExpressionStatement", - "src": "3155:15:0" + "src": "3155:15:4" }, { "expression": { "argumentTypes": null, - "id": 114, + "id": 1142, "isConstant": false, "isLValue": false, "isPure": false, @@ -1485,29 +1485,29 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 109, + "id": 1137, "name": "input", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 93, - "src": "3180:5:0", + "referencedDeclaration": 1121, + "src": "3180:5:4", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$4_memory_ptr", "typeString": "uint256[4] memory" } }, - "id": 111, + "id": 1139, "indexExpression": { "argumentTypes": null, "hexValue": "32", - "id": 110, + "id": 1138, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3186:1:0", + "src": "3186:1:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_2_by_1", @@ -1520,7 +1520,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "3180:8:0", + "src": "3180:8:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1532,45 +1532,45 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 112, + "id": 1140, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 84, - "src": "3191:2:0", + "referencedDeclaration": 1112, + "src": "3191:2:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_memory_ptr", + "typeIdentifier": "t_struct$_G1Point_$1034_memory_ptr", "typeString": "struct Pairing.G1Point memory" } }, - "id": 113, + "id": 1141, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "X", "nodeType": "MemberAccess", - "referencedDeclaration": 3, - "src": "3191:4:0", + "referencedDeclaration": 1031, + "src": "3191:4:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3180:15:0", + "src": "3180:15:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 115, + "id": 1143, "nodeType": "ExpressionStatement", - "src": "3180:15:0" + "src": "3180:15:4" }, { "expression": { "argumentTypes": null, - "id": 121, + "id": 1149, "isConstant": false, "isLValue": false, "isPure": false, @@ -1579,29 +1579,29 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 116, + "id": 1144, "name": "input", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 93, - "src": "3205:5:0", + "referencedDeclaration": 1121, + "src": "3205:5:4", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$4_memory_ptr", "typeString": "uint256[4] memory" } }, - "id": 118, + "id": 1146, "indexExpression": { "argumentTypes": null, "hexValue": "33", - "id": 117, + "id": 1145, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3211:1:0", + "src": "3211:1:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_3_by_1", @@ -1614,7 +1614,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "3205:8:0", + "src": "3205:8:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1626,53 +1626,53 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 119, + "id": 1147, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 84, - "src": "3216:2:0", + "referencedDeclaration": 1112, + "src": "3216:2:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_memory_ptr", + "typeIdentifier": "t_struct$_G1Point_$1034_memory_ptr", "typeString": "struct Pairing.G1Point memory" } }, - "id": 120, + "id": 1148, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "Y", "nodeType": "MemberAccess", - "referencedDeclaration": 5, - "src": "3216:4:0", + "referencedDeclaration": 1033, + "src": "3216:4:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3205:15:0", + "src": "3205:15:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 122, + "id": 1150, "nodeType": "ExpressionStatement", - "src": "3205:15:0" + "src": "3205:15:4" }, { "assignments": [ - 124 + 1152 ], "declarations": [ { "constant": false, - "id": 124, + "id": 1152, "name": "success", "nodeType": "VariableDeclaration", - "scope": 132, - "src": "3230:12:0", + "scope": 1160, + "src": "3230:12:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1680,10 +1680,10 @@ "typeString": "bool" }, "typeName": { - "id": 123, + "id": 1151, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "3230:4:0", + "src": "3230:4:4", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1693,54 +1693,54 @@ "visibility": "internal" } ], - "id": 125, + "id": 1153, "initialValue": null, "nodeType": "VariableDeclarationStatement", - "src": "3230:12:0" + "src": "3230:12:4" }, { "externalReferences": [ { "success": { - "declaration": 124, + "declaration": 1152, "isOffset": false, "isSlot": false, - "src": "3339:7:0", + "src": "3339:7:4", "valueSize": 1 } }, { "input": { - "declaration": 93, + "declaration": 1121, "isOffset": false, "isSlot": false, - "src": "3380:5:0", + "src": "3380:5:4", "valueSize": 1 } }, { "r": { - "declaration": 87, + "declaration": 1115, "isOffset": false, "isSlot": false, - "src": "3393:1:0", + "src": "3393:1:4", "valueSize": 1 } }, { "success": { - "declaration": 124, + "declaration": 1152, "isOffset": false, "isSlot": false, - "src": "3478:7:0", + "src": "3478:7:4", "valueSize": 1 } } ], - "id": 126, + "id": 1154, "nodeType": "InlineAssembly", "operations": "{\n success := staticcall(sub(gas(), 2000), 6, input, 0xc0, r, 0x60)\n switch success\n case 0 { invalid() }\n}", - "src": "3316:200:0" + "src": "3316:200:4" }, { "expression": { @@ -1748,12 +1748,12 @@ "arguments": [ { "argumentTypes": null, - "id": 128, + "id": 1156, "name": "success", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 124, - "src": "3533:7:0", + "referencedDeclaration": 1152, + "src": "3533:7:4", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1762,14 +1762,14 @@ { "argumentTypes": null, "hexValue": "70616972696e672d6164642d6661696c6564", - "id": 129, + "id": 1157, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "3541:20:0", + "src": "3541:20:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_e428a53e578d13ee2fc3b8849114332d6a94afed893fa747a37e281039728688", @@ -1789,21 +1789,21 @@ "typeString": "literal_string \"pairing-add-failed\"" } ], - "id": 127, + "id": 1155, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1076, - 1077 + 2134, + 2135 ], - "referencedDeclaration": 1077, - "src": "3525:7:0", + "referencedDeclaration": 2135, + "src": "3525:7:4", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 130, + "id": 1158, "isConstant": false, "isLValue": false, "isPure": false, @@ -1811,51 +1811,51 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3525:37:0", + "src": "3525:37:4", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 131, + "id": 1159, "nodeType": "ExpressionStatement", - "src": "3525:37:0" + "src": "3525:37:4" } ] }, "documentation": "@return the sum of two points of G1", - "id": 133, + "id": 1161, "implemented": true, "kind": "function", "modifiers": [], "name": "addition", "nodeType": "FunctionDefinition", "parameters": { - "id": 85, + "id": 1113, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 82, + "id": 1110, "name": "p1", "nodeType": "VariableDeclaration", - "scope": 133, - "src": "3011:17:0", + "scope": 1161, + "src": "3011:17:4", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_memory_ptr", + "typeIdentifier": "t_struct$_G1Point_$1034_memory_ptr", "typeString": "struct Pairing.G1Point" }, "typeName": { "contractScope": null, - "id": 81, + "id": 1109, "name": "G1Point", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 6, - "src": "3011:7:0", + "referencedDeclaration": 1034, + "src": "3011:7:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_storage_ptr", + "typeIdentifier": "t_struct$_G1Point_$1034_storage_ptr", "typeString": "struct Pairing.G1Point" } }, @@ -1864,26 +1864,26 @@ }, { "constant": false, - "id": 84, + "id": 1112, "name": "p2", "nodeType": "VariableDeclaration", - "scope": 133, - "src": "3030:17:0", + "scope": 1161, + "src": "3030:17:4", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_memory_ptr", + "typeIdentifier": "t_struct$_G1Point_$1034_memory_ptr", "typeString": "struct Pairing.G1Point" }, "typeName": { "contractScope": null, - "id": 83, + "id": 1111, "name": "G1Point", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 6, - "src": "3030:7:0", + "referencedDeclaration": 1034, + "src": "3030:7:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_storage_ptr", + "typeIdentifier": "t_struct$_G1Point_$1034_storage_ptr", "typeString": "struct Pairing.G1Point" } }, @@ -1891,34 +1891,34 @@ "visibility": "internal" } ], - "src": "3010:38:0" + "src": "3010:38:4" }, "returnParameters": { - "id": 88, + "id": 1116, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 87, + "id": 1115, "name": "r", "nodeType": "VariableDeclaration", - "scope": 133, - "src": "3072:16:0", + "scope": 1161, + "src": "3072:16:4", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_memory_ptr", + "typeIdentifier": "t_struct$_G1Point_$1034_memory_ptr", "typeString": "struct Pairing.G1Point" }, "typeName": { "contractScope": null, - "id": 86, + "id": 1114, "name": "G1Point", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 6, - "src": "3072:7:0", + "referencedDeclaration": 1034, + "src": "3072:7:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_storage_ptr", + "typeIdentifier": "t_struct$_G1Point_$1034_storage_ptr", "typeString": "struct Pairing.G1Point" } }, @@ -1926,32 +1926,32 @@ "visibility": "internal" } ], - "src": "3071:18:0" + "src": "3071:18:4" }, - "scope": 577, - "src": "2993:576:0", + "scope": 1605, + "src": "2993:576:4", "stateMutability": "view", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 177, + "id": 1205, "nodeType": "Block", - "src": "3809:450:0", + "src": "3809:450:4", "statements": [ { "assignments": [ - 146 + 1174 ], "declarations": [ { "constant": false, - "id": 146, + "id": 1174, "name": "input", "nodeType": "VariableDeclaration", - "scope": 177, - "src": "3819:20:0", + "scope": 1205, + "src": "3819:20:4", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -1960,27 +1960,27 @@ }, "typeName": { "baseType": { - "id": 144, + "id": 1172, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "3819:4:0", + "src": "3819:4:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 145, + "id": 1173, "length": { "argumentTypes": null, "hexValue": "33", - "id": 143, + "id": 1171, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3824:1:0", + "src": "3824:1:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_3_by_1", @@ -1989,7 +1989,7 @@ "value": "3" }, "nodeType": "ArrayTypeName", - "src": "3819:7:0", + "src": "3819:7:4", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$3_storage_ptr", "typeString": "uint256[3]" @@ -1999,15 +1999,15 @@ "visibility": "internal" } ], - "id": 147, + "id": 1175, "initialValue": null, "nodeType": "VariableDeclarationStatement", - "src": "3819:20:0" + "src": "3819:20:4" }, { "expression": { "argumentTypes": null, - "id": 153, + "id": 1181, "isConstant": false, "isLValue": false, "isPure": false, @@ -2016,29 +2016,29 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 148, + "id": 1176, "name": "input", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 146, - "src": "3849:5:0", + "referencedDeclaration": 1174, + "src": "3849:5:4", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$3_memory_ptr", "typeString": "uint256[3] memory" } }, - "id": 150, + "id": 1178, "indexExpression": { "argumentTypes": null, "hexValue": "30", - "id": 149, + "id": 1177, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3855:1:0", + "src": "3855:1:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -2051,7 +2051,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "3849:8:0", + "src": "3849:8:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2063,45 +2063,45 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 151, + "id": 1179, "name": "p", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 135, - "src": "3860:1:0", + "referencedDeclaration": 1163, + "src": "3860:1:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_memory_ptr", + "typeIdentifier": "t_struct$_G1Point_$1034_memory_ptr", "typeString": "struct Pairing.G1Point memory" } }, - "id": 152, + "id": 1180, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "X", "nodeType": "MemberAccess", - "referencedDeclaration": 3, - "src": "3860:3:0", + "referencedDeclaration": 1031, + "src": "3860:3:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3849:14:0", + "src": "3849:14:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 154, + "id": 1182, "nodeType": "ExpressionStatement", - "src": "3849:14:0" + "src": "3849:14:4" }, { "expression": { "argumentTypes": null, - "id": 160, + "id": 1188, "isConstant": false, "isLValue": false, "isPure": false, @@ -2110,29 +2110,29 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 155, + "id": 1183, "name": "input", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 146, - "src": "3873:5:0", + "referencedDeclaration": 1174, + "src": "3873:5:4", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$3_memory_ptr", "typeString": "uint256[3] memory" } }, - "id": 157, + "id": 1185, "indexExpression": { "argumentTypes": null, "hexValue": "31", - "id": 156, + "id": 1184, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3879:1:0", + "src": "3879:1:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -2145,7 +2145,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "3873:8:0", + "src": "3873:8:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2157,45 +2157,45 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 158, + "id": 1186, "name": "p", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 135, - "src": "3884:1:0", + "referencedDeclaration": 1163, + "src": "3884:1:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_memory_ptr", + "typeIdentifier": "t_struct$_G1Point_$1034_memory_ptr", "typeString": "struct Pairing.G1Point memory" } }, - "id": 159, + "id": 1187, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "Y", "nodeType": "MemberAccess", - "referencedDeclaration": 5, - "src": "3884:3:0", + "referencedDeclaration": 1033, + "src": "3884:3:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3873:14:0", + "src": "3873:14:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 161, + "id": 1189, "nodeType": "ExpressionStatement", - "src": "3873:14:0" + "src": "3873:14:4" }, { "expression": { "argumentTypes": null, - "id": 166, + "id": 1194, "isConstant": false, "isLValue": false, "isPure": false, @@ -2204,29 +2204,29 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 162, + "id": 1190, "name": "input", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 146, - "src": "3897:5:0", + "referencedDeclaration": 1174, + "src": "3897:5:4", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$3_memory_ptr", "typeString": "uint256[3] memory" } }, - "id": 164, + "id": 1192, "indexExpression": { "argumentTypes": null, "hexValue": "32", - "id": 163, + "id": 1191, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3903:1:0", + "src": "3903:1:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_2_by_1", @@ -2239,7 +2239,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "3897:8:0", + "src": "3897:8:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2249,39 +2249,39 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 165, + "id": 1193, "name": "s", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 137, - "src": "3908:1:0", + "referencedDeclaration": 1165, + "src": "3908:1:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3897:12:0", + "src": "3897:12:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 167, + "id": 1195, "nodeType": "ExpressionStatement", - "src": "3897:12:0" + "src": "3897:12:4" }, { "assignments": [ - 169 + 1197 ], "declarations": [ { "constant": false, - "id": 169, + "id": 1197, "name": "success", "nodeType": "VariableDeclaration", - "scope": 177, - "src": "3919:12:0", + "scope": 1205, + "src": "3919:12:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2289,10 +2289,10 @@ "typeString": "bool" }, "typeName": { - "id": 168, + "id": 1196, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "3919:4:0", + "src": "3919:4:4", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2302,54 +2302,54 @@ "visibility": "internal" } ], - "id": 170, + "id": 1198, "initialValue": null, "nodeType": "VariableDeclarationStatement", - "src": "3919:12:0" + "src": "3919:12:4" }, { "externalReferences": [ { "success": { - "declaration": 169, + "declaration": 1197, "isOffset": false, "isSlot": false, - "src": "4028:7:0", - "valueSize": 1 - } - }, - { - "input": { - "declaration": 146, - "isOffset": false, - "isSlot": false, - "src": "4069:5:0", - "valueSize": 1 - } - }, - { - "r": { - "declaration": 140, - "isOffset": false, - "isSlot": false, - "src": "4082:1:0", + "src": "4028:7:4", "valueSize": 1 } }, { "success": { - "declaration": 169, + "declaration": 1197, "isOffset": false, "isSlot": false, - "src": "4167:7:0", + "src": "4167:7:4", + "valueSize": 1 + } + }, + { + "input": { + "declaration": 1174, + "isOffset": false, + "isSlot": false, + "src": "4069:5:4", + "valueSize": 1 + } + }, + { + "r": { + "declaration": 1168, + "isOffset": false, + "isSlot": false, + "src": "4082:1:4", "valueSize": 1 } } ], - "id": 171, + "id": 1199, "nodeType": "InlineAssembly", "operations": "{\n success := staticcall(sub(gas(), 2000), 7, input, 0x80, r, 0x60)\n switch success\n case 0 { invalid() }\n}", - "src": "4005:200:0" + "src": "4005:200:4" }, { "expression": { @@ -2357,12 +2357,12 @@ "arguments": [ { "argumentTypes": null, - "id": 173, + "id": 1201, "name": "success", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 169, - "src": "4223:7:0", + "referencedDeclaration": 1197, + "src": "4223:7:4", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2371,14 +2371,14 @@ { "argumentTypes": null, "hexValue": "70616972696e672d6d756c2d6661696c6564", - "id": 174, + "id": 1202, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "4231:20:0", + "src": "4231:20:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_63b4943691e0891cf5adcfe6e3eb490783b718accceadc0166bc4e56cf1df5de", @@ -2398,21 +2398,21 @@ "typeString": "literal_string \"pairing-mul-failed\"" } ], - "id": 172, + "id": 1200, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1076, - 1077 + 2134, + 2135 ], - "referencedDeclaration": 1077, - "src": "4214:7:0", + "referencedDeclaration": 2135, + "src": "4214:7:4", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 175, + "id": 1203, "isConstant": false, "isLValue": false, "isPure": false, @@ -2420,51 +2420,51 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4214:38:0", + "src": "4214:38:4", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 176, + "id": 1204, "nodeType": "ExpressionStatement", - "src": "4214:38:0" + "src": "4214:38:4" } ] }, "documentation": "@return the product of a point on G1 and a scalar, i.e.\n p == p.scalar_mul(1) and p.addition(p) == p.scalar_mul(2) for all points p.", - "id": 178, + "id": 1206, "implemented": true, "kind": "function", "modifiers": [], "name": "scalar_mul", "nodeType": "FunctionDefinition", "parameters": { - "id": 138, + "id": 1166, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 135, + "id": 1163, "name": "p", "nodeType": "VariableDeclaration", - "scope": 178, - "src": "3742:16:0", + "scope": 1206, + "src": "3742:16:4", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_memory_ptr", + "typeIdentifier": "t_struct$_G1Point_$1034_memory_ptr", "typeString": "struct Pairing.G1Point" }, "typeName": { "contractScope": null, - "id": 134, + "id": 1162, "name": "G1Point", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 6, - "src": "3742:7:0", + "referencedDeclaration": 1034, + "src": "3742:7:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_storage_ptr", + "typeIdentifier": "t_struct$_G1Point_$1034_storage_ptr", "typeString": "struct Pairing.G1Point" } }, @@ -2473,11 +2473,11 @@ }, { "constant": false, - "id": 137, + "id": 1165, "name": "s", "nodeType": "VariableDeclaration", - "scope": 178, - "src": "3760:6:0", + "scope": 1206, + "src": "3760:6:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2485,10 +2485,10 @@ "typeString": "uint256" }, "typeName": { - "id": 136, + "id": 1164, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "3760:4:0", + "src": "3760:4:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2498,34 +2498,34 @@ "visibility": "internal" } ], - "src": "3741:26:0" + "src": "3741:26:4" }, "returnParameters": { - "id": 141, + "id": 1169, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 140, + "id": 1168, "name": "r", "nodeType": "VariableDeclaration", - "scope": 178, - "src": "3791:16:0", + "scope": 1206, + "src": "3791:16:4", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_memory_ptr", + "typeIdentifier": "t_struct$_G1Point_$1034_memory_ptr", "typeString": "struct Pairing.G1Point" }, "typeName": { "contractScope": null, - "id": 139, + "id": 1167, "name": "G1Point", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 6, - "src": "3791:7:0", + "referencedDeclaration": 1034, + "src": "3791:7:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_storage_ptr", + "typeIdentifier": "t_struct$_G1Point_$1034_storage_ptr", "typeString": "struct Pairing.G1Point" } }, @@ -2533,19 +2533,19 @@ "visibility": "internal" } ], - "src": "3790:18:0" + "src": "3790:18:4" }, - "scope": 577, - "src": "3722:537:0", + "scope": 1605, + "src": "3722:537:4", "stateMutability": "view", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 338, + "id": 1366, "nodeType": "Block", - "src": "4558:946:0", + "src": "4558:946:4", "statements": [ { "expression": { @@ -2557,7 +2557,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 194, + "id": 1222, "isConstant": false, "isLValue": false, "isPure": false, @@ -2566,18 +2566,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 190, + "id": 1218, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 181, - "src": "4576:2:0", + "referencedDeclaration": 1209, + "src": "4576:2:4", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_G1Point_$6_memory_$dyn_memory_ptr", + "typeIdentifier": "t_array$_t_struct$_G1Point_$1034_memory_$dyn_memory_ptr", "typeString": "struct Pairing.G1Point memory[] memory" } }, - "id": 191, + "id": 1219, "isConstant": false, "isLValue": false, "isPure": false, @@ -2585,7 +2585,7 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "4576:9:0", + "src": "4576:9:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2597,18 +2597,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 192, + "id": 1220, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 184, - "src": "4589:2:0", + "referencedDeclaration": 1212, + "src": "4589:2:4", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_G2Point_$15_memory_$dyn_memory_ptr", + "typeIdentifier": "t_array$_t_struct$_G2Point_$1043_memory_$dyn_memory_ptr", "typeString": "struct Pairing.G2Point memory[] memory" } }, - "id": 193, + "id": 1221, "isConstant": false, "isLValue": false, "isPure": false, @@ -2616,13 +2616,13 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "4589:9:0", + "src": "4589:9:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "4576:22:0", + "src": "4576:22:4", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2631,14 +2631,14 @@ { "argumentTypes": null, "hexValue": "70616972696e672d6c656e677468732d6661696c6564", - "id": 195, + "id": 1223, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "4599:24:0", + "src": "4599:24:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_d4c505601ed3bad1341fbb75434dd6541f91bae974d0b2bc28d5491a5c4a21cc", @@ -2658,21 +2658,21 @@ "typeString": "literal_string \"pairing-lengths-failed\"" } ], - "id": 189, + "id": 1217, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1076, - 1077 + 2134, + 2135 ], - "referencedDeclaration": 1077, - "src": "4568:7:0", + "referencedDeclaration": 2135, + "src": "4568:7:4", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 196, + "id": 1224, "isConstant": false, "isLValue": false, "isPure": false, @@ -2680,28 +2680,28 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4568:56:0", + "src": "4568:56:4", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 197, + "id": 1225, "nodeType": "ExpressionStatement", - "src": "4568:56:0" + "src": "4568:56:4" }, { "assignments": [ - 199 + 1227 ], "declarations": [ { "constant": false, - "id": 199, + "id": 1227, "name": "elements", "nodeType": "VariableDeclaration", - "scope": 338, - "src": "4634:13:0", + "scope": 1366, + "src": "4634:13:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2709,10 +2709,10 @@ "typeString": "uint256" }, "typeName": { - "id": 198, + "id": 1226, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "4634:4:0", + "src": "4634:4:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2722,23 +2722,23 @@ "visibility": "internal" } ], - "id": 202, + "id": 1230, "initialValue": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 200, + "id": 1228, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 181, - "src": "4650:2:0", + "referencedDeclaration": 1209, + "src": "4650:2:4", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_G1Point_$6_memory_$dyn_memory_ptr", + "typeIdentifier": "t_array$_t_struct$_G1Point_$1034_memory_$dyn_memory_ptr", "typeString": "struct Pairing.G1Point memory[] memory" } }, - "id": 201, + "id": 1229, "isConstant": false, "isLValue": false, "isPure": false, @@ -2746,27 +2746,27 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "4650:9:0", + "src": "4650:9:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", - "src": "4634:25:0" + "src": "4634:25:4" }, { "assignments": [ - 204 + 1232 ], "declarations": [ { "constant": false, - "id": 204, + "id": 1232, "name": "inputSize", "nodeType": "VariableDeclaration", - "scope": 338, - "src": "4669:14:0", + "scope": 1366, + "src": "4669:14:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2774,10 +2774,10 @@ "typeString": "uint256" }, "typeName": { - "id": 203, + "id": 1231, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "4669:4:0", + "src": "4669:4:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2787,26 +2787,26 @@ "visibility": "internal" } ], - "id": 208, + "id": 1236, "initialValue": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 207, + "id": 1235, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 205, + "id": 1233, "name": "elements", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 199, - "src": "4686:8:0", + "referencedDeclaration": 1227, + "src": "4686:8:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2817,14 +2817,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "36", - "id": 206, + "id": 1234, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4697:1:0", + "src": "4697:1:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_6_by_1", @@ -2832,27 +2832,27 @@ }, "value": "6" }, - "src": "4686:12:0", + "src": "4686:12:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", - "src": "4669:29:0" + "src": "4669:29:4" }, { "assignments": [ - 212 + 1240 ], "declarations": [ { "constant": false, - "id": 212, + "id": 1240, "name": "input", "nodeType": "VariableDeclaration", - "scope": 338, - "src": "4708:19:0", + "scope": 1366, + "src": "4708:19:4", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -2861,19 +2861,19 @@ }, "typeName": { "baseType": { - "id": 210, + "id": 1238, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "4708:4:0", + "src": "4708:4:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 211, + "id": 1239, "length": null, "nodeType": "ArrayTypeName", - "src": "4708:6:0", + "src": "4708:6:4", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", "typeString": "uint256[]" @@ -2883,18 +2883,18 @@ "visibility": "internal" } ], - "id": 218, + "id": 1246, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 216, + "id": 1244, "name": "inputSize", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 204, - "src": "4741:9:0", + "referencedDeclaration": 1232, + "src": "4741:9:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2908,39 +2908,39 @@ "typeString": "uint256" } ], - "id": 215, + "id": 1243, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "NewExpression", - "src": "4730:10:0", + "src": "4730:10:4", "typeDescriptions": { "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_$", "typeString": "function (uint256) pure returns (uint256[] memory)" }, "typeName": { "baseType": { - "id": 213, + "id": 1241, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "4734:4:0", + "src": "4734:4:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 214, + "id": 1242, "length": null, "nodeType": "ArrayTypeName", - "src": "4734:6:0", + "src": "4734:6:4", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", "typeString": "uint256[]" } } }, - "id": 217, + "id": 1245, "isConstant": false, "isLValue": false, "isPure": false, @@ -2948,25 +2948,25 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4730:21:0", + "src": "4730:21:4", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_memory", "typeString": "uint256[] memory" } }, "nodeType": "VariableDeclarationStatement", - "src": "4708:43:0" + "src": "4708:43:4" }, { "body": { - "id": 315, + "id": 1343, "nodeType": "Block", - "src": "4805:263:0", + "src": "4805:263:4", "statements": [ { "expression": { "argumentTypes": null, - "id": 240, + "id": 1268, "isConstant": false, "isLValue": false, "isPure": false, @@ -2975,25 +2975,25 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 229, + "id": 1257, "name": "input", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 212, - "src": "4819:5:0", + "referencedDeclaration": 1240, + "src": "4819:5:4", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", "typeString": "uint256[] memory" } }, - "id": 235, + "id": 1263, "indexExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 234, + "id": 1262, "isConstant": false, "isLValue": false, "isPure": false, @@ -3004,19 +3004,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 232, + "id": 1260, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 230, + "id": 1258, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 220, - "src": "4825:1:0", + "referencedDeclaration": 1248, + "src": "4825:1:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3027,14 +3027,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "36", - "id": 231, + "id": 1259, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4829:1:0", + "src": "4829:1:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_6_by_1", @@ -3042,7 +3042,7 @@ }, "value": "6" }, - "src": "4825:5:0", + "src": "4825:5:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3053,14 +3053,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 233, + "id": 1261, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4833:1:0", + "src": "4833:1:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -3068,7 +3068,7 @@ }, "value": "0" }, - "src": "4825:9:0", + "src": "4825:9:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3079,7 +3079,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "4819:16:0", + "src": "4819:16:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3093,26 +3093,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 236, + "id": 1264, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 181, - "src": "4838:2:0", + "referencedDeclaration": 1209, + "src": "4838:2:4", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_G1Point_$6_memory_$dyn_memory_ptr", + "typeIdentifier": "t_array$_t_struct$_G1Point_$1034_memory_$dyn_memory_ptr", "typeString": "struct Pairing.G1Point memory[] memory" } }, - "id": 238, + "id": 1266, "indexExpression": { "argumentTypes": null, - "id": 237, + "id": 1265, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 220, - "src": "4841:1:0", + "referencedDeclaration": 1248, + "src": "4841:1:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3123,40 +3123,40 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "4838:5:0", + "src": "4838:5:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_memory", + "typeIdentifier": "t_struct$_G1Point_$1034_memory", "typeString": "struct Pairing.G1Point memory" } }, - "id": 239, + "id": 1267, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "X", "nodeType": "MemberAccess", - "referencedDeclaration": 3, - "src": "4838:7:0", + "referencedDeclaration": 1031, + "src": "4838:7:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "4819:26:0", + "src": "4819:26:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 241, + "id": 1269, "nodeType": "ExpressionStatement", - "src": "4819:26:0" + "src": "4819:26:4" }, { "expression": { "argumentTypes": null, - "id": 253, + "id": 1281, "isConstant": false, "isLValue": false, "isPure": false, @@ -3165,25 +3165,25 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 242, + "id": 1270, "name": "input", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 212, - "src": "4859:5:0", + "referencedDeclaration": 1240, + "src": "4859:5:4", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", "typeString": "uint256[] memory" } }, - "id": 248, + "id": 1276, "indexExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 247, + "id": 1275, "isConstant": false, "isLValue": false, "isPure": false, @@ -3194,19 +3194,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 245, + "id": 1273, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 243, + "id": 1271, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 220, - "src": "4865:1:0", + "referencedDeclaration": 1248, + "src": "4865:1:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3217,14 +3217,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "36", - "id": 244, + "id": 1272, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4869:1:0", + "src": "4869:1:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_6_by_1", @@ -3232,7 +3232,7 @@ }, "value": "6" }, - "src": "4865:5:0", + "src": "4865:5:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3243,14 +3243,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "31", - "id": 246, + "id": 1274, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4873:1:0", + "src": "4873:1:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -3258,7 +3258,7 @@ }, "value": "1" }, - "src": "4865:9:0", + "src": "4865:9:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3269,7 +3269,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "4859:16:0", + "src": "4859:16:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3283,26 +3283,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 249, + "id": 1277, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 181, - "src": "4878:2:0", + "referencedDeclaration": 1209, + "src": "4878:2:4", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_G1Point_$6_memory_$dyn_memory_ptr", + "typeIdentifier": "t_array$_t_struct$_G1Point_$1034_memory_$dyn_memory_ptr", "typeString": "struct Pairing.G1Point memory[] memory" } }, - "id": 251, + "id": 1279, "indexExpression": { "argumentTypes": null, - "id": 250, + "id": 1278, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 220, - "src": "4881:1:0", + "referencedDeclaration": 1248, + "src": "4881:1:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3313,40 +3313,40 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "4878:5:0", + "src": "4878:5:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_memory", + "typeIdentifier": "t_struct$_G1Point_$1034_memory", "typeString": "struct Pairing.G1Point memory" } }, - "id": 252, + "id": 1280, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "Y", "nodeType": "MemberAccess", - "referencedDeclaration": 5, - "src": "4878:7:0", + "referencedDeclaration": 1033, + "src": "4878:7:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "4859:26:0", + "src": "4859:26:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 254, + "id": 1282, "nodeType": "ExpressionStatement", - "src": "4859:26:0" + "src": "4859:26:4" }, { "expression": { "argumentTypes": null, - "id": 268, + "id": 1296, "isConstant": false, "isLValue": false, "isPure": false, @@ -3355,25 +3355,25 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 255, + "id": 1283, "name": "input", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 212, - "src": "4899:5:0", + "referencedDeclaration": 1240, + "src": "4899:5:4", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", "typeString": "uint256[] memory" } }, - "id": 261, + "id": 1289, "indexExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 260, + "id": 1288, "isConstant": false, "isLValue": false, "isPure": false, @@ -3384,19 +3384,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 258, + "id": 1286, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 256, + "id": 1284, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 220, - "src": "4905:1:0", + "referencedDeclaration": 1248, + "src": "4905:1:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3407,14 +3407,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "36", - "id": 257, + "id": 1285, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4909:1:0", + "src": "4909:1:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_6_by_1", @@ -3422,7 +3422,7 @@ }, "value": "6" }, - "src": "4905:5:0", + "src": "4905:5:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3433,14 +3433,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "32", - "id": 259, + "id": 1287, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4913:1:0", + "src": "4913:1:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_2_by_1", @@ -3448,7 +3448,7 @@ }, "value": "2" }, - "src": "4905:9:0", + "src": "4905:9:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3459,7 +3459,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "4899:16:0", + "src": "4899:16:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3475,26 +3475,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 262, + "id": 1290, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 184, - "src": "4918:2:0", + "referencedDeclaration": 1212, + "src": "4918:2:4", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_G2Point_$15_memory_$dyn_memory_ptr", + "typeIdentifier": "t_array$_t_struct$_G2Point_$1043_memory_$dyn_memory_ptr", "typeString": "struct Pairing.G2Point memory[] memory" } }, - "id": 264, + "id": 1292, "indexExpression": { "argumentTypes": null, - "id": 263, + "id": 1291, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 220, - "src": "4921:1:0", + "referencedDeclaration": 1248, + "src": "4921:1:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3505,38 +3505,38 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "4918:5:0", + "src": "4918:5:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G2Point_$15_memory", + "typeIdentifier": "t_struct$_G2Point_$1043_memory", "typeString": "struct Pairing.G2Point memory" } }, - "id": 265, + "id": 1293, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "X", "nodeType": "MemberAccess", - "referencedDeclaration": 10, - "src": "4918:7:0", + "referencedDeclaration": 1038, + "src": "4918:7:4", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$2_memory", "typeString": "uint256[2] memory" } }, - "id": 267, + "id": 1295, "indexExpression": { "argumentTypes": null, "hexValue": "30", - "id": 266, + "id": 1294, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4926:1:0", + "src": "4926:1:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -3549,26 +3549,26 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "4918:10:0", + "src": "4918:10:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "4899:29:0", + "src": "4899:29:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 269, + "id": 1297, "nodeType": "ExpressionStatement", - "src": "4899:29:0" + "src": "4899:29:4" }, { "expression": { "argumentTypes": null, - "id": 283, + "id": 1311, "isConstant": false, "isLValue": false, "isPure": false, @@ -3577,25 +3577,25 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 270, + "id": 1298, "name": "input", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 212, - "src": "4942:5:0", + "referencedDeclaration": 1240, + "src": "4942:5:4", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", "typeString": "uint256[] memory" } }, - "id": 276, + "id": 1304, "indexExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 275, + "id": 1303, "isConstant": false, "isLValue": false, "isPure": false, @@ -3606,19 +3606,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 273, + "id": 1301, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 271, + "id": 1299, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 220, - "src": "4948:1:0", + "referencedDeclaration": 1248, + "src": "4948:1:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3629,14 +3629,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "36", - "id": 272, + "id": 1300, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4952:1:0", + "src": "4952:1:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_6_by_1", @@ -3644,7 +3644,7 @@ }, "value": "6" }, - "src": "4948:5:0", + "src": "4948:5:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3655,14 +3655,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "33", - "id": 274, + "id": 1302, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4956:1:0", + "src": "4956:1:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_3_by_1", @@ -3670,7 +3670,7 @@ }, "value": "3" }, - "src": "4948:9:0", + "src": "4948:9:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3681,7 +3681,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "4942:16:0", + "src": "4942:16:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3697,26 +3697,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 277, + "id": 1305, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 184, - "src": "4961:2:0", + "referencedDeclaration": 1212, + "src": "4961:2:4", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_G2Point_$15_memory_$dyn_memory_ptr", + "typeIdentifier": "t_array$_t_struct$_G2Point_$1043_memory_$dyn_memory_ptr", "typeString": "struct Pairing.G2Point memory[] memory" } }, - "id": 279, + "id": 1307, "indexExpression": { "argumentTypes": null, - "id": 278, + "id": 1306, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 220, - "src": "4964:1:0", + "referencedDeclaration": 1248, + "src": "4964:1:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3727,38 +3727,38 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "4961:5:0", + "src": "4961:5:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G2Point_$15_memory", + "typeIdentifier": "t_struct$_G2Point_$1043_memory", "typeString": "struct Pairing.G2Point memory" } }, - "id": 280, + "id": 1308, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "X", "nodeType": "MemberAccess", - "referencedDeclaration": 10, - "src": "4961:7:0", + "referencedDeclaration": 1038, + "src": "4961:7:4", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$2_memory", "typeString": "uint256[2] memory" } }, - "id": 282, + "id": 1310, "indexExpression": { "argumentTypes": null, "hexValue": "31", - "id": 281, + "id": 1309, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4969:1:0", + "src": "4969:1:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -3771,26 +3771,26 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "4961:10:0", + "src": "4961:10:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "4942:29:0", + "src": "4942:29:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 284, + "id": 1312, "nodeType": "ExpressionStatement", - "src": "4942:29:0" + "src": "4942:29:4" }, { "expression": { "argumentTypes": null, - "id": 298, + "id": 1326, "isConstant": false, "isLValue": false, "isPure": false, @@ -3799,25 +3799,25 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 285, + "id": 1313, "name": "input", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 212, - "src": "4985:5:0", + "referencedDeclaration": 1240, + "src": "4985:5:4", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", "typeString": "uint256[] memory" } }, - "id": 291, + "id": 1319, "indexExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 290, + "id": 1318, "isConstant": false, "isLValue": false, "isPure": false, @@ -3828,19 +3828,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 288, + "id": 1316, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 286, + "id": 1314, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 220, - "src": "4991:1:0", + "referencedDeclaration": 1248, + "src": "4991:1:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3851,14 +3851,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "36", - "id": 287, + "id": 1315, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4995:1:0", + "src": "4995:1:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_6_by_1", @@ -3866,7 +3866,7 @@ }, "value": "6" }, - "src": "4991:5:0", + "src": "4991:5:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3877,14 +3877,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "34", - "id": 289, + "id": 1317, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4999:1:0", + "src": "4999:1:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_4_by_1", @@ -3892,7 +3892,7 @@ }, "value": "4" }, - "src": "4991:9:0", + "src": "4991:9:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3903,7 +3903,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "4985:16:0", + "src": "4985:16:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3919,26 +3919,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 292, + "id": 1320, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 184, - "src": "5004:2:0", + "referencedDeclaration": 1212, + "src": "5004:2:4", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_G2Point_$15_memory_$dyn_memory_ptr", + "typeIdentifier": "t_array$_t_struct$_G2Point_$1043_memory_$dyn_memory_ptr", "typeString": "struct Pairing.G2Point memory[] memory" } }, - "id": 294, + "id": 1322, "indexExpression": { "argumentTypes": null, - "id": 293, + "id": 1321, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 220, - "src": "5007:1:0", + "referencedDeclaration": 1248, + "src": "5007:1:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3949,38 +3949,38 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "5004:5:0", + "src": "5004:5:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G2Point_$15_memory", + "typeIdentifier": "t_struct$_G2Point_$1043_memory", "typeString": "struct Pairing.G2Point memory" } }, - "id": 295, + "id": 1323, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "Y", "nodeType": "MemberAccess", - "referencedDeclaration": 14, - "src": "5004:7:0", + "referencedDeclaration": 1042, + "src": "5004:7:4", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$2_memory", "typeString": "uint256[2] memory" } }, - "id": 297, + "id": 1325, "indexExpression": { "argumentTypes": null, "hexValue": "30", - "id": 296, + "id": 1324, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "5012:1:0", + "src": "5012:1:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -3993,26 +3993,26 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "5004:10:0", + "src": "5004:10:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "4985:29:0", + "src": "4985:29:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 299, + "id": 1327, "nodeType": "ExpressionStatement", - "src": "4985:29:0" + "src": "4985:29:4" }, { "expression": { "argumentTypes": null, - "id": 313, + "id": 1341, "isConstant": false, "isLValue": false, "isPure": false, @@ -4021,25 +4021,25 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 300, + "id": 1328, "name": "input", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 212, - "src": "5028:5:0", + "referencedDeclaration": 1240, + "src": "5028:5:4", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", "typeString": "uint256[] memory" } }, - "id": 306, + "id": 1334, "indexExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 305, + "id": 1333, "isConstant": false, "isLValue": false, "isPure": false, @@ -4050,19 +4050,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 303, + "id": 1331, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 301, + "id": 1329, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 220, - "src": "5034:1:0", + "referencedDeclaration": 1248, + "src": "5034:1:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4073,14 +4073,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "36", - "id": 302, + "id": 1330, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "5038:1:0", + "src": "5038:1:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_6_by_1", @@ -4088,7 +4088,7 @@ }, "value": "6" }, - "src": "5034:5:0", + "src": "5034:5:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4099,14 +4099,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "35", - "id": 304, + "id": 1332, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "5042:1:0", + "src": "5042:1:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_5_by_1", @@ -4114,7 +4114,7 @@ }, "value": "5" }, - "src": "5034:9:0", + "src": "5034:9:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4125,7 +4125,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "5028:16:0", + "src": "5028:16:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4141,26 +4141,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 307, + "id": 1335, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 184, - "src": "5047:2:0", + "referencedDeclaration": 1212, + "src": "5047:2:4", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_G2Point_$15_memory_$dyn_memory_ptr", + "typeIdentifier": "t_array$_t_struct$_G2Point_$1043_memory_$dyn_memory_ptr", "typeString": "struct Pairing.G2Point memory[] memory" } }, - "id": 309, + "id": 1337, "indexExpression": { "argumentTypes": null, - "id": 308, + "id": 1336, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 220, - "src": "5050:1:0", + "referencedDeclaration": 1248, + "src": "5050:1:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4171,38 +4171,38 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "5047:5:0", + "src": "5047:5:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G2Point_$15_memory", + "typeIdentifier": "t_struct$_G2Point_$1043_memory", "typeString": "struct Pairing.G2Point memory" } }, - "id": 310, + "id": 1338, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "Y", "nodeType": "MemberAccess", - "referencedDeclaration": 14, - "src": "5047:7:0", + "referencedDeclaration": 1042, + "src": "5047:7:4", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$2_memory", "typeString": "uint256[2] memory" } }, - "id": 312, + "id": 1340, "indexExpression": { "argumentTypes": null, "hexValue": "31", - "id": 311, + "id": 1339, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "5055:1:0", + "src": "5055:1:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -4215,21 +4215,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "5047:10:0", + "src": "5047:10:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "5028:29:0", + "src": "5028:29:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 314, + "id": 1342, "nodeType": "ExpressionStatement", - "src": "5028:29:0" + "src": "5028:29:4" } ] }, @@ -4239,19 +4239,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 225, + "id": 1253, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 223, + "id": 1251, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 220, - "src": "4778:1:0", + "referencedDeclaration": 1248, + "src": "4778:1:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4261,36 +4261,36 @@ "operator": "<", "rightExpression": { "argumentTypes": null, - "id": 224, + "id": 1252, "name": "elements", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 199, - "src": "4782:8:0", + "referencedDeclaration": 1227, + "src": "4782:8:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "4778:12:0", + "src": "4778:12:4", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 316, + "id": 1344, "initializationExpression": { "assignments": [ - 220 + 1248 ], "declarations": [ { "constant": false, - "id": 220, + "id": 1248, "name": "i", "nodeType": "VariableDeclaration", - "scope": 316, - "src": "4766:6:0", + "scope": 1344, + "src": "4766:6:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4298,10 +4298,10 @@ "typeString": "uint256" }, "typeName": { - "id": 219, + "id": 1247, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "4766:4:0", + "src": "4766:4:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4311,18 +4311,18 @@ "visibility": "internal" } ], - "id": 222, + "id": 1250, "initialValue": { "argumentTypes": null, "hexValue": "30", - "id": 221, + "id": 1249, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4775:1:0", + "src": "4775:1:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -4331,12 +4331,12 @@ "value": "0" }, "nodeType": "VariableDeclarationStatement", - "src": "4766:10:0" + "src": "4766:10:4" }, "loopExpression": { "expression": { "argumentTypes": null, - "id": 227, + "id": 1255, "isConstant": false, "isLValue": false, "isPure": false, @@ -4344,15 +4344,15 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "4792:3:0", + "src": "4792:3:4", "subExpression": { "argumentTypes": null, - "id": 226, + "id": 1254, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 220, - "src": "4792:1:0", + "referencedDeclaration": 1248, + "src": "4792:1:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4363,25 +4363,25 @@ "typeString": "uint256" } }, - "id": 228, + "id": 1256, "nodeType": "ExpressionStatement", - "src": "4792:3:0" + "src": "4792:3:4" }, "nodeType": "ForStatement", - "src": "4761:307:0" + "src": "4761:307:4" }, { "assignments": [ - 321 + 1349 ], "declarations": [ { "constant": false, - "id": 321, + "id": 1349, "name": "out", "nodeType": "VariableDeclaration", - "scope": 338, - "src": "5077:18:0", + "scope": 1366, + "src": "5077:18:4", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -4390,27 +4390,27 @@ }, "typeName": { "baseType": { - "id": 319, + "id": 1347, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "5077:4:0", + "src": "5077:4:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 320, + "id": 1348, "length": { "argumentTypes": null, "hexValue": "31", - "id": 318, + "id": 1346, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "5082:1:0", + "src": "5082:1:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -4419,7 +4419,7 @@ "value": "1" }, "nodeType": "ArrayTypeName", - "src": "5077:7:0", + "src": "5077:7:4", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$1_storage_ptr", "typeString": "uint256[1]" @@ -4429,23 +4429,23 @@ "visibility": "internal" } ], - "id": 322, + "id": 1350, "initialValue": null, "nodeType": "VariableDeclarationStatement", - "src": "5077:18:0" + "src": "5077:18:4" }, { "assignments": [ - 324 + 1352 ], "declarations": [ { "constant": false, - "id": 324, + "id": 1352, "name": "success", "nodeType": "VariableDeclaration", - "scope": 338, - "src": "5105:12:0", + "scope": 1366, + "src": "5105:12:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4453,10 +4453,10 @@ "typeString": "bool" }, "typeName": { - "id": 323, + "id": 1351, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "5105:4:0", + "src": "5105:4:4", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -4466,63 +4466,63 @@ "visibility": "internal" } ], - "id": 325, + "id": 1353, "initialValue": null, "nodeType": "VariableDeclarationStatement", - "src": "5105:12:0" + "src": "5105:12:4" }, { "externalReferences": [ { "success": { - "declaration": 324, + "declaration": 1352, "isOffset": false, "isSlot": false, - "src": "5214:7:0", + "src": "5214:7:4", "valueSize": 1 } }, { "input": { - "declaration": 212, + "declaration": 1240, "isOffset": false, "isSlot": false, - "src": "5259:5:0", + "src": "5259:5:4", "valueSize": 1 } }, { "success": { - "declaration": 324, + "declaration": 1352, "isOffset": false, "isSlot": false, - "src": "5382:7:0", + "src": "5382:7:4", "valueSize": 1 } }, { "inputSize": { - "declaration": 204, + "declaration": 1232, "isOffset": false, "isSlot": false, - "src": "5277:9:0", + "src": "5277:9:4", "valueSize": 1 } }, { "out": { - "declaration": 321, + "declaration": 1349, "isOffset": false, "isSlot": false, - "src": "5295:3:0", + "src": "5295:3:4", "valueSize": 1 } } ], - "id": 326, + "id": 1354, "nodeType": "InlineAssembly", "operations": "{\n success := staticcall(sub(gas(), 2000), 8, add(input, 0x20), mul(inputSize, 0x20), out, 0x20)\n switch success\n case 0 { invalid() }\n}", - "src": "5191:229:0" + "src": "5191:229:4" }, { "expression": { @@ -4530,12 +4530,12 @@ "arguments": [ { "argumentTypes": null, - "id": 328, + "id": 1356, "name": "success", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 324, - "src": "5437:7:0", + "referencedDeclaration": 1352, + "src": "5437:7:4", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -4544,14 +4544,14 @@ { "argumentTypes": null, "hexValue": "70616972696e672d6f70636f64652d6661696c6564", - "id": 329, + "id": 1357, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "5445:23:0", + "src": "5445:23:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_f3220b3ef654fc0d9a13e2b6d8c956cb8fb22df61a3a050ded181d8902069fe5", @@ -4571,21 +4571,21 @@ "typeString": "literal_string \"pairing-opcode-failed\"" } ], - "id": 327, + "id": 1355, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1076, - 1077 + 2134, + 2135 ], - "referencedDeclaration": 1077, - "src": "5429:7:0", + "referencedDeclaration": 2135, + "src": "5429:7:4", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 330, + "id": 1358, "isConstant": false, "isLValue": false, "isPure": false, @@ -4593,15 +4593,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5429:40:0", + "src": "5429:40:4", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 331, + "id": 1359, "nodeType": "ExpressionStatement", - "src": "5429:40:0" + "src": "5429:40:4" }, { "expression": { @@ -4610,7 +4610,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 336, + "id": 1364, "isConstant": false, "isLValue": false, "isPure": false, @@ -4619,29 +4619,29 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 332, + "id": 1360, "name": "out", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 321, - "src": "5486:3:0", + "referencedDeclaration": 1349, + "src": "5486:3:4", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$1_memory_ptr", "typeString": "uint256[1] memory" } }, - "id": 334, + "id": 1362, "indexExpression": { "argumentTypes": null, "hexValue": "30", - "id": 333, + "id": 1361, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "5490:1:0", + "src": "5490:1:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -4654,7 +4654,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "5486:6:0", + "src": "5486:6:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4665,14 +4665,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 335, + "id": 1363, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "5496:1:0", + "src": "5496:1:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -4680,62 +4680,62 @@ }, "value": "0" }, - "src": "5486:11:0", + "src": "5486:11:4", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "functionReturnParameters": 188, - "id": 337, + "functionReturnParameters": 1216, + "id": 1365, "nodeType": "Return", - "src": "5479:18:0" + "src": "5479:18:4" } ] }, "documentation": "@return the result of computing the pairing check\n e(p1[0], p2[0]) * .... * e(p1[n], p2[n]) == 1\n For example pairing([P1(), P1().negate()], [P2(), P2()]) should\n return true.", - "id": 339, + "id": 1367, "implemented": true, "kind": "function", "modifiers": [], "name": "pairing", "nodeType": "FunctionDefinition", "parameters": { - "id": 185, + "id": 1213, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 181, + "id": 1209, "name": "p1", "nodeType": "VariableDeclaration", - "scope": 339, - "src": "4487:19:0", + "scope": 1367, + "src": "4487:19:4", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_G1Point_$6_memory_$dyn_memory_ptr", + "typeIdentifier": "t_array$_t_struct$_G1Point_$1034_memory_$dyn_memory_ptr", "typeString": "struct Pairing.G1Point[]" }, "typeName": { "baseType": { "contractScope": null, - "id": 179, + "id": 1207, "name": "G1Point", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 6, - "src": "4487:7:0", + "referencedDeclaration": 1034, + "src": "4487:7:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_storage_ptr", + "typeIdentifier": "t_struct$_G1Point_$1034_storage_ptr", "typeString": "struct Pairing.G1Point" } }, - "id": 180, + "id": 1208, "length": null, "nodeType": "ArrayTypeName", - "src": "4487:9:0", + "src": "4487:9:4", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_G1Point_$6_storage_$dyn_storage_ptr", + "typeIdentifier": "t_array$_t_struct$_G1Point_$1034_storage_$dyn_storage_ptr", "typeString": "struct Pairing.G1Point[]" } }, @@ -4744,36 +4744,36 @@ }, { "constant": false, - "id": 184, + "id": 1212, "name": "p2", "nodeType": "VariableDeclaration", - "scope": 339, - "src": "4508:19:0", + "scope": 1367, + "src": "4508:19:4", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_G2Point_$15_memory_$dyn_memory_ptr", + "typeIdentifier": "t_array$_t_struct$_G2Point_$1043_memory_$dyn_memory_ptr", "typeString": "struct Pairing.G2Point[]" }, "typeName": { "baseType": { "contractScope": null, - "id": 182, + "id": 1210, "name": "G2Point", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 15, - "src": "4508:7:0", + "referencedDeclaration": 1043, + "src": "4508:7:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G2Point_$15_storage_ptr", + "typeIdentifier": "t_struct$_G2Point_$1043_storage_ptr", "typeString": "struct Pairing.G2Point" } }, - "id": 183, + "id": 1211, "length": null, "nodeType": "ArrayTypeName", - "src": "4508:9:0", + "src": "4508:9:4", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_G2Point_$15_storage_$dyn_storage_ptr", + "typeIdentifier": "t_array$_t_struct$_G2Point_$1043_storage_$dyn_storage_ptr", "typeString": "struct Pairing.G2Point[]" } }, @@ -4781,19 +4781,19 @@ "visibility": "internal" } ], - "src": "4486:42:0" + "src": "4486:42:4" }, "returnParameters": { - "id": 188, + "id": 1216, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 187, + "id": 1215, "name": "", "nodeType": "VariableDeclaration", - "scope": 339, - "src": "4552:4:0", + "scope": 1367, + "src": "4552:4:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4801,10 +4801,10 @@ "typeString": "bool" }, "typeName": { - "id": 186, + "id": 1214, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "4552:4:0", + "src": "4552:4:4", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -4814,57 +4814,57 @@ "visibility": "internal" } ], - "src": "4551:6:0" + "src": "4551:6:4" }, - "scope": 577, - "src": "4470:1034:0", + "scope": 1605, + "src": "4470:1034:4", "stateMutability": "view", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 401, + "id": 1429, "nodeType": "Block", - "src": "5698:215:0", + "src": "5698:215:4", "statements": [ { "assignments": [ - 355 + 1383 ], "declarations": [ { "constant": false, - "id": 355, + "id": 1383, "name": "p1", "nodeType": "VariableDeclaration", - "scope": 401, - "src": "5708:19:0", + "scope": 1429, + "src": "5708:19:4", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_G1Point_$6_memory_$dyn_memory_ptr", + "typeIdentifier": "t_array$_t_struct$_G1Point_$1034_memory_$dyn_memory_ptr", "typeString": "struct Pairing.G1Point[]" }, "typeName": { "baseType": { "contractScope": null, - "id": 353, + "id": 1381, "name": "G1Point", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 6, - "src": "5708:7:0", + "referencedDeclaration": 1034, + "src": "5708:7:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_storage_ptr", + "typeIdentifier": "t_struct$_G1Point_$1034_storage_ptr", "typeString": "struct Pairing.G1Point" } }, - "id": 354, + "id": 1382, "length": null, "nodeType": "ArrayTypeName", - "src": "5708:9:0", + "src": "5708:9:4", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_G1Point_$6_storage_$dyn_storage_ptr", + "typeIdentifier": "t_array$_t_struct$_G1Point_$1034_storage_$dyn_storage_ptr", "typeString": "struct Pairing.G1Point[]" } }, @@ -4872,21 +4872,21 @@ "visibility": "internal" } ], - "id": 361, + "id": 1389, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "32", - "id": 359, + "id": 1387, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "5744:1:0", + "src": "5744:1:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_2_by_1", @@ -4902,41 +4902,41 @@ "typeString": "int_const 2" } ], - "id": 358, + "id": 1386, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "NewExpression", - "src": "5730:13:0", + "src": "5730:13:4", "typeDescriptions": { - "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_G1Point_$6_memory_$dyn_memory_$", + "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_G1Point_$1034_memory_$dyn_memory_$", "typeString": "function (uint256) pure returns (struct Pairing.G1Point memory[] memory)" }, "typeName": { "baseType": { "contractScope": null, - "id": 356, + "id": 1384, "name": "G1Point", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 6, - "src": "5734:7:0", + "referencedDeclaration": 1034, + "src": "5734:7:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_storage_ptr", + "typeIdentifier": "t_struct$_G1Point_$1034_storage_ptr", "typeString": "struct Pairing.G1Point" } }, - "id": 357, + "id": 1385, "length": null, "nodeType": "ArrayTypeName", - "src": "5734:9:0", + "src": "5734:9:4", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_G1Point_$6_storage_$dyn_storage_ptr", + "typeIdentifier": "t_array$_t_struct$_G1Point_$1034_storage_$dyn_storage_ptr", "typeString": "struct Pairing.G1Point[]" } } }, - "id": 360, + "id": 1388, "isConstant": false, "isLValue": false, "isPure": true, @@ -4944,52 +4944,52 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5730:16:0", + "src": "5730:16:4", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_G1Point_$6_memory_$dyn_memory", + "typeIdentifier": "t_array$_t_struct$_G1Point_$1034_memory_$dyn_memory", "typeString": "struct Pairing.G1Point memory[] memory" } }, "nodeType": "VariableDeclarationStatement", - "src": "5708:38:0" + "src": "5708:38:4" }, { "assignments": [ - 365 + 1393 ], "declarations": [ { "constant": false, - "id": 365, + "id": 1393, "name": "p2", "nodeType": "VariableDeclaration", - "scope": 401, - "src": "5756:19:0", + "scope": 1429, + "src": "5756:19:4", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_G2Point_$15_memory_$dyn_memory_ptr", + "typeIdentifier": "t_array$_t_struct$_G2Point_$1043_memory_$dyn_memory_ptr", "typeString": "struct Pairing.G2Point[]" }, "typeName": { "baseType": { "contractScope": null, - "id": 363, + "id": 1391, "name": "G2Point", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 15, - "src": "5756:7:0", + "referencedDeclaration": 1043, + "src": "5756:7:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G2Point_$15_storage_ptr", + "typeIdentifier": "t_struct$_G2Point_$1043_storage_ptr", "typeString": "struct Pairing.G2Point" } }, - "id": 364, + "id": 1392, "length": null, "nodeType": "ArrayTypeName", - "src": "5756:9:0", + "src": "5756:9:4", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_G2Point_$15_storage_$dyn_storage_ptr", + "typeIdentifier": "t_array$_t_struct$_G2Point_$1043_storage_$dyn_storage_ptr", "typeString": "struct Pairing.G2Point[]" } }, @@ -4997,21 +4997,21 @@ "visibility": "internal" } ], - "id": 371, + "id": 1399, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "32", - "id": 369, + "id": 1397, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "5792:1:0", + "src": "5792:1:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_2_by_1", @@ -5027,41 +5027,41 @@ "typeString": "int_const 2" } ], - "id": 368, + "id": 1396, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "NewExpression", - "src": "5778:13:0", + "src": "5778:13:4", "typeDescriptions": { - "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_G2Point_$15_memory_$dyn_memory_$", + "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_G2Point_$1043_memory_$dyn_memory_$", "typeString": "function (uint256) pure returns (struct Pairing.G2Point memory[] memory)" }, "typeName": { "baseType": { "contractScope": null, - "id": 366, + "id": 1394, "name": "G2Point", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 15, - "src": "5782:7:0", + "referencedDeclaration": 1043, + "src": "5782:7:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G2Point_$15_storage_ptr", + "typeIdentifier": "t_struct$_G2Point_$1043_storage_ptr", "typeString": "struct Pairing.G2Point" } }, - "id": 367, + "id": 1395, "length": null, "nodeType": "ArrayTypeName", - "src": "5782:9:0", + "src": "5782:9:4", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_G2Point_$15_storage_$dyn_storage_ptr", + "typeIdentifier": "t_array$_t_struct$_G2Point_$1043_storage_$dyn_storage_ptr", "typeString": "struct Pairing.G2Point[]" } } }, - "id": 370, + "id": 1398, "isConstant": false, "isLValue": false, "isPure": true, @@ -5069,19 +5069,19 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5778:16:0", + "src": "5778:16:4", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_G2Point_$15_memory_$dyn_memory", + "typeIdentifier": "t_array$_t_struct$_G2Point_$1043_memory_$dyn_memory", "typeString": "struct Pairing.G2Point memory[] memory" } }, "nodeType": "VariableDeclarationStatement", - "src": "5756:38:0" + "src": "5756:38:4" }, { "expression": { "argumentTypes": null, - "id": 376, + "id": 1404, "isConstant": false, "isLValue": false, "isPure": false, @@ -5090,29 +5090,29 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 372, + "id": 1400, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 355, - "src": "5804:2:0", + "referencedDeclaration": 1383, + "src": "5804:2:4", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_G1Point_$6_memory_$dyn_memory_ptr", + "typeIdentifier": "t_array$_t_struct$_G1Point_$1034_memory_$dyn_memory_ptr", "typeString": "struct Pairing.G1Point memory[] memory" } }, - "id": 374, + "id": 1402, "indexExpression": { "argumentTypes": null, "hexValue": "30", - "id": 373, + "id": 1401, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "5807:1:0", + "src": "5807:1:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -5125,9 +5125,9 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "5804:5:0", + "src": "5804:5:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_memory", + "typeIdentifier": "t_struct$_G1Point_$1034_memory", "typeString": "struct Pairing.G1Point memory" } }, @@ -5135,31 +5135,31 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 375, + "id": 1403, "name": "a1", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 341, - "src": "5812:2:0", + "referencedDeclaration": 1369, + "src": "5812:2:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_memory_ptr", + "typeIdentifier": "t_struct$_G1Point_$1034_memory_ptr", "typeString": "struct Pairing.G1Point memory" } }, - "src": "5804:10:0", + "src": "5804:10:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_memory", + "typeIdentifier": "t_struct$_G1Point_$1034_memory", "typeString": "struct Pairing.G1Point memory" } }, - "id": 377, + "id": 1405, "nodeType": "ExpressionStatement", - "src": "5804:10:0" + "src": "5804:10:4" }, { "expression": { "argumentTypes": null, - "id": 382, + "id": 1410, "isConstant": false, "isLValue": false, "isPure": false, @@ -5168,29 +5168,29 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 378, + "id": 1406, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 355, - "src": "5824:2:0", + "referencedDeclaration": 1383, + "src": "5824:2:4", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_G1Point_$6_memory_$dyn_memory_ptr", + "typeIdentifier": "t_array$_t_struct$_G1Point_$1034_memory_$dyn_memory_ptr", "typeString": "struct Pairing.G1Point memory[] memory" } }, - "id": 380, + "id": 1408, "indexExpression": { "argumentTypes": null, "hexValue": "31", - "id": 379, + "id": 1407, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "5827:1:0", + "src": "5827:1:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -5203,9 +5203,9 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "5824:5:0", + "src": "5824:5:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_memory", + "typeIdentifier": "t_struct$_G1Point_$1034_memory", "typeString": "struct Pairing.G1Point memory" } }, @@ -5213,31 +5213,31 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 381, + "id": 1409, "name": "b1", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 345, - "src": "5832:2:0", + "referencedDeclaration": 1373, + "src": "5832:2:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_memory_ptr", + "typeIdentifier": "t_struct$_G1Point_$1034_memory_ptr", "typeString": "struct Pairing.G1Point memory" } }, - "src": "5824:10:0", + "src": "5824:10:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_memory", + "typeIdentifier": "t_struct$_G1Point_$1034_memory", "typeString": "struct Pairing.G1Point memory" } }, - "id": 383, + "id": 1411, "nodeType": "ExpressionStatement", - "src": "5824:10:0" + "src": "5824:10:4" }, { "expression": { "argumentTypes": null, - "id": 388, + "id": 1416, "isConstant": false, "isLValue": false, "isPure": false, @@ -5246,29 +5246,29 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 384, + "id": 1412, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 365, - "src": "5844:2:0", + "referencedDeclaration": 1393, + "src": "5844:2:4", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_G2Point_$15_memory_$dyn_memory_ptr", + "typeIdentifier": "t_array$_t_struct$_G2Point_$1043_memory_$dyn_memory_ptr", "typeString": "struct Pairing.G2Point memory[] memory" } }, - "id": 386, + "id": 1414, "indexExpression": { "argumentTypes": null, "hexValue": "30", - "id": 385, + "id": 1413, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "5847:1:0", + "src": "5847:1:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -5281,9 +5281,9 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "5844:5:0", + "src": "5844:5:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G2Point_$15_memory", + "typeIdentifier": "t_struct$_G2Point_$1043_memory", "typeString": "struct Pairing.G2Point memory" } }, @@ -5291,31 +5291,31 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 387, + "id": 1415, "name": "a2", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 343, - "src": "5852:2:0", + "referencedDeclaration": 1371, + "src": "5852:2:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G2Point_$15_memory_ptr", + "typeIdentifier": "t_struct$_G2Point_$1043_memory_ptr", "typeString": "struct Pairing.G2Point memory" } }, - "src": "5844:10:0", + "src": "5844:10:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G2Point_$15_memory", + "typeIdentifier": "t_struct$_G2Point_$1043_memory", "typeString": "struct Pairing.G2Point memory" } }, - "id": 389, + "id": 1417, "nodeType": "ExpressionStatement", - "src": "5844:10:0" + "src": "5844:10:4" }, { "expression": { "argumentTypes": null, - "id": 394, + "id": 1422, "isConstant": false, "isLValue": false, "isPure": false, @@ -5324,29 +5324,29 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 390, + "id": 1418, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 365, - "src": "5864:2:0", + "referencedDeclaration": 1393, + "src": "5864:2:4", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_G2Point_$15_memory_$dyn_memory_ptr", + "typeIdentifier": "t_array$_t_struct$_G2Point_$1043_memory_$dyn_memory_ptr", "typeString": "struct Pairing.G2Point memory[] memory" } }, - "id": 392, + "id": 1420, "indexExpression": { "argumentTypes": null, "hexValue": "31", - "id": 391, + "id": 1419, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "5867:1:0", + "src": "5867:1:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -5359,9 +5359,9 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "5864:5:0", + "src": "5864:5:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G2Point_$15_memory", + "typeIdentifier": "t_struct$_G2Point_$1043_memory", "typeString": "struct Pairing.G2Point memory" } }, @@ -5369,26 +5369,26 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 393, + "id": 1421, "name": "b2", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 347, - "src": "5872:2:0", + "referencedDeclaration": 1375, + "src": "5872:2:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G2Point_$15_memory_ptr", + "typeIdentifier": "t_struct$_G2Point_$1043_memory_ptr", "typeString": "struct Pairing.G2Point memory" } }, - "src": "5864:10:0", + "src": "5864:10:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G2Point_$15_memory", + "typeIdentifier": "t_struct$_G2Point_$1043_memory", "typeString": "struct Pairing.G2Point memory" } }, - "id": 395, + "id": 1423, "nodeType": "ExpressionStatement", - "src": "5864:10:0" + "src": "5864:10:4" }, { "expression": { @@ -5396,27 +5396,27 @@ "arguments": [ { "argumentTypes": null, - "id": 397, + "id": 1425, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 355, - "src": "5899:2:0", + "referencedDeclaration": 1383, + "src": "5899:2:4", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_G1Point_$6_memory_$dyn_memory_ptr", + "typeIdentifier": "t_array$_t_struct$_G1Point_$1034_memory_$dyn_memory_ptr", "typeString": "struct Pairing.G1Point memory[] memory" } }, { "argumentTypes": null, - "id": 398, + "id": 1426, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 365, - "src": "5903:2:0", + "referencedDeclaration": 1393, + "src": "5903:2:4", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_G2Point_$15_memory_$dyn_memory_ptr", + "typeIdentifier": "t_array$_t_struct$_G2Point_$1043_memory_$dyn_memory_ptr", "typeString": "struct Pairing.G2Point memory[] memory" } } @@ -5424,26 +5424,26 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_array$_t_struct$_G1Point_$6_memory_$dyn_memory_ptr", + "typeIdentifier": "t_array$_t_struct$_G1Point_$1034_memory_$dyn_memory_ptr", "typeString": "struct Pairing.G1Point memory[] memory" }, { - "typeIdentifier": "t_array$_t_struct$_G2Point_$15_memory_$dyn_memory_ptr", + "typeIdentifier": "t_array$_t_struct$_G2Point_$1043_memory_$dyn_memory_ptr", "typeString": "struct Pairing.G2Point memory[] memory" } ], - "id": 396, + "id": 1424, "name": "pairing", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 339, - "src": "5891:7:0", + "referencedDeclaration": 1367, + "src": "5891:7:4", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_array$_t_struct$_G1Point_$6_memory_$dyn_memory_ptr_$_t_array$_t_struct$_G2Point_$15_memory_$dyn_memory_ptr_$returns$_t_bool_$", + "typeIdentifier": "t_function_internal_view$_t_array$_t_struct$_G1Point_$1034_memory_$dyn_memory_ptr_$_t_array$_t_struct$_G2Point_$1043_memory_$dyn_memory_ptr_$returns$_t_bool_$", "typeString": "function (struct Pairing.G1Point memory[] memory,struct Pairing.G2Point memory[] memory) view returns (bool)" } }, - "id": 399, + "id": 1427, "isConstant": false, "isLValue": false, "isPure": false, @@ -5451,52 +5451,52 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5891:15:0", + "src": "5891:15:4", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "functionReturnParameters": 351, - "id": 400, + "functionReturnParameters": 1379, + "id": 1428, "nodeType": "Return", - "src": "5884:22:0" + "src": "5884:22:4" } ] }, "documentation": "Convenience method for a pairing check for two pairs.", - "id": 402, + "id": 1430, "implemented": true, "kind": "function", "modifiers": [], "name": "pairingProd2", "nodeType": "FunctionDefinition", "parameters": { - "id": 348, + "id": 1376, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 341, + "id": 1369, "name": "a1", "nodeType": "VariableDeclaration", - "scope": 402, - "src": "5593:17:0", + "scope": 1430, + "src": "5593:17:4", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_memory_ptr", + "typeIdentifier": "t_struct$_G1Point_$1034_memory_ptr", "typeString": "struct Pairing.G1Point" }, "typeName": { "contractScope": null, - "id": 340, + "id": 1368, "name": "G1Point", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 6, - "src": "5593:7:0", + "referencedDeclaration": 1034, + "src": "5593:7:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_storage_ptr", + "typeIdentifier": "t_struct$_G1Point_$1034_storage_ptr", "typeString": "struct Pairing.G1Point" } }, @@ -5505,26 +5505,26 @@ }, { "constant": false, - "id": 343, + "id": 1371, "name": "a2", "nodeType": "VariableDeclaration", - "scope": 402, - "src": "5612:17:0", + "scope": 1430, + "src": "5612:17:4", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_struct$_G2Point_$15_memory_ptr", + "typeIdentifier": "t_struct$_G2Point_$1043_memory_ptr", "typeString": "struct Pairing.G2Point" }, "typeName": { "contractScope": null, - "id": 342, + "id": 1370, "name": "G2Point", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 15, - "src": "5612:7:0", + "referencedDeclaration": 1043, + "src": "5612:7:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G2Point_$15_storage_ptr", + "typeIdentifier": "t_struct$_G2Point_$1043_storage_ptr", "typeString": "struct Pairing.G2Point" } }, @@ -5533,26 +5533,26 @@ }, { "constant": false, - "id": 345, + "id": 1373, "name": "b1", "nodeType": "VariableDeclaration", - "scope": 402, - "src": "5631:17:0", + "scope": 1430, + "src": "5631:17:4", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_memory_ptr", + "typeIdentifier": "t_struct$_G1Point_$1034_memory_ptr", "typeString": "struct Pairing.G1Point" }, "typeName": { "contractScope": null, - "id": 344, + "id": 1372, "name": "G1Point", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 6, - "src": "5631:7:0", + "referencedDeclaration": 1034, + "src": "5631:7:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_storage_ptr", + "typeIdentifier": "t_struct$_G1Point_$1034_storage_ptr", "typeString": "struct Pairing.G1Point" } }, @@ -5561,26 +5561,26 @@ }, { "constant": false, - "id": 347, + "id": 1375, "name": "b2", "nodeType": "VariableDeclaration", - "scope": 402, - "src": "5650:17:0", + "scope": 1430, + "src": "5650:17:4", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_struct$_G2Point_$15_memory_ptr", + "typeIdentifier": "t_struct$_G2Point_$1043_memory_ptr", "typeString": "struct Pairing.G2Point" }, "typeName": { "contractScope": null, - "id": 346, + "id": 1374, "name": "G2Point", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 15, - "src": "5650:7:0", + "referencedDeclaration": 1043, + "src": "5650:7:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G2Point_$15_storage_ptr", + "typeIdentifier": "t_struct$_G2Point_$1043_storage_ptr", "typeString": "struct Pairing.G2Point" } }, @@ -5588,19 +5588,19 @@ "visibility": "internal" } ], - "src": "5592:76:0" + "src": "5592:76:4" }, "returnParameters": { - "id": 351, + "id": 1379, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 350, + "id": 1378, "name": "", "nodeType": "VariableDeclaration", - "scope": 402, - "src": "5692:4:0", + "scope": 1430, + "src": "5692:4:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5608,10 +5608,10 @@ "typeString": "bool" }, "typeName": { - "id": 349, + "id": 1377, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "5692:4:0", + "src": "5692:4:4", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -5621,57 +5621,57 @@ "visibility": "internal" } ], - "src": "5691:6:0" + "src": "5691:6:4" }, - "scope": 577, - "src": "5571:342:0", + "scope": 1605, + "src": "5571:342:4", "stateMutability": "view", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 480, + "id": 1508, "nodeType": "Block", - "src": "6189:255:0", + "src": "6189:255:4", "statements": [ { "assignments": [ - 422 + 1450 ], "declarations": [ { "constant": false, - "id": 422, + "id": 1450, "name": "p1", "nodeType": "VariableDeclaration", - "scope": 480, - "src": "6199:19:0", + "scope": 1508, + "src": "6199:19:4", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_G1Point_$6_memory_$dyn_memory_ptr", + "typeIdentifier": "t_array$_t_struct$_G1Point_$1034_memory_$dyn_memory_ptr", "typeString": "struct Pairing.G1Point[]" }, "typeName": { "baseType": { "contractScope": null, - "id": 420, + "id": 1448, "name": "G1Point", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 6, - "src": "6199:7:0", + "referencedDeclaration": 1034, + "src": "6199:7:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_storage_ptr", + "typeIdentifier": "t_struct$_G1Point_$1034_storage_ptr", "typeString": "struct Pairing.G1Point" } }, - "id": 421, + "id": 1449, "length": null, "nodeType": "ArrayTypeName", - "src": "6199:9:0", + "src": "6199:9:4", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_G1Point_$6_storage_$dyn_storage_ptr", + "typeIdentifier": "t_array$_t_struct$_G1Point_$1034_storage_$dyn_storage_ptr", "typeString": "struct Pairing.G1Point[]" } }, @@ -5679,21 +5679,21 @@ "visibility": "internal" } ], - "id": 428, + "id": 1456, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "33", - "id": 426, + "id": 1454, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "6235:1:0", + "src": "6235:1:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_3_by_1", @@ -5709,41 +5709,41 @@ "typeString": "int_const 3" } ], - "id": 425, + "id": 1453, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "NewExpression", - "src": "6221:13:0", + "src": "6221:13:4", "typeDescriptions": { - "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_G1Point_$6_memory_$dyn_memory_$", + "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_G1Point_$1034_memory_$dyn_memory_$", "typeString": "function (uint256) pure returns (struct Pairing.G1Point memory[] memory)" }, "typeName": { "baseType": { "contractScope": null, - "id": 423, + "id": 1451, "name": "G1Point", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 6, - "src": "6225:7:0", + "referencedDeclaration": 1034, + "src": "6225:7:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_storage_ptr", + "typeIdentifier": "t_struct$_G1Point_$1034_storage_ptr", "typeString": "struct Pairing.G1Point" } }, - "id": 424, + "id": 1452, "length": null, "nodeType": "ArrayTypeName", - "src": "6225:9:0", + "src": "6225:9:4", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_G1Point_$6_storage_$dyn_storage_ptr", + "typeIdentifier": "t_array$_t_struct$_G1Point_$1034_storage_$dyn_storage_ptr", "typeString": "struct Pairing.G1Point[]" } } }, - "id": 427, + "id": 1455, "isConstant": false, "isLValue": false, "isPure": true, @@ -5751,52 +5751,52 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6221:16:0", + "src": "6221:16:4", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_G1Point_$6_memory_$dyn_memory", + "typeIdentifier": "t_array$_t_struct$_G1Point_$1034_memory_$dyn_memory", "typeString": "struct Pairing.G1Point memory[] memory" } }, "nodeType": "VariableDeclarationStatement", - "src": "6199:38:0" + "src": "6199:38:4" }, { "assignments": [ - 432 + 1460 ], "declarations": [ { "constant": false, - "id": 432, + "id": 1460, "name": "p2", "nodeType": "VariableDeclaration", - "scope": 480, - "src": "6247:19:0", + "scope": 1508, + "src": "6247:19:4", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_G2Point_$15_memory_$dyn_memory_ptr", + "typeIdentifier": "t_array$_t_struct$_G2Point_$1043_memory_$dyn_memory_ptr", "typeString": "struct Pairing.G2Point[]" }, "typeName": { "baseType": { "contractScope": null, - "id": 430, + "id": 1458, "name": "G2Point", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 15, - "src": "6247:7:0", + "referencedDeclaration": 1043, + "src": "6247:7:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G2Point_$15_storage_ptr", + "typeIdentifier": "t_struct$_G2Point_$1043_storage_ptr", "typeString": "struct Pairing.G2Point" } }, - "id": 431, + "id": 1459, "length": null, "nodeType": "ArrayTypeName", - "src": "6247:9:0", + "src": "6247:9:4", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_G2Point_$15_storage_$dyn_storage_ptr", + "typeIdentifier": "t_array$_t_struct$_G2Point_$1043_storage_$dyn_storage_ptr", "typeString": "struct Pairing.G2Point[]" } }, @@ -5804,21 +5804,21 @@ "visibility": "internal" } ], - "id": 438, + "id": 1466, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "33", - "id": 436, + "id": 1464, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "6283:1:0", + "src": "6283:1:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_3_by_1", @@ -5834,41 +5834,41 @@ "typeString": "int_const 3" } ], - "id": 435, + "id": 1463, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "NewExpression", - "src": "6269:13:0", + "src": "6269:13:4", "typeDescriptions": { - "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_G2Point_$15_memory_$dyn_memory_$", + "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_G2Point_$1043_memory_$dyn_memory_$", "typeString": "function (uint256) pure returns (struct Pairing.G2Point memory[] memory)" }, "typeName": { "baseType": { "contractScope": null, - "id": 433, + "id": 1461, "name": "G2Point", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 15, - "src": "6273:7:0", + "referencedDeclaration": 1043, + "src": "6273:7:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G2Point_$15_storage_ptr", + "typeIdentifier": "t_struct$_G2Point_$1043_storage_ptr", "typeString": "struct Pairing.G2Point" } }, - "id": 434, + "id": 1462, "length": null, "nodeType": "ArrayTypeName", - "src": "6273:9:0", + "src": "6273:9:4", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_G2Point_$15_storage_$dyn_storage_ptr", + "typeIdentifier": "t_array$_t_struct$_G2Point_$1043_storage_$dyn_storage_ptr", "typeString": "struct Pairing.G2Point[]" } } }, - "id": 437, + "id": 1465, "isConstant": false, "isLValue": false, "isPure": true, @@ -5876,19 +5876,19 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6269:16:0", + "src": "6269:16:4", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_G2Point_$15_memory_$dyn_memory", + "typeIdentifier": "t_array$_t_struct$_G2Point_$1043_memory_$dyn_memory", "typeString": "struct Pairing.G2Point memory[] memory" } }, "nodeType": "VariableDeclarationStatement", - "src": "6247:38:0" + "src": "6247:38:4" }, { "expression": { "argumentTypes": null, - "id": 443, + "id": 1471, "isConstant": false, "isLValue": false, "isPure": false, @@ -5897,29 +5897,29 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 439, + "id": 1467, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 422, - "src": "6295:2:0", + "referencedDeclaration": 1450, + "src": "6295:2:4", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_G1Point_$6_memory_$dyn_memory_ptr", + "typeIdentifier": "t_array$_t_struct$_G1Point_$1034_memory_$dyn_memory_ptr", "typeString": "struct Pairing.G1Point memory[] memory" } }, - "id": 441, + "id": 1469, "indexExpression": { "argumentTypes": null, "hexValue": "30", - "id": 440, + "id": 1468, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "6298:1:0", + "src": "6298:1:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -5932,9 +5932,9 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "6295:5:0", + "src": "6295:5:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_memory", + "typeIdentifier": "t_struct$_G1Point_$1034_memory", "typeString": "struct Pairing.G1Point memory" } }, @@ -5942,31 +5942,31 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 442, + "id": 1470, "name": "a1", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 404, - "src": "6303:2:0", + "referencedDeclaration": 1432, + "src": "6303:2:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_memory_ptr", + "typeIdentifier": "t_struct$_G1Point_$1034_memory_ptr", "typeString": "struct Pairing.G1Point memory" } }, - "src": "6295:10:0", + "src": "6295:10:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_memory", + "typeIdentifier": "t_struct$_G1Point_$1034_memory", "typeString": "struct Pairing.G1Point memory" } }, - "id": 444, + "id": 1472, "nodeType": "ExpressionStatement", - "src": "6295:10:0" + "src": "6295:10:4" }, { "expression": { "argumentTypes": null, - "id": 449, + "id": 1477, "isConstant": false, "isLValue": false, "isPure": false, @@ -5975,29 +5975,29 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 445, + "id": 1473, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 422, - "src": "6315:2:0", + "referencedDeclaration": 1450, + "src": "6315:2:4", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_G1Point_$6_memory_$dyn_memory_ptr", + "typeIdentifier": "t_array$_t_struct$_G1Point_$1034_memory_$dyn_memory_ptr", "typeString": "struct Pairing.G1Point memory[] memory" } }, - "id": 447, + "id": 1475, "indexExpression": { "argumentTypes": null, "hexValue": "31", - "id": 446, + "id": 1474, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "6318:1:0", + "src": "6318:1:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -6010,9 +6010,9 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "6315:5:0", + "src": "6315:5:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_memory", + "typeIdentifier": "t_struct$_G1Point_$1034_memory", "typeString": "struct Pairing.G1Point memory" } }, @@ -6020,31 +6020,31 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 448, + "id": 1476, "name": "b1", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 408, - "src": "6323:2:0", + "referencedDeclaration": 1436, + "src": "6323:2:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_memory_ptr", + "typeIdentifier": "t_struct$_G1Point_$1034_memory_ptr", "typeString": "struct Pairing.G1Point memory" } }, - "src": "6315:10:0", + "src": "6315:10:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_memory", + "typeIdentifier": "t_struct$_G1Point_$1034_memory", "typeString": "struct Pairing.G1Point memory" } }, - "id": 450, + "id": 1478, "nodeType": "ExpressionStatement", - "src": "6315:10:0" + "src": "6315:10:4" }, { "expression": { "argumentTypes": null, - "id": 455, + "id": 1483, "isConstant": false, "isLValue": false, "isPure": false, @@ -6053,29 +6053,29 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 451, + "id": 1479, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 422, - "src": "6335:2:0", + "referencedDeclaration": 1450, + "src": "6335:2:4", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_G1Point_$6_memory_$dyn_memory_ptr", + "typeIdentifier": "t_array$_t_struct$_G1Point_$1034_memory_$dyn_memory_ptr", "typeString": "struct Pairing.G1Point memory[] memory" } }, - "id": 453, + "id": 1481, "indexExpression": { "argumentTypes": null, "hexValue": "32", - "id": 452, + "id": 1480, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "6338:1:0", + "src": "6338:1:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_2_by_1", @@ -6088,9 +6088,9 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "6335:5:0", + "src": "6335:5:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_memory", + "typeIdentifier": "t_struct$_G1Point_$1034_memory", "typeString": "struct Pairing.G1Point memory" } }, @@ -6098,31 +6098,31 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 454, + "id": 1482, "name": "c1", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 412, - "src": "6343:2:0", + "referencedDeclaration": 1440, + "src": "6343:2:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_memory_ptr", + "typeIdentifier": "t_struct$_G1Point_$1034_memory_ptr", "typeString": "struct Pairing.G1Point memory" } }, - "src": "6335:10:0", + "src": "6335:10:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_memory", + "typeIdentifier": "t_struct$_G1Point_$1034_memory", "typeString": "struct Pairing.G1Point memory" } }, - "id": 456, + "id": 1484, "nodeType": "ExpressionStatement", - "src": "6335:10:0" + "src": "6335:10:4" }, { "expression": { "argumentTypes": null, - "id": 461, + "id": 1489, "isConstant": false, "isLValue": false, "isPure": false, @@ -6131,29 +6131,29 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 457, + "id": 1485, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 432, - "src": "6355:2:0", + "referencedDeclaration": 1460, + "src": "6355:2:4", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_G2Point_$15_memory_$dyn_memory_ptr", + "typeIdentifier": "t_array$_t_struct$_G2Point_$1043_memory_$dyn_memory_ptr", "typeString": "struct Pairing.G2Point memory[] memory" } }, - "id": 459, + "id": 1487, "indexExpression": { "argumentTypes": null, "hexValue": "30", - "id": 458, + "id": 1486, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "6358:1:0", + "src": "6358:1:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -6166,9 +6166,9 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "6355:5:0", + "src": "6355:5:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G2Point_$15_memory", + "typeIdentifier": "t_struct$_G2Point_$1043_memory", "typeString": "struct Pairing.G2Point memory" } }, @@ -6176,31 +6176,31 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 460, + "id": 1488, "name": "a2", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 406, - "src": "6363:2:0", + "referencedDeclaration": 1434, + "src": "6363:2:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G2Point_$15_memory_ptr", + "typeIdentifier": "t_struct$_G2Point_$1043_memory_ptr", "typeString": "struct Pairing.G2Point memory" } }, - "src": "6355:10:0", + "src": "6355:10:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G2Point_$15_memory", + "typeIdentifier": "t_struct$_G2Point_$1043_memory", "typeString": "struct Pairing.G2Point memory" } }, - "id": 462, + "id": 1490, "nodeType": "ExpressionStatement", - "src": "6355:10:0" + "src": "6355:10:4" }, { "expression": { "argumentTypes": null, - "id": 467, + "id": 1495, "isConstant": false, "isLValue": false, "isPure": false, @@ -6209,29 +6209,29 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 463, + "id": 1491, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 432, - "src": "6375:2:0", + "referencedDeclaration": 1460, + "src": "6375:2:4", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_G2Point_$15_memory_$dyn_memory_ptr", + "typeIdentifier": "t_array$_t_struct$_G2Point_$1043_memory_$dyn_memory_ptr", "typeString": "struct Pairing.G2Point memory[] memory" } }, - "id": 465, + "id": 1493, "indexExpression": { "argumentTypes": null, "hexValue": "31", - "id": 464, + "id": 1492, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "6378:1:0", + "src": "6378:1:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -6244,9 +6244,9 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "6375:5:0", + "src": "6375:5:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G2Point_$15_memory", + "typeIdentifier": "t_struct$_G2Point_$1043_memory", "typeString": "struct Pairing.G2Point memory" } }, @@ -6254,31 +6254,31 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 466, + "id": 1494, "name": "b2", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 410, - "src": "6383:2:0", + "referencedDeclaration": 1438, + "src": "6383:2:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G2Point_$15_memory_ptr", + "typeIdentifier": "t_struct$_G2Point_$1043_memory_ptr", "typeString": "struct Pairing.G2Point memory" } }, - "src": "6375:10:0", + "src": "6375:10:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G2Point_$15_memory", + "typeIdentifier": "t_struct$_G2Point_$1043_memory", "typeString": "struct Pairing.G2Point memory" } }, - "id": 468, + "id": 1496, "nodeType": "ExpressionStatement", - "src": "6375:10:0" + "src": "6375:10:4" }, { "expression": { "argumentTypes": null, - "id": 473, + "id": 1501, "isConstant": false, "isLValue": false, "isPure": false, @@ -6287,29 +6287,29 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 469, + "id": 1497, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 432, - "src": "6395:2:0", + "referencedDeclaration": 1460, + "src": "6395:2:4", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_G2Point_$15_memory_$dyn_memory_ptr", + "typeIdentifier": "t_array$_t_struct$_G2Point_$1043_memory_$dyn_memory_ptr", "typeString": "struct Pairing.G2Point memory[] memory" } }, - "id": 471, + "id": 1499, "indexExpression": { "argumentTypes": null, "hexValue": "32", - "id": 470, + "id": 1498, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "6398:1:0", + "src": "6398:1:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_2_by_1", @@ -6322,9 +6322,9 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "6395:5:0", + "src": "6395:5:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G2Point_$15_memory", + "typeIdentifier": "t_struct$_G2Point_$1043_memory", "typeString": "struct Pairing.G2Point memory" } }, @@ -6332,26 +6332,26 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 472, + "id": 1500, "name": "c2", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 414, - "src": "6403:2:0", + "referencedDeclaration": 1442, + "src": "6403:2:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G2Point_$15_memory_ptr", + "typeIdentifier": "t_struct$_G2Point_$1043_memory_ptr", "typeString": "struct Pairing.G2Point memory" } }, - "src": "6395:10:0", + "src": "6395:10:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G2Point_$15_memory", + "typeIdentifier": "t_struct$_G2Point_$1043_memory", "typeString": "struct Pairing.G2Point memory" } }, - "id": 474, + "id": 1502, "nodeType": "ExpressionStatement", - "src": "6395:10:0" + "src": "6395:10:4" }, { "expression": { @@ -6359,27 +6359,27 @@ "arguments": [ { "argumentTypes": null, - "id": 476, + "id": 1504, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 422, - "src": "6430:2:0", + "referencedDeclaration": 1450, + "src": "6430:2:4", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_G1Point_$6_memory_$dyn_memory_ptr", + "typeIdentifier": "t_array$_t_struct$_G1Point_$1034_memory_$dyn_memory_ptr", "typeString": "struct Pairing.G1Point memory[] memory" } }, { "argumentTypes": null, - "id": 477, + "id": 1505, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 432, - "src": "6434:2:0", + "referencedDeclaration": 1460, + "src": "6434:2:4", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_G2Point_$15_memory_$dyn_memory_ptr", + "typeIdentifier": "t_array$_t_struct$_G2Point_$1043_memory_$dyn_memory_ptr", "typeString": "struct Pairing.G2Point memory[] memory" } } @@ -6387,26 +6387,26 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_array$_t_struct$_G1Point_$6_memory_$dyn_memory_ptr", + "typeIdentifier": "t_array$_t_struct$_G1Point_$1034_memory_$dyn_memory_ptr", "typeString": "struct Pairing.G1Point memory[] memory" }, { - "typeIdentifier": "t_array$_t_struct$_G2Point_$15_memory_$dyn_memory_ptr", + "typeIdentifier": "t_array$_t_struct$_G2Point_$1043_memory_$dyn_memory_ptr", "typeString": "struct Pairing.G2Point memory[] memory" } ], - "id": 475, + "id": 1503, "name": "pairing", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 339, - "src": "6422:7:0", + "referencedDeclaration": 1367, + "src": "6422:7:4", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_array$_t_struct$_G1Point_$6_memory_$dyn_memory_ptr_$_t_array$_t_struct$_G2Point_$15_memory_$dyn_memory_ptr_$returns$_t_bool_$", + "typeIdentifier": "t_function_internal_view$_t_array$_t_struct$_G1Point_$1034_memory_$dyn_memory_ptr_$_t_array$_t_struct$_G2Point_$1043_memory_$dyn_memory_ptr_$returns$_t_bool_$", "typeString": "function (struct Pairing.G1Point memory[] memory,struct Pairing.G2Point memory[] memory) view returns (bool)" } }, - "id": 478, + "id": 1506, "isConstant": false, "isLValue": false, "isPure": false, @@ -6414,52 +6414,52 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6422:15:0", + "src": "6422:15:4", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "functionReturnParameters": 418, - "id": 479, + "functionReturnParameters": 1446, + "id": 1507, "nodeType": "Return", - "src": "6415:22:0" + "src": "6415:22:4" } ] }, "documentation": "Convenience method for a pairing check for three pairs.", - "id": 481, + "id": 1509, "implemented": true, "kind": "function", "modifiers": [], "name": "pairingProd3", "nodeType": "FunctionDefinition", "parameters": { - "id": 415, + "id": 1443, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 404, + "id": 1432, "name": "a1", "nodeType": "VariableDeclaration", - "scope": 481, - "src": "6017:17:0", + "scope": 1509, + "src": "6017:17:4", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_memory_ptr", + "typeIdentifier": "t_struct$_G1Point_$1034_memory_ptr", "typeString": "struct Pairing.G1Point" }, "typeName": { "contractScope": null, - "id": 403, + "id": 1431, "name": "G1Point", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 6, - "src": "6017:7:0", + "referencedDeclaration": 1034, + "src": "6017:7:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_storage_ptr", + "typeIdentifier": "t_struct$_G1Point_$1034_storage_ptr", "typeString": "struct Pairing.G1Point" } }, @@ -6468,26 +6468,26 @@ }, { "constant": false, - "id": 406, + "id": 1434, "name": "a2", "nodeType": "VariableDeclaration", - "scope": 481, - "src": "6036:17:0", + "scope": 1509, + "src": "6036:17:4", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_struct$_G2Point_$15_memory_ptr", + "typeIdentifier": "t_struct$_G2Point_$1043_memory_ptr", "typeString": "struct Pairing.G2Point" }, "typeName": { "contractScope": null, - "id": 405, + "id": 1433, "name": "G2Point", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 15, - "src": "6036:7:0", + "referencedDeclaration": 1043, + "src": "6036:7:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G2Point_$15_storage_ptr", + "typeIdentifier": "t_struct$_G2Point_$1043_storage_ptr", "typeString": "struct Pairing.G2Point" } }, @@ -6496,26 +6496,26 @@ }, { "constant": false, - "id": 408, + "id": 1436, "name": "b1", "nodeType": "VariableDeclaration", - "scope": 481, - "src": "6067:17:0", + "scope": 1509, + "src": "6067:17:4", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_memory_ptr", + "typeIdentifier": "t_struct$_G1Point_$1034_memory_ptr", "typeString": "struct Pairing.G1Point" }, "typeName": { "contractScope": null, - "id": 407, + "id": 1435, "name": "G1Point", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 6, - "src": "6067:7:0", + "referencedDeclaration": 1034, + "src": "6067:7:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_storage_ptr", + "typeIdentifier": "t_struct$_G1Point_$1034_storage_ptr", "typeString": "struct Pairing.G1Point" } }, @@ -6524,26 +6524,26 @@ }, { "constant": false, - "id": 410, + "id": 1438, "name": "b2", "nodeType": "VariableDeclaration", - "scope": 481, - "src": "6086:17:0", + "scope": 1509, + "src": "6086:17:4", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_struct$_G2Point_$15_memory_ptr", + "typeIdentifier": "t_struct$_G2Point_$1043_memory_ptr", "typeString": "struct Pairing.G2Point" }, "typeName": { "contractScope": null, - "id": 409, + "id": 1437, "name": "G2Point", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 15, - "src": "6086:7:0", + "referencedDeclaration": 1043, + "src": "6086:7:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G2Point_$15_storage_ptr", + "typeIdentifier": "t_struct$_G2Point_$1043_storage_ptr", "typeString": "struct Pairing.G2Point" } }, @@ -6552,26 +6552,26 @@ }, { "constant": false, - "id": 412, + "id": 1440, "name": "c1", "nodeType": "VariableDeclaration", - "scope": 481, - "src": "6117:17:0", + "scope": 1509, + "src": "6117:17:4", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_memory_ptr", + "typeIdentifier": "t_struct$_G1Point_$1034_memory_ptr", "typeString": "struct Pairing.G1Point" }, "typeName": { "contractScope": null, - "id": 411, + "id": 1439, "name": "G1Point", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 6, - "src": "6117:7:0", + "referencedDeclaration": 1034, + "src": "6117:7:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_storage_ptr", + "typeIdentifier": "t_struct$_G1Point_$1034_storage_ptr", "typeString": "struct Pairing.G1Point" } }, @@ -6580,26 +6580,26 @@ }, { "constant": false, - "id": 414, + "id": 1442, "name": "c2", "nodeType": "VariableDeclaration", - "scope": 481, - "src": "6136:17:0", + "scope": 1509, + "src": "6136:17:4", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_struct$_G2Point_$15_memory_ptr", + "typeIdentifier": "t_struct$_G2Point_$1043_memory_ptr", "typeString": "struct Pairing.G2Point" }, "typeName": { "contractScope": null, - "id": 413, + "id": 1441, "name": "G2Point", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 15, - "src": "6136:7:0", + "referencedDeclaration": 1043, + "src": "6136:7:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G2Point_$15_storage_ptr", + "typeIdentifier": "t_struct$_G2Point_$1043_storage_ptr", "typeString": "struct Pairing.G2Point" } }, @@ -6607,19 +6607,19 @@ "visibility": "internal" } ], - "src": "6003:156:0" + "src": "6003:156:4" }, "returnParameters": { - "id": 418, + "id": 1446, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 417, + "id": 1445, "name": "", "nodeType": "VariableDeclaration", - "scope": 481, - "src": "6183:4:0", + "scope": 1509, + "src": "6183:4:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6627,10 +6627,10 @@ "typeString": "bool" }, "typeName": { - "id": 416, + "id": 1444, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "6183:4:0", + "src": "6183:4:4", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -6640,57 +6640,57 @@ "visibility": "internal" } ], - "src": "6182:6:0" + "src": "6182:6:4" }, - "scope": 577, - "src": "5982:462:0", + "scope": 1605, + "src": "5982:462:4", "stateMutability": "view", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 575, + "id": 1603, "nodeType": "Block", - "src": "6769:295:0", + "src": "6769:295:4", "statements": [ { "assignments": [ - 505 + 1533 ], "declarations": [ { "constant": false, - "id": 505, + "id": 1533, "name": "p1", "nodeType": "VariableDeclaration", - "scope": 575, - "src": "6779:19:0", + "scope": 1603, + "src": "6779:19:4", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_G1Point_$6_memory_$dyn_memory_ptr", + "typeIdentifier": "t_array$_t_struct$_G1Point_$1034_memory_$dyn_memory_ptr", "typeString": "struct Pairing.G1Point[]" }, "typeName": { "baseType": { "contractScope": null, - "id": 503, + "id": 1531, "name": "G1Point", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 6, - "src": "6779:7:0", + "referencedDeclaration": 1034, + "src": "6779:7:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_storage_ptr", + "typeIdentifier": "t_struct$_G1Point_$1034_storage_ptr", "typeString": "struct Pairing.G1Point" } }, - "id": 504, + "id": 1532, "length": null, "nodeType": "ArrayTypeName", - "src": "6779:9:0", + "src": "6779:9:4", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_G1Point_$6_storage_$dyn_storage_ptr", + "typeIdentifier": "t_array$_t_struct$_G1Point_$1034_storage_$dyn_storage_ptr", "typeString": "struct Pairing.G1Point[]" } }, @@ -6698,21 +6698,21 @@ "visibility": "internal" } ], - "id": 511, + "id": 1539, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "34", - "id": 509, + "id": 1537, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "6815:1:0", + "src": "6815:1:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_4_by_1", @@ -6728,41 +6728,41 @@ "typeString": "int_const 4" } ], - "id": 508, + "id": 1536, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "NewExpression", - "src": "6801:13:0", + "src": "6801:13:4", "typeDescriptions": { - "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_G1Point_$6_memory_$dyn_memory_$", + "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_G1Point_$1034_memory_$dyn_memory_$", "typeString": "function (uint256) pure returns (struct Pairing.G1Point memory[] memory)" }, "typeName": { "baseType": { "contractScope": null, - "id": 506, + "id": 1534, "name": "G1Point", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 6, - "src": "6805:7:0", + "referencedDeclaration": 1034, + "src": "6805:7:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_storage_ptr", + "typeIdentifier": "t_struct$_G1Point_$1034_storage_ptr", "typeString": "struct Pairing.G1Point" } }, - "id": 507, + "id": 1535, "length": null, "nodeType": "ArrayTypeName", - "src": "6805:9:0", + "src": "6805:9:4", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_G1Point_$6_storage_$dyn_storage_ptr", + "typeIdentifier": "t_array$_t_struct$_G1Point_$1034_storage_$dyn_storage_ptr", "typeString": "struct Pairing.G1Point[]" } } }, - "id": 510, + "id": 1538, "isConstant": false, "isLValue": false, "isPure": true, @@ -6770,52 +6770,52 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6801:16:0", + "src": "6801:16:4", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_G1Point_$6_memory_$dyn_memory", + "typeIdentifier": "t_array$_t_struct$_G1Point_$1034_memory_$dyn_memory", "typeString": "struct Pairing.G1Point memory[] memory" } }, "nodeType": "VariableDeclarationStatement", - "src": "6779:38:0" + "src": "6779:38:4" }, { "assignments": [ - 515 + 1543 ], "declarations": [ { "constant": false, - "id": 515, + "id": 1543, "name": "p2", "nodeType": "VariableDeclaration", - "scope": 575, - "src": "6827:19:0", + "scope": 1603, + "src": "6827:19:4", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_G2Point_$15_memory_$dyn_memory_ptr", + "typeIdentifier": "t_array$_t_struct$_G2Point_$1043_memory_$dyn_memory_ptr", "typeString": "struct Pairing.G2Point[]" }, "typeName": { "baseType": { "contractScope": null, - "id": 513, + "id": 1541, "name": "G2Point", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 15, - "src": "6827:7:0", + "referencedDeclaration": 1043, + "src": "6827:7:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G2Point_$15_storage_ptr", + "typeIdentifier": "t_struct$_G2Point_$1043_storage_ptr", "typeString": "struct Pairing.G2Point" } }, - "id": 514, + "id": 1542, "length": null, "nodeType": "ArrayTypeName", - "src": "6827:9:0", + "src": "6827:9:4", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_G2Point_$15_storage_$dyn_storage_ptr", + "typeIdentifier": "t_array$_t_struct$_G2Point_$1043_storage_$dyn_storage_ptr", "typeString": "struct Pairing.G2Point[]" } }, @@ -6823,21 +6823,21 @@ "visibility": "internal" } ], - "id": 521, + "id": 1549, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "34", - "id": 519, + "id": 1547, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "6863:1:0", + "src": "6863:1:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_4_by_1", @@ -6853,41 +6853,41 @@ "typeString": "int_const 4" } ], - "id": 518, + "id": 1546, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "NewExpression", - "src": "6849:13:0", + "src": "6849:13:4", "typeDescriptions": { - "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_G2Point_$15_memory_$dyn_memory_$", + "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_G2Point_$1043_memory_$dyn_memory_$", "typeString": "function (uint256) pure returns (struct Pairing.G2Point memory[] memory)" }, "typeName": { "baseType": { "contractScope": null, - "id": 516, + "id": 1544, "name": "G2Point", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 15, - "src": "6853:7:0", + "referencedDeclaration": 1043, + "src": "6853:7:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G2Point_$15_storage_ptr", + "typeIdentifier": "t_struct$_G2Point_$1043_storage_ptr", "typeString": "struct Pairing.G2Point" } }, - "id": 517, + "id": 1545, "length": null, "nodeType": "ArrayTypeName", - "src": "6853:9:0", + "src": "6853:9:4", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_G2Point_$15_storage_$dyn_storage_ptr", + "typeIdentifier": "t_array$_t_struct$_G2Point_$1043_storage_$dyn_storage_ptr", "typeString": "struct Pairing.G2Point[]" } } }, - "id": 520, + "id": 1548, "isConstant": false, "isLValue": false, "isPure": true, @@ -6895,19 +6895,19 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6849:16:0", + "src": "6849:16:4", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_G2Point_$15_memory_$dyn_memory", + "typeIdentifier": "t_array$_t_struct$_G2Point_$1043_memory_$dyn_memory", "typeString": "struct Pairing.G2Point memory[] memory" } }, "nodeType": "VariableDeclarationStatement", - "src": "6827:38:0" + "src": "6827:38:4" }, { "expression": { "argumentTypes": null, - "id": 526, + "id": 1554, "isConstant": false, "isLValue": false, "isPure": false, @@ -6916,29 +6916,29 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 522, + "id": 1550, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 505, - "src": "6875:2:0", + "referencedDeclaration": 1533, + "src": "6875:2:4", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_G1Point_$6_memory_$dyn_memory_ptr", + "typeIdentifier": "t_array$_t_struct$_G1Point_$1034_memory_$dyn_memory_ptr", "typeString": "struct Pairing.G1Point memory[] memory" } }, - "id": 524, + "id": 1552, "indexExpression": { "argumentTypes": null, "hexValue": "30", - "id": 523, + "id": 1551, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "6878:1:0", + "src": "6878:1:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -6951,9 +6951,9 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "6875:5:0", + "src": "6875:5:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_memory", + "typeIdentifier": "t_struct$_G1Point_$1034_memory", "typeString": "struct Pairing.G1Point memory" } }, @@ -6961,31 +6961,31 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 525, + "id": 1553, "name": "a1", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 483, - "src": "6883:2:0", + "referencedDeclaration": 1511, + "src": "6883:2:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_memory_ptr", + "typeIdentifier": "t_struct$_G1Point_$1034_memory_ptr", "typeString": "struct Pairing.G1Point memory" } }, - "src": "6875:10:0", + "src": "6875:10:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_memory", + "typeIdentifier": "t_struct$_G1Point_$1034_memory", "typeString": "struct Pairing.G1Point memory" } }, - "id": 527, + "id": 1555, "nodeType": "ExpressionStatement", - "src": "6875:10:0" + "src": "6875:10:4" }, { "expression": { "argumentTypes": null, - "id": 532, + "id": 1560, "isConstant": false, "isLValue": false, "isPure": false, @@ -6994,29 +6994,29 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 528, + "id": 1556, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 505, - "src": "6895:2:0", + "referencedDeclaration": 1533, + "src": "6895:2:4", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_G1Point_$6_memory_$dyn_memory_ptr", + "typeIdentifier": "t_array$_t_struct$_G1Point_$1034_memory_$dyn_memory_ptr", "typeString": "struct Pairing.G1Point memory[] memory" } }, - "id": 530, + "id": 1558, "indexExpression": { "argumentTypes": null, "hexValue": "31", - "id": 529, + "id": 1557, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "6898:1:0", + "src": "6898:1:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -7029,9 +7029,9 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "6895:5:0", + "src": "6895:5:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_memory", + "typeIdentifier": "t_struct$_G1Point_$1034_memory", "typeString": "struct Pairing.G1Point memory" } }, @@ -7039,31 +7039,31 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 531, + "id": 1559, "name": "b1", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 487, - "src": "6903:2:0", + "referencedDeclaration": 1515, + "src": "6903:2:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_memory_ptr", + "typeIdentifier": "t_struct$_G1Point_$1034_memory_ptr", "typeString": "struct Pairing.G1Point memory" } }, - "src": "6895:10:0", + "src": "6895:10:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_memory", + "typeIdentifier": "t_struct$_G1Point_$1034_memory", "typeString": "struct Pairing.G1Point memory" } }, - "id": 533, + "id": 1561, "nodeType": "ExpressionStatement", - "src": "6895:10:0" + "src": "6895:10:4" }, { "expression": { "argumentTypes": null, - "id": 538, + "id": 1566, "isConstant": false, "isLValue": false, "isPure": false, @@ -7072,29 +7072,29 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 534, + "id": 1562, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 505, - "src": "6915:2:0", + "referencedDeclaration": 1533, + "src": "6915:2:4", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_G1Point_$6_memory_$dyn_memory_ptr", + "typeIdentifier": "t_array$_t_struct$_G1Point_$1034_memory_$dyn_memory_ptr", "typeString": "struct Pairing.G1Point memory[] memory" } }, - "id": 536, + "id": 1564, "indexExpression": { "argumentTypes": null, "hexValue": "32", - "id": 535, + "id": 1563, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "6918:1:0", + "src": "6918:1:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_2_by_1", @@ -7107,9 +7107,9 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "6915:5:0", + "src": "6915:5:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_memory", + "typeIdentifier": "t_struct$_G1Point_$1034_memory", "typeString": "struct Pairing.G1Point memory" } }, @@ -7117,31 +7117,31 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 537, + "id": 1565, "name": "c1", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 491, - "src": "6923:2:0", + "referencedDeclaration": 1519, + "src": "6923:2:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_memory_ptr", + "typeIdentifier": "t_struct$_G1Point_$1034_memory_ptr", "typeString": "struct Pairing.G1Point memory" } }, - "src": "6915:10:0", + "src": "6915:10:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_memory", + "typeIdentifier": "t_struct$_G1Point_$1034_memory", "typeString": "struct Pairing.G1Point memory" } }, - "id": 539, + "id": 1567, "nodeType": "ExpressionStatement", - "src": "6915:10:0" + "src": "6915:10:4" }, { "expression": { "argumentTypes": null, - "id": 544, + "id": 1572, "isConstant": false, "isLValue": false, "isPure": false, @@ -7150,29 +7150,29 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 540, + "id": 1568, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 505, - "src": "6935:2:0", + "referencedDeclaration": 1533, + "src": "6935:2:4", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_G1Point_$6_memory_$dyn_memory_ptr", + "typeIdentifier": "t_array$_t_struct$_G1Point_$1034_memory_$dyn_memory_ptr", "typeString": "struct Pairing.G1Point memory[] memory" } }, - "id": 542, + "id": 1570, "indexExpression": { "argumentTypes": null, "hexValue": "33", - "id": 541, + "id": 1569, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "6938:1:0", + "src": "6938:1:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_3_by_1", @@ -7185,9 +7185,9 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "6935:5:0", + "src": "6935:5:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_memory", + "typeIdentifier": "t_struct$_G1Point_$1034_memory", "typeString": "struct Pairing.G1Point memory" } }, @@ -7195,31 +7195,31 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 543, + "id": 1571, "name": "d1", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 495, - "src": "6943:2:0", + "referencedDeclaration": 1523, + "src": "6943:2:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_memory_ptr", + "typeIdentifier": "t_struct$_G1Point_$1034_memory_ptr", "typeString": "struct Pairing.G1Point memory" } }, - "src": "6935:10:0", + "src": "6935:10:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_memory", + "typeIdentifier": "t_struct$_G1Point_$1034_memory", "typeString": "struct Pairing.G1Point memory" } }, - "id": 545, + "id": 1573, "nodeType": "ExpressionStatement", - "src": "6935:10:0" + "src": "6935:10:4" }, { "expression": { "argumentTypes": null, - "id": 550, + "id": 1578, "isConstant": false, "isLValue": false, "isPure": false, @@ -7228,29 +7228,29 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 546, + "id": 1574, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 515, - "src": "6955:2:0", + "referencedDeclaration": 1543, + "src": "6955:2:4", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_G2Point_$15_memory_$dyn_memory_ptr", + "typeIdentifier": "t_array$_t_struct$_G2Point_$1043_memory_$dyn_memory_ptr", "typeString": "struct Pairing.G2Point memory[] memory" } }, - "id": 548, + "id": 1576, "indexExpression": { "argumentTypes": null, "hexValue": "30", - "id": 547, + "id": 1575, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "6958:1:0", + "src": "6958:1:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -7263,9 +7263,9 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "6955:5:0", + "src": "6955:5:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G2Point_$15_memory", + "typeIdentifier": "t_struct$_G2Point_$1043_memory", "typeString": "struct Pairing.G2Point memory" } }, @@ -7273,31 +7273,31 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 549, + "id": 1577, "name": "a2", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 485, - "src": "6963:2:0", + "referencedDeclaration": 1513, + "src": "6963:2:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G2Point_$15_memory_ptr", + "typeIdentifier": "t_struct$_G2Point_$1043_memory_ptr", "typeString": "struct Pairing.G2Point memory" } }, - "src": "6955:10:0", + "src": "6955:10:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G2Point_$15_memory", + "typeIdentifier": "t_struct$_G2Point_$1043_memory", "typeString": "struct Pairing.G2Point memory" } }, - "id": 551, + "id": 1579, "nodeType": "ExpressionStatement", - "src": "6955:10:0" + "src": "6955:10:4" }, { "expression": { "argumentTypes": null, - "id": 556, + "id": 1584, "isConstant": false, "isLValue": false, "isPure": false, @@ -7306,29 +7306,29 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 552, + "id": 1580, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 515, - "src": "6975:2:0", + "referencedDeclaration": 1543, + "src": "6975:2:4", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_G2Point_$15_memory_$dyn_memory_ptr", + "typeIdentifier": "t_array$_t_struct$_G2Point_$1043_memory_$dyn_memory_ptr", "typeString": "struct Pairing.G2Point memory[] memory" } }, - "id": 554, + "id": 1582, "indexExpression": { "argumentTypes": null, "hexValue": "31", - "id": 553, + "id": 1581, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "6978:1:0", + "src": "6978:1:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -7341,9 +7341,9 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "6975:5:0", + "src": "6975:5:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G2Point_$15_memory", + "typeIdentifier": "t_struct$_G2Point_$1043_memory", "typeString": "struct Pairing.G2Point memory" } }, @@ -7351,31 +7351,31 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 555, + "id": 1583, "name": "b2", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 489, - "src": "6983:2:0", + "referencedDeclaration": 1517, + "src": "6983:2:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G2Point_$15_memory_ptr", + "typeIdentifier": "t_struct$_G2Point_$1043_memory_ptr", "typeString": "struct Pairing.G2Point memory" } }, - "src": "6975:10:0", + "src": "6975:10:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G2Point_$15_memory", + "typeIdentifier": "t_struct$_G2Point_$1043_memory", "typeString": "struct Pairing.G2Point memory" } }, - "id": 557, + "id": 1585, "nodeType": "ExpressionStatement", - "src": "6975:10:0" + "src": "6975:10:4" }, { "expression": { "argumentTypes": null, - "id": 562, + "id": 1590, "isConstant": false, "isLValue": false, "isPure": false, @@ -7384,29 +7384,29 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 558, + "id": 1586, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 515, - "src": "6995:2:0", + "referencedDeclaration": 1543, + "src": "6995:2:4", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_G2Point_$15_memory_$dyn_memory_ptr", + "typeIdentifier": "t_array$_t_struct$_G2Point_$1043_memory_$dyn_memory_ptr", "typeString": "struct Pairing.G2Point memory[] memory" } }, - "id": 560, + "id": 1588, "indexExpression": { "argumentTypes": null, "hexValue": "32", - "id": 559, + "id": 1587, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "6998:1:0", + "src": "6998:1:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_2_by_1", @@ -7419,9 +7419,9 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "6995:5:0", + "src": "6995:5:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G2Point_$15_memory", + "typeIdentifier": "t_struct$_G2Point_$1043_memory", "typeString": "struct Pairing.G2Point memory" } }, @@ -7429,31 +7429,31 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 561, + "id": 1589, "name": "c2", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 493, - "src": "7003:2:0", + "referencedDeclaration": 1521, + "src": "7003:2:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G2Point_$15_memory_ptr", + "typeIdentifier": "t_struct$_G2Point_$1043_memory_ptr", "typeString": "struct Pairing.G2Point memory" } }, - "src": "6995:10:0", + "src": "6995:10:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G2Point_$15_memory", + "typeIdentifier": "t_struct$_G2Point_$1043_memory", "typeString": "struct Pairing.G2Point memory" } }, - "id": 563, + "id": 1591, "nodeType": "ExpressionStatement", - "src": "6995:10:0" + "src": "6995:10:4" }, { "expression": { "argumentTypes": null, - "id": 568, + "id": 1596, "isConstant": false, "isLValue": false, "isPure": false, @@ -7462,29 +7462,29 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 564, + "id": 1592, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 515, - "src": "7015:2:0", + "referencedDeclaration": 1543, + "src": "7015:2:4", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_G2Point_$15_memory_$dyn_memory_ptr", + "typeIdentifier": "t_array$_t_struct$_G2Point_$1043_memory_$dyn_memory_ptr", "typeString": "struct Pairing.G2Point memory[] memory" } }, - "id": 566, + "id": 1594, "indexExpression": { "argumentTypes": null, "hexValue": "33", - "id": 565, + "id": 1593, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "7018:1:0", + "src": "7018:1:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_3_by_1", @@ -7497,9 +7497,9 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "7015:5:0", + "src": "7015:5:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G2Point_$15_memory", + "typeIdentifier": "t_struct$_G2Point_$1043_memory", "typeString": "struct Pairing.G2Point memory" } }, @@ -7507,26 +7507,26 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 567, + "id": 1595, "name": "d2", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 497, - "src": "7023:2:0", + "referencedDeclaration": 1525, + "src": "7023:2:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G2Point_$15_memory_ptr", + "typeIdentifier": "t_struct$_G2Point_$1043_memory_ptr", "typeString": "struct Pairing.G2Point memory" } }, - "src": "7015:10:0", + "src": "7015:10:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G2Point_$15_memory", + "typeIdentifier": "t_struct$_G2Point_$1043_memory", "typeString": "struct Pairing.G2Point memory" } }, - "id": 569, + "id": 1597, "nodeType": "ExpressionStatement", - "src": "7015:10:0" + "src": "7015:10:4" }, { "expression": { @@ -7534,27 +7534,27 @@ "arguments": [ { "argumentTypes": null, - "id": 571, + "id": 1599, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 505, - "src": "7050:2:0", + "referencedDeclaration": 1533, + "src": "7050:2:4", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_G1Point_$6_memory_$dyn_memory_ptr", + "typeIdentifier": "t_array$_t_struct$_G1Point_$1034_memory_$dyn_memory_ptr", "typeString": "struct Pairing.G1Point memory[] memory" } }, { "argumentTypes": null, - "id": 572, + "id": 1600, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 515, - "src": "7054:2:0", + "referencedDeclaration": 1543, + "src": "7054:2:4", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_G2Point_$15_memory_$dyn_memory_ptr", + "typeIdentifier": "t_array$_t_struct$_G2Point_$1043_memory_$dyn_memory_ptr", "typeString": "struct Pairing.G2Point memory[] memory" } } @@ -7562,26 +7562,26 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_array$_t_struct$_G1Point_$6_memory_$dyn_memory_ptr", + "typeIdentifier": "t_array$_t_struct$_G1Point_$1034_memory_$dyn_memory_ptr", "typeString": "struct Pairing.G1Point memory[] memory" }, { - "typeIdentifier": "t_array$_t_struct$_G2Point_$15_memory_$dyn_memory_ptr", + "typeIdentifier": "t_array$_t_struct$_G2Point_$1043_memory_$dyn_memory_ptr", "typeString": "struct Pairing.G2Point memory[] memory" } ], - "id": 570, + "id": 1598, "name": "pairing", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 339, - "src": "7042:7:0", + "referencedDeclaration": 1367, + "src": "7042:7:4", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_array$_t_struct$_G1Point_$6_memory_$dyn_memory_ptr_$_t_array$_t_struct$_G2Point_$15_memory_$dyn_memory_ptr_$returns$_t_bool_$", + "typeIdentifier": "t_function_internal_view$_t_array$_t_struct$_G1Point_$1034_memory_$dyn_memory_ptr_$_t_array$_t_struct$_G2Point_$1043_memory_$dyn_memory_ptr_$returns$_t_bool_$", "typeString": "function (struct Pairing.G1Point memory[] memory,struct Pairing.G2Point memory[] memory) view returns (bool)" } }, - "id": 573, + "id": 1601, "isConstant": false, "isLValue": false, "isPure": false, @@ -7589,52 +7589,52 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7042:15:0", + "src": "7042:15:4", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "functionReturnParameters": 501, - "id": 574, + "functionReturnParameters": 1529, + "id": 1602, "nodeType": "Return", - "src": "7035:22:0" + "src": "7035:22:4" } ] }, "documentation": "Convenience method for a pairing check for four pairs.", - "id": 576, + "id": 1604, "implemented": true, "kind": "function", "modifiers": [], "name": "pairingProd4", "nodeType": "FunctionDefinition", "parameters": { - "id": 498, + "id": 1526, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 483, + "id": 1511, "name": "a1", "nodeType": "VariableDeclaration", - "scope": 576, - "src": "6547:17:0", + "scope": 1604, + "src": "6547:17:4", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_memory_ptr", + "typeIdentifier": "t_struct$_G1Point_$1034_memory_ptr", "typeString": "struct Pairing.G1Point" }, "typeName": { "contractScope": null, - "id": 482, + "id": 1510, "name": "G1Point", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 6, - "src": "6547:7:0", + "referencedDeclaration": 1034, + "src": "6547:7:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_storage_ptr", + "typeIdentifier": "t_struct$_G1Point_$1034_storage_ptr", "typeString": "struct Pairing.G1Point" } }, @@ -7643,26 +7643,26 @@ }, { "constant": false, - "id": 485, + "id": 1513, "name": "a2", "nodeType": "VariableDeclaration", - "scope": 576, - "src": "6566:17:0", + "scope": 1604, + "src": "6566:17:4", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_struct$_G2Point_$15_memory_ptr", + "typeIdentifier": "t_struct$_G2Point_$1043_memory_ptr", "typeString": "struct Pairing.G2Point" }, "typeName": { "contractScope": null, - "id": 484, + "id": 1512, "name": "G2Point", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 15, - "src": "6566:7:0", + "referencedDeclaration": 1043, + "src": "6566:7:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G2Point_$15_storage_ptr", + "typeIdentifier": "t_struct$_G2Point_$1043_storage_ptr", "typeString": "struct Pairing.G2Point" } }, @@ -7671,26 +7671,26 @@ }, { "constant": false, - "id": 487, + "id": 1515, "name": "b1", "nodeType": "VariableDeclaration", - "scope": 576, - "src": "6597:17:0", + "scope": 1604, + "src": "6597:17:4", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_memory_ptr", + "typeIdentifier": "t_struct$_G1Point_$1034_memory_ptr", "typeString": "struct Pairing.G1Point" }, "typeName": { "contractScope": null, - "id": 486, + "id": 1514, "name": "G1Point", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 6, - "src": "6597:7:0", + "referencedDeclaration": 1034, + "src": "6597:7:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_storage_ptr", + "typeIdentifier": "t_struct$_G1Point_$1034_storage_ptr", "typeString": "struct Pairing.G1Point" } }, @@ -7699,26 +7699,26 @@ }, { "constant": false, - "id": 489, + "id": 1517, "name": "b2", "nodeType": "VariableDeclaration", - "scope": 576, - "src": "6616:17:0", + "scope": 1604, + "src": "6616:17:4", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_struct$_G2Point_$15_memory_ptr", + "typeIdentifier": "t_struct$_G2Point_$1043_memory_ptr", "typeString": "struct Pairing.G2Point" }, "typeName": { "contractScope": null, - "id": 488, + "id": 1516, "name": "G2Point", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 15, - "src": "6616:7:0", + "referencedDeclaration": 1043, + "src": "6616:7:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G2Point_$15_storage_ptr", + "typeIdentifier": "t_struct$_G2Point_$1043_storage_ptr", "typeString": "struct Pairing.G2Point" } }, @@ -7727,26 +7727,26 @@ }, { "constant": false, - "id": 491, + "id": 1519, "name": "c1", "nodeType": "VariableDeclaration", - "scope": 576, - "src": "6647:17:0", + "scope": 1604, + "src": "6647:17:4", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_memory_ptr", + "typeIdentifier": "t_struct$_G1Point_$1034_memory_ptr", "typeString": "struct Pairing.G1Point" }, "typeName": { "contractScope": null, - "id": 490, + "id": 1518, "name": "G1Point", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 6, - "src": "6647:7:0", + "referencedDeclaration": 1034, + "src": "6647:7:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_storage_ptr", + "typeIdentifier": "t_struct$_G1Point_$1034_storage_ptr", "typeString": "struct Pairing.G1Point" } }, @@ -7755,26 +7755,26 @@ }, { "constant": false, - "id": 493, + "id": 1521, "name": "c2", "nodeType": "VariableDeclaration", - "scope": 576, - "src": "6666:17:0", + "scope": 1604, + "src": "6666:17:4", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_struct$_G2Point_$15_memory_ptr", + "typeIdentifier": "t_struct$_G2Point_$1043_memory_ptr", "typeString": "struct Pairing.G2Point" }, "typeName": { "contractScope": null, - "id": 492, + "id": 1520, "name": "G2Point", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 15, - "src": "6666:7:0", + "referencedDeclaration": 1043, + "src": "6666:7:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G2Point_$15_storage_ptr", + "typeIdentifier": "t_struct$_G2Point_$1043_storage_ptr", "typeString": "struct Pairing.G2Point" } }, @@ -7783,26 +7783,26 @@ }, { "constant": false, - "id": 495, + "id": 1523, "name": "d1", "nodeType": "VariableDeclaration", - "scope": 576, - "src": "6697:17:0", + "scope": 1604, + "src": "6697:17:4", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_memory_ptr", + "typeIdentifier": "t_struct$_G1Point_$1034_memory_ptr", "typeString": "struct Pairing.G1Point" }, "typeName": { "contractScope": null, - "id": 494, + "id": 1522, "name": "G1Point", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 6, - "src": "6697:7:0", + "referencedDeclaration": 1034, + "src": "6697:7:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_storage_ptr", + "typeIdentifier": "t_struct$_G1Point_$1034_storage_ptr", "typeString": "struct Pairing.G1Point" } }, @@ -7811,26 +7811,26 @@ }, { "constant": false, - "id": 497, + "id": 1525, "name": "d2", "nodeType": "VariableDeclaration", - "scope": 576, - "src": "6716:17:0", + "scope": 1604, + "src": "6716:17:4", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_struct$_G2Point_$15_memory_ptr", + "typeIdentifier": "t_struct$_G2Point_$1043_memory_ptr", "typeString": "struct Pairing.G2Point" }, "typeName": { "contractScope": null, - "id": 496, + "id": 1524, "name": "G2Point", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 15, - "src": "6716:7:0", + "referencedDeclaration": 1043, + "src": "6716:7:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G2Point_$15_storage_ptr", + "typeIdentifier": "t_struct$_G2Point_$1043_storage_ptr", "typeString": "struct Pairing.G2Point" } }, @@ -7838,19 +7838,19 @@ "visibility": "internal" } ], - "src": "6533:206:0" + "src": "6533:206:4" }, "returnParameters": { - "id": 501, + "id": 1529, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 500, + "id": 1528, "name": "", "nodeType": "VariableDeclaration", - "scope": 576, - "src": "6763:4:0", + "scope": 1604, + "src": "6763:4:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7858,10 +7858,10 @@ "typeString": "bool" }, "typeName": { - "id": 499, + "id": 1527, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "6763:4:0", + "src": "6763:4:4", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -7871,17 +7871,17 @@ "visibility": "internal" } ], - "src": "6762:6:0" + "src": "6762:6:4" }, - "scope": 577, - "src": "6512:552:0", + "scope": 1605, + "src": "6512:552:4", "stateMutability": "view", "superFunction": null, "visibility": "internal" } ], - "scope": 1059, - "src": "1217:5849:0" + "scope": 2087, + "src": "1217:5849:4" }, { "baseContracts": [], @@ -7889,57 +7889,57 @@ "contractKind": "contract", "documentation": null, "fullyImplemented": true, - "id": 1058, + "id": 2086, "linearizedBaseContracts": [ - 1058 + 2086 ], "name": "Verifier", "nodeType": "ContractDefinition", "nodes": [ { - "id": 579, + "id": 1607, "libraryName": { "contractScope": null, - "id": 578, + "id": 1606, "name": "Pairing", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 577, - "src": "7097:7:0", + "referencedDeclaration": 1605, + "src": "7097:7:4", "typeDescriptions": { - "typeIdentifier": "t_contract$_Pairing_$577", + "typeIdentifier": "t_contract$_Pairing_$1605", "typeString": "library Pairing" } }, "nodeType": "UsingForDirective", - "src": "7091:20:0", + "src": "7091:20:4", "typeName": null }, { "canonicalName": "Verifier.VerifyingKey", - "id": 591, + "id": 1619, "members": [ { "constant": false, - "id": 581, + "id": 1609, "name": "alfa1", "nodeType": "VariableDeclaration", - "scope": 591, - "src": "7146:21:0", + "scope": 1619, + "src": "7146:21:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_storage_ptr", + "typeIdentifier": "t_struct$_G1Point_$1034_storage_ptr", "typeString": "struct Pairing.G1Point" }, "typeName": { "contractScope": null, - "id": 580, + "id": 1608, "name": "Pairing.G1Point", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 6, - "src": "7146:15:0", + "referencedDeclaration": 1034, + "src": "7146:15:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_storage_ptr", + "typeIdentifier": "t_struct$_G1Point_$1034_storage_ptr", "typeString": "struct Pairing.G1Point" } }, @@ -7948,26 +7948,26 @@ }, { "constant": false, - "id": 583, + "id": 1611, "name": "beta2", "nodeType": "VariableDeclaration", - "scope": 591, - "src": "7177:21:0", + "scope": 1619, + "src": "7177:21:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_struct$_G2Point_$15_storage_ptr", + "typeIdentifier": "t_struct$_G2Point_$1043_storage_ptr", "typeString": "struct Pairing.G2Point" }, "typeName": { "contractScope": null, - "id": 582, + "id": 1610, "name": "Pairing.G2Point", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 15, - "src": "7177:15:0", + "referencedDeclaration": 1043, + "src": "7177:15:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G2Point_$15_storage_ptr", + "typeIdentifier": "t_struct$_G2Point_$1043_storage_ptr", "typeString": "struct Pairing.G2Point" } }, @@ -7976,26 +7976,26 @@ }, { "constant": false, - "id": 585, + "id": 1613, "name": "gamma2", "nodeType": "VariableDeclaration", - "scope": 591, - "src": "7208:22:0", + "scope": 1619, + "src": "7208:22:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_struct$_G2Point_$15_storage_ptr", + "typeIdentifier": "t_struct$_G2Point_$1043_storage_ptr", "typeString": "struct Pairing.G2Point" }, "typeName": { "contractScope": null, - "id": 584, + "id": 1612, "name": "Pairing.G2Point", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 15, - "src": "7208:15:0", + "referencedDeclaration": 1043, + "src": "7208:15:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G2Point_$15_storage_ptr", + "typeIdentifier": "t_struct$_G2Point_$1043_storage_ptr", "typeString": "struct Pairing.G2Point" } }, @@ -8004,26 +8004,26 @@ }, { "constant": false, - "id": 587, + "id": 1615, "name": "delta2", "nodeType": "VariableDeclaration", - "scope": 591, - "src": "7240:22:0", + "scope": 1619, + "src": "7240:22:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_struct$_G2Point_$15_storage_ptr", + "typeIdentifier": "t_struct$_G2Point_$1043_storage_ptr", "typeString": "struct Pairing.G2Point" }, "typeName": { "contractScope": null, - "id": 586, + "id": 1614, "name": "Pairing.G2Point", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 15, - "src": "7240:15:0", + "referencedDeclaration": 1043, + "src": "7240:15:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G2Point_$15_storage_ptr", + "typeIdentifier": "t_struct$_G2Point_$1043_storage_ptr", "typeString": "struct Pairing.G2Point" } }, @@ -8032,36 +8032,36 @@ }, { "constant": false, - "id": 590, + "id": 1618, "name": "IC", "nodeType": "VariableDeclaration", - "scope": 591, - "src": "7272:20:0", + "scope": 1619, + "src": "7272:20:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_G1Point_$6_storage_$dyn_storage_ptr", + "typeIdentifier": "t_array$_t_struct$_G1Point_$1034_storage_$dyn_storage_ptr", "typeString": "struct Pairing.G1Point[]" }, "typeName": { "baseType": { "contractScope": null, - "id": 588, + "id": 1616, "name": "Pairing.G1Point", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 6, - "src": "7272:15:0", + "referencedDeclaration": 1034, + "src": "7272:15:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_storage_ptr", + "typeIdentifier": "t_struct$_G1Point_$1034_storage_ptr", "typeString": "struct Pairing.G1Point" } }, - "id": 589, + "id": 1617, "length": null, "nodeType": "ArrayTypeName", - "src": "7272:17:0", + "src": "7272:17:4", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_G1Point_$6_storage_$dyn_storage_ptr", + "typeIdentifier": "t_array$_t_struct$_G1Point_$1034_storage_$dyn_storage_ptr", "typeString": "struct Pairing.G1Point[]" } }, @@ -8071,36 +8071,36 @@ ], "name": "VerifyingKey", "nodeType": "StructDefinition", - "scope": 1058, - "src": "7116:183:0", + "scope": 2086, + "src": "7116:183:4", "visibility": "public" }, { "canonicalName": "Verifier.Proof", - "id": 598, + "id": 1626, "members": [ { "constant": false, - "id": 593, + "id": 1621, "name": "A", "nodeType": "VariableDeclaration", - "scope": 598, - "src": "7327:17:0", + "scope": 1626, + "src": "7327:17:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_storage_ptr", + "typeIdentifier": "t_struct$_G1Point_$1034_storage_ptr", "typeString": "struct Pairing.G1Point" }, "typeName": { "contractScope": null, - "id": 592, + "id": 1620, "name": "Pairing.G1Point", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 6, - "src": "7327:15:0", + "referencedDeclaration": 1034, + "src": "7327:15:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_storage_ptr", + "typeIdentifier": "t_struct$_G1Point_$1034_storage_ptr", "typeString": "struct Pairing.G1Point" } }, @@ -8109,26 +8109,26 @@ }, { "constant": false, - "id": 595, + "id": 1623, "name": "B", "nodeType": "VariableDeclaration", - "scope": 598, - "src": "7354:17:0", + "scope": 1626, + "src": "7354:17:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_struct$_G2Point_$15_storage_ptr", + "typeIdentifier": "t_struct$_G2Point_$1043_storage_ptr", "typeString": "struct Pairing.G2Point" }, "typeName": { "contractScope": null, - "id": 594, + "id": 1622, "name": "Pairing.G2Point", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 15, - "src": "7354:15:0", + "referencedDeclaration": 1043, + "src": "7354:15:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G2Point_$15_storage_ptr", + "typeIdentifier": "t_struct$_G2Point_$1043_storage_ptr", "typeString": "struct Pairing.G2Point" } }, @@ -8137,26 +8137,26 @@ }, { "constant": false, - "id": 597, + "id": 1625, "name": "C", "nodeType": "VariableDeclaration", - "scope": 598, - "src": "7381:17:0", + "scope": 1626, + "src": "7381:17:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_storage_ptr", + "typeIdentifier": "t_struct$_G1Point_$1034_storage_ptr", "typeString": "struct Pairing.G1Point" }, "typeName": { "contractScope": null, - "id": 596, + "id": 1624, "name": "Pairing.G1Point", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 6, - "src": "7381:15:0", + "referencedDeclaration": 1034, + "src": "7381:15:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_storage_ptr", + "typeIdentifier": "t_struct$_G1Point_$1034_storage_ptr", "typeString": "struct Pairing.G1Point" } }, @@ -8166,20 +8166,20 @@ ], "name": "Proof", "nodeType": "StructDefinition", - "scope": 1058, - "src": "7304:101:0", + "scope": 2086, + "src": "7304:101:4", "visibility": "public" }, { "body": { - "id": 749, + "id": 1777, "nodeType": "Block", - "src": "7481:2642:0", + "src": "7481:2640:4", "statements": [ { "expression": { "argumentTypes": null, - "id": 611, + "id": 1639, "isConstant": false, "isLValue": false, "isPure": false, @@ -8188,28 +8188,28 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 603, + "id": 1631, "name": "vk", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 601, - "src": "7491:2:0", + "referencedDeclaration": 1629, + "src": "7491:2:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_VerifyingKey_$591_memory_ptr", + "typeIdentifier": "t_struct$_VerifyingKey_$1619_memory_ptr", "typeString": "struct Verifier.VerifyingKey memory" } }, - "id": 605, + "id": 1633, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberName": "alfa1", "nodeType": "MemberAccess", - "referencedDeclaration": 581, - "src": "7491:8:0", + "referencedDeclaration": 1609, + "src": "7491:8:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_memory", + "typeIdentifier": "t_struct$_G1Point_$1034_memory", "typeString": "struct Pairing.G1Point memory" } }, @@ -8220,80 +8220,80 @@ "arguments": [ { "argumentTypes": null, - "hexValue": "37313531373735343734373533303734333439363033393132383134383330383038313132363832333230353631393337383132393632363230343339393134353334393536303637333331", - "id": 608, + "hexValue": "3132343630343930373038323739343637333031323032373738333931313237353130353337363833393438323538303936373936393232313237313734323638303039313638303136373436", + "id": 1636, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "7518:76:0", + "src": "7518:77:4", "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_rational_7151775474753074349603912814830808112682320561937812962620439914534956067331_by_1", - "typeString": "int_const 7151...(68 digits omitted)...7331" + "typeIdentifier": "t_rational_12460490708279467301202778391127510537683948258096796922127174268009168016746_by_1", + "typeString": "int_const 1246...(69 digits omitted)...6746" }, - "value": "7151775474753074349603912814830808112682320561937812962620439914534956067331" + "value": "12460490708279467301202778391127510537683948258096796922127174268009168016746" }, { "argumentTypes": null, - "hexValue": "363832333737373032303938353935333931323730303237323730393637373537353338373633373037363139383734303831353131393531363234303632303832333235353139363734", - "id": 609, + "hexValue": "32303434303733363733373234363631363531353737343231333239373039323733303831383537303831323132383035383732383633363335353034393630353039323236343936323432", + "id": 1637, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "7595:75:0", + "src": "7596:76:4", "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_rational_682377702098595391270027270967757538763707619874081511951624062082325519674_by_1", - "typeString": "int_const 6823...(67 digits omitted)...9674" + "typeIdentifier": "t_rational_2044073673724661651577421329709273081857081212805872863635504960509226496242_by_1", + "typeString": "int_const 2044...(68 digits omitted)...6242" }, - "value": "682377702098595391270027270967757538763707619874081511951624062082325519674" + "value": "2044073673724661651577421329709273081857081212805872863635504960509226496242" } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_rational_7151775474753074349603912814830808112682320561937812962620439914534956067331_by_1", - "typeString": "int_const 7151...(68 digits omitted)...7331" + "typeIdentifier": "t_rational_12460490708279467301202778391127510537683948258096796922127174268009168016746_by_1", + "typeString": "int_const 1246...(69 digits omitted)...6746" }, { - "typeIdentifier": "t_rational_682377702098595391270027270967757538763707619874081511951624062082325519674_by_1", - "typeString": "int_const 6823...(67 digits omitted)...9674" + "typeIdentifier": "t_rational_2044073673724661651577421329709273081857081212805872863635504960509226496242_by_1", + "typeString": "int_const 2044...(68 digits omitted)...6242" } ], "expression": { "argumentTypes": null, - "id": 606, + "id": 1634, "name": "Pairing", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 577, - "src": "7502:7:0", + "referencedDeclaration": 1605, + "src": "7502:7:4", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Pairing_$577_$", + "typeIdentifier": "t_type$_t_contract$_Pairing_$1605_$", "typeString": "type(library Pairing)" } }, - "id": 607, + "id": 1635, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "G1Point", "nodeType": "MemberAccess", - "referencedDeclaration": 6, - "src": "7502:15:0", + "referencedDeclaration": 1034, + "src": "7502:15:4", "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_G1Point_$6_storage_ptr_$", + "typeIdentifier": "t_type$_t_struct$_G1Point_$1034_storage_ptr_$", "typeString": "type(struct Pairing.G1Point storage pointer)" } }, - "id": 610, + "id": 1638, "isConstant": false, "isLValue": false, "isPure": true, @@ -8301,26 +8301,26 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7502:169:0", + "src": "7502:171:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_memory", + "typeIdentifier": "t_struct$_G1Point_$1034_memory", "typeString": "struct Pairing.G1Point memory" } }, - "src": "7491:180:0", + "src": "7491:182:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_memory", + "typeIdentifier": "t_struct$_G1Point_$1034_memory", "typeString": "struct Pairing.G1Point memory" } }, - "id": 612, + "id": 1640, "nodeType": "ExpressionStatement", - "src": "7491:180:0" + "src": "7491:182:4" }, { "expression": { "argumentTypes": null, - "id": 625, + "id": 1653, "isConstant": false, "isLValue": false, "isPure": false, @@ -8329,28 +8329,28 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 613, + "id": 1641, "name": "vk", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 601, - "src": "7681:2:0", + "referencedDeclaration": 1629, + "src": "7683:2:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_VerifyingKey_$591_memory_ptr", + "typeIdentifier": "t_struct$_VerifyingKey_$1619_memory_ptr", "typeString": "struct Verifier.VerifyingKey memory" } }, - "id": 615, + "id": 1643, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberName": "beta2", "nodeType": "MemberAccess", - "referencedDeclaration": 583, - "src": "7681:8:0", + "referencedDeclaration": 1611, + "src": "7683:8:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G2Point_$15_memory", + "typeIdentifier": "t_struct$_G2Point_$1043_memory", "typeString": "struct Pairing.G2Point memory" } }, @@ -8364,49 +8364,49 @@ "components": [ { "argumentTypes": null, - "hexValue": "3230343734323732343536313130313932343936343930383235373630343836353434313039333537313234373231353331343435383733393339313435333133343333373333383234323230", - "id": 618, + "hexValue": "3136303837343930313933383736313631363337343438303435373034383837393233333934303730373439333031373239343031303432353238323037373830333037333533313438373534", + "id": 1646, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "7709:77:0", + "src": "7711:77:4", "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_rational_20474272456110192496490825760486544109357124721531445873939145313433733824220_by_1", - "typeString": "int_const 2047...(69 digits omitted)...4220" + "typeIdentifier": "t_rational_16087490193876161637448045704887923394070749301729401042528207780307353148754_by_1", + "typeString": "int_const 1608...(69 digits omitted)...8754" }, - "value": "20474272456110192496490825760486544109357124721531445873939145313433733824220" + "value": "16087490193876161637448045704887923394070749301729401042528207780307353148754" }, { "argumentTypes": null, - "hexValue": "3133323532383838383936303835353632373734383637363735323239313134373837383931363331363433373730343234343030333234323436323437303736323239333836303439353031", - "id": 619, + "hexValue": "34303437333135353438323330373136363730373932373131333634313439343830363238303436353434363338373339343331393436313130383337343130343033393232393533333032", + "id": 1647, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "7787:77:0", + "src": "7789:76:4", "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_rational_13252888896085562774867675229114787891631643770424400324246247076229386049501_by_1", - "typeString": "int_const 1325...(69 digits omitted)...9501" + "typeIdentifier": "t_rational_4047315548230716670792711364149480628046544638739431946110837410403922953302_by_1", + "typeString": "int_const 4047...(68 digits omitted)...3302" }, - "value": "13252888896085562774867675229114787891631643770424400324246247076229386049501" + "value": "4047315548230716670792711364149480628046544638739431946110837410403922953302" } ], - "id": 620, + "id": 1648, "isConstant": false, "isInlineArray": true, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "7708:157:0", + "src": "7710:156:4", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", "typeString": "uint256[2] memory" @@ -8417,49 +8417,49 @@ "components": [ { "argumentTypes": null, - "hexValue": "3134373834333739363130303334363334313837323034343233373138333536363933303930303731363839333736363838353834363234323830323931303137313634333739303036323333", - "id": 621, + "hexValue": "3134323633313537353839393235353033303235353238373932353232343434313030303538373731343134363933323733393435313439303332383839393230373735353938323431353138", + "id": 1649, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "7868:77:0", + "src": "7869:77:4", "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_rational_14784379610034634187204423718356693090071689376688584624280291017164379006233_by_1", - "typeString": "int_const 1478...(69 digits omitted)...6233" + "typeIdentifier": "t_rational_14263157589925503025528792522444100058771414693273945149032889920775598241518_by_1", + "typeString": "int_const 1426...(69 digits omitted)...1518" }, - "value": "14784379610034634187204423718356693090071689376688584624280291017164379006233" + "value": "14263157589925503025528792522444100058771414693273945149032889920775598241518" }, { "argumentTypes": null, - "hexValue": "3133303436353931323232343534333035383837313336373135313937323733373539333931353334323836303635383631343634343637393436303631393933363833383637323536343334", - "id": 622, + "hexValue": "32343033303839383232303531383538363434393835383038313639343634373537333735323530333032373535353932393934303039323934313130323337363136353532353935373538", + "id": 1650, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "7946:77:0", + "src": "7947:76:4", "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_rational_13046591222454305887136715197273759391534286065861464467946061993683867256434_by_1", - "typeString": "int_const 1304...(69 digits omitted)...6434" + "typeIdentifier": "t_rational_2403089822051858644985808169464757375250302755592994009294110237616552595758_by_1", + "typeString": "int_const 2403...(68 digits omitted)...5758" }, - "value": "13046591222454305887136715197273759391534286065861464467946061993683867256434" + "value": "2403089822051858644985808169464757375250302755592994009294110237616552595758" } ], - "id": 623, + "id": 1651, "isConstant": false, "isInlineArray": true, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "7867:157:0", + "src": "7868:156:4", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", "typeString": "uint256[2] memory" @@ -8479,32 +8479,32 @@ ], "expression": { "argumentTypes": null, - "id": 616, + "id": 1644, "name": "Pairing", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 577, - "src": "7692:7:0", + "referencedDeclaration": 1605, + "src": "7694:7:4", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Pairing_$577_$", + "typeIdentifier": "t_type$_t_contract$_Pairing_$1605_$", "typeString": "type(library Pairing)" } }, - "id": 617, + "id": 1645, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "G2Point", "nodeType": "MemberAccess", - "referencedDeclaration": 15, - "src": "7692:15:0", + "referencedDeclaration": 1043, + "src": "7694:15:4", "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_G2Point_$15_storage_ptr_$", + "typeIdentifier": "t_type$_t_struct$_G2Point_$1043_storage_ptr_$", "typeString": "type(struct Pairing.G2Point storage pointer)" } }, - "id": 624, + "id": 1652, "isConstant": false, "isLValue": false, "isPure": true, @@ -8512,26 +8512,26 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7692:333:0", + "src": "7694:331:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G2Point_$15_memory", + "typeIdentifier": "t_struct$_G2Point_$1043_memory", "typeString": "struct Pairing.G2Point memory" } }, - "src": "7681:344:0", + "src": "7683:342:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G2Point_$15_memory", + "typeIdentifier": "t_struct$_G2Point_$1043_memory", "typeString": "struct Pairing.G2Point memory" } }, - "id": 626, + "id": 1654, "nodeType": "ExpressionStatement", - "src": "7681:344:0" + "src": "7683:342:4" }, { "expression": { "argumentTypes": null, - "id": 639, + "id": 1667, "isConstant": false, "isLValue": false, "isPure": false, @@ -8540,28 +8540,28 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 627, + "id": 1655, "name": "vk", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 601, - "src": "8035:2:0", + "referencedDeclaration": 1629, + "src": "8035:2:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_VerifyingKey_$591_memory_ptr", + "typeIdentifier": "t_struct$_VerifyingKey_$1619_memory_ptr", "typeString": "struct Verifier.VerifyingKey memory" } }, - "id": 629, + "id": 1657, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberName": "gamma2", "nodeType": "MemberAccess", - "referencedDeclaration": 585, - "src": "8035:9:0", + "referencedDeclaration": 1613, + "src": "8035:9:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G2Point_$15_memory", + "typeIdentifier": "t_struct$_G2Point_$1043_memory", "typeString": "struct Pairing.G2Point memory" } }, @@ -8575,49 +8575,49 @@ "components": [ { "argumentTypes": null, - "hexValue": "3231303432373935333335333631343335393232333334393130393332363032363033323739323834303338353139383439333238383234313632313138373839343936323039323430363432", - "id": 632, + "hexValue": "3138313233323736333034313237313630343338333933383031303838373137333138373831313938313332393631333938373933373630383132373439323537313836303633303134333337", + "id": 1660, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "8064:77:0", + "src": "8064:77:4", "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_rational_21042795335361435922334910932602603279284038519849328824162118789496209240642_by_1", - "typeString": "int_const 2104...(69 digits omitted)...0642" + "typeIdentifier": "t_rational_18123276304127160438393801088717318781198132961398793760812749257186063014337_by_1", + "typeString": "int_const 1812...(69 digits omitted)...4337" }, - "value": "21042795335361435922334910932602603279284038519849328824162118789496209240642" + "value": "18123276304127160438393801088717318781198132961398793760812749257186063014337" }, { "argumentTypes": null, - "hexValue": "3139393038323532333531353437393538353637353439363939363230303230383531313638393636303738393831313230393232313030313838393031393335343238323334333335323434", - "id": 633, + "hexValue": "3137363037343233313035333133333335353235343332383639363637363739333532363234393234303636353935373537303332373137373832333939383232323537303230353033313337", + "id": 1661, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "8142:77:0", + "src": "8142:77:4", "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_rational_19908252351547958567549699620020851168966078981120922100188901935428234335244_by_1", - "typeString": "int_const 1990...(69 digits omitted)...5244" + "typeIdentifier": "t_rational_17607423105313335525432869667679352624924066595757032717782399822257020503137_by_1", + "typeString": "int_const 1760...(69 digits omitted)...3137" }, - "value": "19908252351547958567549699620020851168966078981120922100188901935428234335244" + "value": "17607423105313335525432869667679352624924066595757032717782399822257020503137" } ], - "id": 634, + "id": 1662, "isConstant": false, "isInlineArray": true, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "8063:157:0", + "src": "8063:157:4", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", "typeString": "uint256[2] memory" @@ -8628,49 +8628,49 @@ "components": [ { "argumentTypes": null, - "hexValue": "3132333735333538323031393239363739393430303535303935313531343639383231383739393838303838393637383938343732353435343335323138363834323033343231333738353131", - "id": 635, + "hexValue": "3131303235353831333239363530303437363531363739373537303836333838373234313637343735323139343036393133313134323730343938343330383838343833353236303130363834", + "id": 1663, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "8223:77:0", + "src": "8223:77:4", "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_rational_12375358201929679940055095151469821879988088967898472545435218684203421378511_by_1", - "typeString": "int_const 1237...(69 digits omitted)...8511" + "typeIdentifier": "t_rational_11025581329650047651679757086388724167475219406913114270498430888483526010684_by_1", + "typeString": "int_const 1102...(69 digits omitted)...0684" }, - "value": "12375358201929679940055095151469821879988088967898472545435218684203421378511" + "value": "11025581329650047651679757086388724167475219406913114270498430888483526010684" }, { "argumentTypes": null, - "hexValue": "3132323233363934373138363731353631393038333035343236363234343435373435343937383930303935363433363839313630303330343731323338393636303533343639313430343735", - "id": 636, + "hexValue": "3137323233303432313133303632303330353536323738383136363934363631393730333331363937323334393232363936303132303133313737313934373233353439353238343734323031", + "id": 1664, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "8301:77:0", + "src": "8301:77:4", "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_rational_12223694718671561908305426624445745497890095643689160030471238966053469140475_by_1", - "typeString": "int_const 1222...(69 digits omitted)...0475" + "typeIdentifier": "t_rational_17223042113062030556278816694661970331697234922696012013177194723549528474201_by_1", + "typeString": "int_const 1722...(69 digits omitted)...4201" }, - "value": "12223694718671561908305426624445745497890095643689160030471238966053469140475" + "value": "17223042113062030556278816694661970331697234922696012013177194723549528474201" } ], - "id": 637, + "id": 1665, "isConstant": false, "isInlineArray": true, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "8222:157:0", + "src": "8222:157:4", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", "typeString": "uint256[2] memory" @@ -8690,32 +8690,32 @@ ], "expression": { "argumentTypes": null, - "id": 630, + "id": 1658, "name": "Pairing", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 577, - "src": "8047:7:0", + "referencedDeclaration": 1605, + "src": "8047:7:4", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Pairing_$577_$", + "typeIdentifier": "t_type$_t_contract$_Pairing_$1605_$", "typeString": "type(library Pairing)" } }, - "id": 631, + "id": 1659, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "G2Point", "nodeType": "MemberAccess", - "referencedDeclaration": 15, - "src": "8047:15:0", + "referencedDeclaration": 1043, + "src": "8047:15:4", "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_G2Point_$15_storage_ptr_$", + "typeIdentifier": "t_type$_t_struct$_G2Point_$1043_storage_ptr_$", "typeString": "type(struct Pairing.G2Point storage pointer)" } }, - "id": 638, + "id": 1666, "isConstant": false, "isLValue": false, "isPure": true, @@ -8723,26 +8723,26 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8047:333:0", + "src": "8047:333:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G2Point_$15_memory", + "typeIdentifier": "t_struct$_G2Point_$1043_memory", "typeString": "struct Pairing.G2Point memory" } }, - "src": "8035:345:0", + "src": "8035:345:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G2Point_$15_memory", + "typeIdentifier": "t_struct$_G2Point_$1043_memory", "typeString": "struct Pairing.G2Point memory" } }, - "id": 640, + "id": 1668, "nodeType": "ExpressionStatement", - "src": "8035:345:0" + "src": "8035:345:4" }, { "expression": { "argumentTypes": null, - "id": 653, + "id": 1681, "isConstant": false, "isLValue": false, "isPure": false, @@ -8751,28 +8751,28 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 641, + "id": 1669, "name": "vk", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 601, - "src": "8390:2:0", + "referencedDeclaration": 1629, + "src": "8390:2:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_VerifyingKey_$591_memory_ptr", + "typeIdentifier": "t_struct$_VerifyingKey_$1619_memory_ptr", "typeString": "struct Verifier.VerifyingKey memory" } }, - "id": 643, + "id": 1671, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberName": "delta2", "nodeType": "MemberAccess", - "referencedDeclaration": 587, - "src": "8390:9:0", + "referencedDeclaration": 1615, + "src": "8390:9:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G2Point_$15_memory", + "typeIdentifier": "t_struct$_G2Point_$1043_memory", "typeString": "struct Pairing.G2Point memory" } }, @@ -8786,49 +8786,49 @@ "components": [ { "argumentTypes": null, - "hexValue": "33383836343431383434333033353433373831313234373037313534383530353734303932363034303130353836333239363931363330373635353637313033373639343132353137393331", - "id": 646, + "hexValue": "36303337363233343438353132313638393837323630353636323031363838313232323435373931333731353235303238303938353035393532323539313634343331383437373735343931", + "id": 1674, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "8419:76:0", + "src": "8419:76:4", "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_rational_3886441844303543781124707154850574092604010586329691630765567103769412517931_by_1", - "typeString": "int_const 3886...(68 digits omitted)...7931" + "typeIdentifier": "t_rational_6037623448512168987260566201688122245791371525028098505952259164431847775491_by_1", + "typeString": "int_const 6037...(68 digits omitted)...5491" }, - "value": "3886441844303543781124707154850574092604010586329691630765567103769412517931" + "value": "6037623448512168987260566201688122245791371525028098505952259164431847775491" }, { "argumentTypes": null, - "hexValue": "32363332373534363539393334353537373535353531393539383234363534353430323539393435363633363432363339333632333039373337383233323838333739303737383034333332", - "id": 647, + "hexValue": "343538333336353735343333393938353036303136343538303137323138313131383632383739313836313339333034363534363036333831333732353833393134343436393539363137", + "id": 1675, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "8496:76:0", + "src": "8496:75:4", "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_rational_2632754659934557755551959824654540259945663642639362309737823288379077804332_by_1", - "typeString": "int_const 2632...(68 digits omitted)...4332" + "typeIdentifier": "t_rational_458336575433998506016458017218111862879186139304654606381372583914446959617_by_1", + "typeString": "int_const 4583...(67 digits omitted)...9617" }, - "value": "2632754659934557755551959824654540259945663642639362309737823288379077804332" + "value": "458336575433998506016458017218111862879186139304654606381372583914446959617" } ], - "id": 648, + "id": 1676, "isConstant": false, "isInlineArray": true, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "8418:155:0", + "src": "8418:154:4", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", "typeString": "uint256[2] memory" @@ -8839,49 +8839,49 @@ "components": [ { "argumentTypes": null, - "hexValue": "38393931353039363335383036303539323231393035303038373737353937373934333339373930363730303630313733323538303839343433393039323738393832333936343930353737", - "id": 649, + "hexValue": "3135303734373437333331343536383439313231303431343737393938303638373935333431333536353034313634353534333632393232383835383632323839303237393430393030343830", + "id": 1677, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "8576:76:0", + "src": "8575:77:4", "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_rational_8991509635806059221905008777597794339790670060173258089443909278982396490577_by_1", - "typeString": "int_const 8991...(68 digits omitted)...0577" + "typeIdentifier": "t_rational_15074747331456849121041477998068795341356504164554362922885862289027940900480_by_1", + "typeString": "int_const 1507...(69 digits omitted)...0480" }, - "value": "8991509635806059221905008777597794339790670060173258089443909278982396490577" + "value": "15074747331456849121041477998068795341356504164554362922885862289027940900480" }, { "argumentTypes": null, - "hexValue": "34363931313731303731393937393139373937313332303237323031383333303733303638353134393134353032333335363439393937353131383330363133393239313236363630313238", - "id": 650, + "hexValue": "34353531373137333338363135373631373236383834353535373239383135373337323430393437323334323632303338363737393835393536383434313839323430393038363935363536", + "id": 1678, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "8653:76:0", + "src": "8653:76:4", "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_rational_4691171071997919797132027201833073068514914502335649997511830613929126660128_by_1", - "typeString": "int_const 4691...(68 digits omitted)...0128" + "typeIdentifier": "t_rational_4551717338615761726884555729815737240947234262038677985956844189240908695656_by_1", + "typeString": "int_const 4551...(68 digits omitted)...5656" }, - "value": "4691171071997919797132027201833073068514914502335649997511830613929126660128" + "value": "4551717338615761726884555729815737240947234262038677985956844189240908695656" } ], - "id": 651, + "id": 1679, "isConstant": false, "isInlineArray": true, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "8575:155:0", + "src": "8574:156:4", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", "typeString": "uint256[2] memory" @@ -8901,32 +8901,32 @@ ], "expression": { "argumentTypes": null, - "id": 644, + "id": 1672, "name": "Pairing", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 577, - "src": "8402:7:0", + "referencedDeclaration": 1605, + "src": "8402:7:4", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Pairing_$577_$", + "typeIdentifier": "t_type$_t_contract$_Pairing_$1605_$", "typeString": "type(library Pairing)" } }, - "id": 645, + "id": 1673, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "G2Point", "nodeType": "MemberAccess", - "referencedDeclaration": 15, - "src": "8402:15:0", + "referencedDeclaration": 1043, + "src": "8402:15:4", "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_G2Point_$15_storage_ptr_$", + "typeIdentifier": "t_type$_t_struct$_G2Point_$1043_storage_ptr_$", "typeString": "type(struct Pairing.G2Point storage pointer)" } }, - "id": 652, + "id": 1680, "isConstant": false, "isLValue": false, "isPure": true, @@ -8934,26 +8934,26 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8402:329:0", + "src": "8402:329:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G2Point_$15_memory", + "typeIdentifier": "t_struct$_G2Point_$1043_memory", "typeString": "struct Pairing.G2Point memory" } }, - "src": "8390:341:0", + "src": "8390:341:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G2Point_$15_memory", + "typeIdentifier": "t_struct$_G2Point_$1043_memory", "typeString": "struct Pairing.G2Point memory" } }, - "id": 654, + "id": 1682, "nodeType": "ExpressionStatement", - "src": "8390:341:0" + "src": "8390:341:4" }, { "expression": { "argumentTypes": null, - "id": 663, + "id": 1691, "isConstant": false, "isLValue": false, "isPure": false, @@ -8962,28 +8962,28 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 655, + "id": 1683, "name": "vk", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 601, - "src": "8741:2:0", + "referencedDeclaration": 1629, + "src": "8741:2:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_VerifyingKey_$591_memory_ptr", + "typeIdentifier": "t_struct$_VerifyingKey_$1619_memory_ptr", "typeString": "struct Verifier.VerifyingKey memory" } }, - "id": 657, + "id": 1685, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberName": "IC", "nodeType": "MemberAccess", - "referencedDeclaration": 590, - "src": "8741:5:0", + "referencedDeclaration": 1618, + "src": "8741:5:4", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_G1Point_$6_memory_$dyn_memory", + "typeIdentifier": "t_array$_t_struct$_G1Point_$1034_memory_$dyn_memory", "typeString": "struct Pairing.G1Point memory[] memory" } }, @@ -8995,14 +8995,14 @@ { "argumentTypes": null, "hexValue": "37", - "id": 661, + "id": 1689, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "8771:1:0", + "src": "8771:1:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_7_by_1", @@ -9018,41 +9018,41 @@ "typeString": "int_const 7" } ], - "id": 660, + "id": 1688, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "NewExpression", - "src": "8749:21:0", + "src": "8749:21:4", "typeDescriptions": { - "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_G1Point_$6_memory_$dyn_memory_$", + "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_G1Point_$1034_memory_$dyn_memory_$", "typeString": "function (uint256) pure returns (struct Pairing.G1Point memory[] memory)" }, "typeName": { "baseType": { "contractScope": null, - "id": 658, + "id": 1686, "name": "Pairing.G1Point", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 6, - "src": "8753:15:0", + "referencedDeclaration": 1034, + "src": "8753:15:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_storage_ptr", + "typeIdentifier": "t_struct$_G1Point_$1034_storage_ptr", "typeString": "struct Pairing.G1Point" } }, - "id": 659, + "id": 1687, "length": null, "nodeType": "ArrayTypeName", - "src": "8753:17:0", + "src": "8753:17:4", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_G1Point_$6_storage_$dyn_storage_ptr", + "typeIdentifier": "t_array$_t_struct$_G1Point_$1034_storage_$dyn_storage_ptr", "typeString": "struct Pairing.G1Point[]" } } }, - "id": 662, + "id": 1690, "isConstant": false, "isLValue": false, "isPure": true, @@ -9060,26 +9060,26 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8749:24:0", + "src": "8749:24:4", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_G1Point_$6_memory_$dyn_memory", + "typeIdentifier": "t_array$_t_struct$_G1Point_$1034_memory_$dyn_memory", "typeString": "struct Pairing.G1Point memory[] memory" } }, - "src": "8741:32:0", + "src": "8741:32:4", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_G1Point_$6_memory_$dyn_memory", + "typeIdentifier": "t_array$_t_struct$_G1Point_$1034_memory_$dyn_memory", "typeString": "struct Pairing.G1Point memory[] memory" } }, - "id": 664, + "id": 1692, "nodeType": "ExpressionStatement", - "src": "8741:32:0" + "src": "8741:32:4" }, { "expression": { "argumentTypes": null, - "id": 675, + "id": 1703, "isConstant": false, "isLValue": false, "isPure": false, @@ -9090,43 +9090,43 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 665, + "id": 1693, "name": "vk", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 601, - "src": "8783:2:0", + "referencedDeclaration": 1629, + "src": "8783:2:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_VerifyingKey_$591_memory_ptr", + "typeIdentifier": "t_struct$_VerifyingKey_$1619_memory_ptr", "typeString": "struct Verifier.VerifyingKey memory" } }, - "id": 668, + "id": 1696, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "IC", "nodeType": "MemberAccess", - "referencedDeclaration": 590, - "src": "8783:5:0", + "referencedDeclaration": 1618, + "src": "8783:5:4", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_G1Point_$6_memory_$dyn_memory", + "typeIdentifier": "t_array$_t_struct$_G1Point_$1034_memory_$dyn_memory", "typeString": "struct Pairing.G1Point memory[] memory" } }, - "id": 669, + "id": 1697, "indexExpression": { "argumentTypes": null, "hexValue": "30", - "id": 667, + "id": 1695, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "8789:1:0", + "src": "8789:1:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -9139,9 +9139,9 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "8783:8:0", + "src": "8783:8:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_memory", + "typeIdentifier": "t_struct$_G1Point_$1034_memory", "typeString": "struct Pairing.G1Point memory" } }, @@ -9152,80 +9152,80 @@ "arguments": [ { "argumentTypes": null, - "hexValue": "3135343933333432343130343334393336373535363331353739343733343634343039303833393233373730333036353633383135373538343830393533343839333930313836383837373732", - "id": 672, + "hexValue": "33323830313531333534383537373031313034383035383135313037333432393237303036383831353631313838313831343836303439333530313439303536383032373838393032323737", + "id": 1700, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "8810:77:0", + "src": "8810:76:4", "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_rational_15493342410434936755631579473464409083923770306563815758480953489390186887772_by_1", - "typeString": "int_const 1549...(69 digits omitted)...7772" + "typeIdentifier": "t_rational_3280151354857701104805815107342927006881561188181486049350149056802788902277_by_1", + "typeString": "int_const 3280...(68 digits omitted)...2277" }, - "value": "15493342410434936755631579473464409083923770306563815758480953489390186887772" + "value": "3280151354857701104805815107342927006881561188181486049350149056802788902277" }, { "argumentTypes": null, - "hexValue": "37373533393935363439373134393030363636323038323636313436353039383730363036373832303135363630313131343538323137323533303138323834393037323939393130383938", - "id": 673, + "hexValue": "34303936323035383634323834323436383932373836393432343931363230383936353231353434393338303538393531333738343038373733313734383931333232303937333136393133", + "id": 1701, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "8888:76:0", + "src": "8887:76:4", "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_rational_7753995649714900666208266146509870606782015660111458217253018284907299910898_by_1", - "typeString": "int_const 7753...(68 digits omitted)...0898" + "typeIdentifier": "t_rational_4096205864284246892786942491620896521544938058951378408773174891322097316913_by_1", + "typeString": "int_const 4096...(68 digits omitted)...6913" }, - "value": "7753995649714900666208266146509870606782015660111458217253018284907299910898" + "value": "4096205864284246892786942491620896521544938058951378408773174891322097316913" } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_rational_15493342410434936755631579473464409083923770306563815758480953489390186887772_by_1", - "typeString": "int_const 1549...(69 digits omitted)...7772" + "typeIdentifier": "t_rational_3280151354857701104805815107342927006881561188181486049350149056802788902277_by_1", + "typeString": "int_const 3280...(68 digits omitted)...2277" }, { - "typeIdentifier": "t_rational_7753995649714900666208266146509870606782015660111458217253018284907299910898_by_1", - "typeString": "int_const 7753...(68 digits omitted)...0898" + "typeIdentifier": "t_rational_4096205864284246892786942491620896521544938058951378408773174891322097316913_by_1", + "typeString": "int_const 4096...(68 digits omitted)...6913" } ], "expression": { "argumentTypes": null, - "id": 670, + "id": 1698, "name": "Pairing", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 577, - "src": "8794:7:0", + "referencedDeclaration": 1605, + "src": "8794:7:4", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Pairing_$577_$", + "typeIdentifier": "t_type$_t_contract$_Pairing_$1605_$", "typeString": "type(library Pairing)" } }, - "id": 671, + "id": 1699, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "G1Point", "nodeType": "MemberAccess", - "referencedDeclaration": 6, - "src": "8794:15:0", + "referencedDeclaration": 1034, + "src": "8794:15:4", "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_G1Point_$6_storage_ptr_$", + "typeIdentifier": "t_type$_t_struct$_G1Point_$1034_storage_ptr_$", "typeString": "type(struct Pairing.G1Point storage pointer)" } }, - "id": 674, + "id": 1702, "isConstant": false, "isLValue": false, "isPure": true, @@ -9233,26 +9233,26 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8794:171:0", + "src": "8794:170:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_memory", + "typeIdentifier": "t_struct$_G1Point_$1034_memory", "typeString": "struct Pairing.G1Point memory" } }, - "src": "8783:182:0", + "src": "8783:181:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_memory", + "typeIdentifier": "t_struct$_G1Point_$1034_memory", "typeString": "struct Pairing.G1Point memory" } }, - "id": 676, + "id": 1704, "nodeType": "ExpressionStatement", - "src": "8783:182:0" + "src": "8783:181:4" }, { "expression": { "argumentTypes": null, - "id": 687, + "id": 1715, "isConstant": false, "isLValue": false, "isPure": false, @@ -9263,43 +9263,43 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 677, + "id": 1705, "name": "vk", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 601, - "src": "8975:2:0", + "referencedDeclaration": 1629, + "src": "8974:2:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_VerifyingKey_$591_memory_ptr", + "typeIdentifier": "t_struct$_VerifyingKey_$1619_memory_ptr", "typeString": "struct Verifier.VerifyingKey memory" } }, - "id": 680, + "id": 1708, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "IC", "nodeType": "MemberAccess", - "referencedDeclaration": 590, - "src": "8975:5:0", + "referencedDeclaration": 1618, + "src": "8974:5:4", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_G1Point_$6_memory_$dyn_memory", + "typeIdentifier": "t_array$_t_struct$_G1Point_$1034_memory_$dyn_memory", "typeString": "struct Pairing.G1Point memory[] memory" } }, - "id": 681, + "id": 1709, "indexExpression": { "argumentTypes": null, "hexValue": "31", - "id": 679, + "id": 1707, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "8981:1:0", + "src": "8980:1:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -9312,9 +9312,9 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "8975:8:0", + "src": "8974:8:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_memory", + "typeIdentifier": "t_struct$_G1Point_$1034_memory", "typeString": "struct Pairing.G1Point memory" } }, @@ -9325,80 +9325,80 @@ "arguments": [ { "argumentTypes": null, - "hexValue": "3139323936303131303035323634373134303333373138333531343933353337313732343633353730363837383631373230333733323732303037393138373335303731343239303735373436", - "id": 684, + "hexValue": "383836303735323532373333333030333330383639393530343938303636323532383034303237323435333332313838373337303839383939353631393239313830363938393330373938", + "id": 1712, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "9002:77:0", + "src": "9001:75:4", "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_rational_19296011005264714033718351493537172463570687861720373272007918735071429075746_by_1", - "typeString": "int_const 1929...(69 digits omitted)...5746" + "typeIdentifier": "t_rational_886075252733300330869950498066252804027245332188737089899561929180698930798_by_1", + "typeString": "int_const 8860...(67 digits omitted)...0798" }, - "value": "19296011005264714033718351493537172463570687861720373272007918735071429075746" + "value": "886075252733300330869950498066252804027245332188737089899561929180698930798" }, { "argumentTypes": null, - "hexValue": "3136323034353939383633353430303133373631373734363734363236393035363338303635353931323132323234353131383435363436323437393432323934313437373134363532373833", - "id": 685, + "hexValue": "3135353730323334323239313531373538313334313133303035333132393134303335303733343436393735343730363536313833303930323135333436383638363737303931323133303035", + "id": 1713, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "9080:77:0", + "src": "9077:77:4", "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_rational_16204599863540013761774674626905638065591212224511845646247942294147714652783_by_1", - "typeString": "int_const 1620...(69 digits omitted)...2783" + "typeIdentifier": "t_rational_15570234229151758134113005312914035073446975470656183090215346868677091213005_by_1", + "typeString": "int_const 1557...(69 digits omitted)...3005" }, - "value": "16204599863540013761774674626905638065591212224511845646247942294147714652783" + "value": "15570234229151758134113005312914035073446975470656183090215346868677091213005" } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_rational_19296011005264714033718351493537172463570687861720373272007918735071429075746_by_1", - "typeString": "int_const 1929...(69 digits omitted)...5746" + "typeIdentifier": "t_rational_886075252733300330869950498066252804027245332188737089899561929180698930798_by_1", + "typeString": "int_const 8860...(67 digits omitted)...0798" }, { - "typeIdentifier": "t_rational_16204599863540013761774674626905638065591212224511845646247942294147714652783_by_1", - "typeString": "int_const 1620...(69 digits omitted)...2783" + "typeIdentifier": "t_rational_15570234229151758134113005312914035073446975470656183090215346868677091213005_by_1", + "typeString": "int_const 1557...(69 digits omitted)...3005" } ], "expression": { "argumentTypes": null, - "id": 682, + "id": 1710, "name": "Pairing", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 577, - "src": "8986:7:0", + "referencedDeclaration": 1605, + "src": "8985:7:4", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Pairing_$577_$", + "typeIdentifier": "t_type$_t_contract$_Pairing_$1605_$", "typeString": "type(library Pairing)" } }, - "id": 683, + "id": 1711, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "G1Point", "nodeType": "MemberAccess", - "referencedDeclaration": 6, - "src": "8986:15:0", + "referencedDeclaration": 1034, + "src": "8985:15:4", "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_G1Point_$6_storage_ptr_$", + "typeIdentifier": "t_type$_t_struct$_G1Point_$1034_storage_ptr_$", "typeString": "type(struct Pairing.G1Point storage pointer)" } }, - "id": 686, + "id": 1714, "isConstant": false, "isLValue": false, "isPure": true, @@ -9406,26 +9406,26 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8986:172:0", + "src": "8985:170:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_memory", + "typeIdentifier": "t_struct$_G1Point_$1034_memory", "typeString": "struct Pairing.G1Point memory" } }, - "src": "8975:183:0", + "src": "8974:181:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_memory", + "typeIdentifier": "t_struct$_G1Point_$1034_memory", "typeString": "struct Pairing.G1Point memory" } }, - "id": 688, + "id": 1716, "nodeType": "ExpressionStatement", - "src": "8975:183:0" + "src": "8974:181:4" }, { "expression": { "argumentTypes": null, - "id": 699, + "id": 1727, "isConstant": false, "isLValue": false, "isPure": false, @@ -9436,43 +9436,43 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 689, + "id": 1717, "name": "vk", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 601, - "src": "9168:2:0", + "referencedDeclaration": 1629, + "src": "9165:2:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_VerifyingKey_$591_memory_ptr", + "typeIdentifier": "t_struct$_VerifyingKey_$1619_memory_ptr", "typeString": "struct Verifier.VerifyingKey memory" } }, - "id": 692, + "id": 1720, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "IC", "nodeType": "MemberAccess", - "referencedDeclaration": 590, - "src": "9168:5:0", + "referencedDeclaration": 1618, + "src": "9165:5:4", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_G1Point_$6_memory_$dyn_memory", + "typeIdentifier": "t_array$_t_struct$_G1Point_$1034_memory_$dyn_memory", "typeString": "struct Pairing.G1Point memory[] memory" } }, - "id": 693, + "id": 1721, "indexExpression": { "argumentTypes": null, "hexValue": "32", - "id": 691, + "id": 1719, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "9174:1:0", + "src": "9171:1:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_2_by_1", @@ -9485,9 +9485,9 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "9168:8:0", + "src": "9165:8:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_memory", + "typeIdentifier": "t_struct$_G1Point_$1034_memory", "typeString": "struct Pairing.G1Point memory" } }, @@ -9498,80 +9498,80 @@ "arguments": [ { "argumentTypes": null, - "hexValue": "36383030313331313633303935383531373631363234343732363536333831353337303136363331393135393830353739353133363433343736333032393636313233363339393832393336", - "id": 696, + "hexValue": "34383033393131353239323239393231323433383139313135393338383134363234363938303131373034333237353731383136363537333638323539363535323633383130393130343234", + "id": 1724, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "9195:76:0", + "src": "9192:76:4", "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_rational_6800131163095851761624472656381537016631915980579513643476302966123639982936_by_1", - "typeString": "int_const 6800...(68 digits omitted)...2936" + "typeIdentifier": "t_rational_4803911529229921243819115938814624698011704327571816657368259655263810910424_by_1", + "typeString": "int_const 4803...(68 digits omitted)...0424" }, - "value": "6800131163095851761624472656381537016631915980579513643476302966123639982936" + "value": "4803911529229921243819115938814624698011704327571816657368259655263810910424" }, { "argumentTypes": null, - "hexValue": "36313837353533363433363135353931373737303634343737373738333732323130343432383031313836373033373035313735333334333433383133343132323833383137373233323538", - "id": 697, + "hexValue": "39343231353231313338353734323734323435393136343439353936373937363639333239333837303436343434333438333535333833383939363736383030343536323032303339303535", + "id": 1725, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "9272:76:0", + "src": "9269:76:4", "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_rational_6187553643615591777064477778372210442801186703705175334343813412283817723258_by_1", - "typeString": "int_const 6187...(68 digits omitted)...3258" + "typeIdentifier": "t_rational_9421521138574274245916449596797669329387046444348355383899676800456202039055_by_1", + "typeString": "int_const 9421...(68 digits omitted)...9055" }, - "value": "6187553643615591777064477778372210442801186703705175334343813412283817723258" + "value": "9421521138574274245916449596797669329387046444348355383899676800456202039055" } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_rational_6800131163095851761624472656381537016631915980579513643476302966123639982936_by_1", - "typeString": "int_const 6800...(68 digits omitted)...2936" + "typeIdentifier": "t_rational_4803911529229921243819115938814624698011704327571816657368259655263810910424_by_1", + "typeString": "int_const 4803...(68 digits omitted)...0424" }, { - "typeIdentifier": "t_rational_6187553643615591777064477778372210442801186703705175334343813412283817723258_by_1", - "typeString": "int_const 6187...(68 digits omitted)...3258" + "typeIdentifier": "t_rational_9421521138574274245916449596797669329387046444348355383899676800456202039055_by_1", + "typeString": "int_const 9421...(68 digits omitted)...9055" } ], "expression": { "argumentTypes": null, - "id": 694, + "id": 1722, "name": "Pairing", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 577, - "src": "9179:7:0", + "referencedDeclaration": 1605, + "src": "9176:7:4", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Pairing_$577_$", + "typeIdentifier": "t_type$_t_contract$_Pairing_$1605_$", "typeString": "type(library Pairing)" } }, - "id": 695, + "id": 1723, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "G1Point", "nodeType": "MemberAccess", - "referencedDeclaration": 6, - "src": "9179:15:0", + "referencedDeclaration": 1034, + "src": "9176:15:4", "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_G1Point_$6_storage_ptr_$", + "typeIdentifier": "t_type$_t_struct$_G1Point_$1034_storage_ptr_$", "typeString": "type(struct Pairing.G1Point storage pointer)" } }, - "id": 698, + "id": 1726, "isConstant": false, "isLValue": false, "isPure": true, @@ -9579,26 +9579,26 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "9179:170:0", + "src": "9176:170:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_memory", + "typeIdentifier": "t_struct$_G1Point_$1034_memory", "typeString": "struct Pairing.G1Point memory" } }, - "src": "9168:181:0", + "src": "9165:181:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_memory", + "typeIdentifier": "t_struct$_G1Point_$1034_memory", "typeString": "struct Pairing.G1Point memory" } }, - "id": 700, + "id": 1728, "nodeType": "ExpressionStatement", - "src": "9168:181:0" + "src": "9165:181:4" }, { "expression": { "argumentTypes": null, - "id": 711, + "id": 1739, "isConstant": false, "isLValue": false, "isPure": false, @@ -9609,43 +9609,43 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 701, + "id": 1729, "name": "vk", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 601, - "src": "9359:2:0", + "referencedDeclaration": 1629, + "src": "9356:2:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_VerifyingKey_$591_memory_ptr", + "typeIdentifier": "t_struct$_VerifyingKey_$1619_memory_ptr", "typeString": "struct Verifier.VerifyingKey memory" } }, - "id": 704, + "id": 1732, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "IC", "nodeType": "MemberAccess", - "referencedDeclaration": 590, - "src": "9359:5:0", + "referencedDeclaration": 1618, + "src": "9356:5:4", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_G1Point_$6_memory_$dyn_memory", + "typeIdentifier": "t_array$_t_struct$_G1Point_$1034_memory_$dyn_memory", "typeString": "struct Pairing.G1Point memory[] memory" } }, - "id": 705, + "id": 1733, "indexExpression": { "argumentTypes": null, "hexValue": "33", - "id": 703, + "id": 1731, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "9365:1:0", + "src": "9362:1:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_3_by_1", @@ -9658,9 +9658,9 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "9359:8:0", + "src": "9356:8:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_memory", + "typeIdentifier": "t_struct$_G1Point_$1034_memory", "typeString": "struct Pairing.G1Point memory" } }, @@ -9671,80 +9671,80 @@ "arguments": [ { "argumentTypes": null, - "hexValue": "34353837323336323736383737373539363635333137343331313235313934313534373935363032353731383930393832323434323839303234383331323939333236333834333936313232", - "id": 708, + "hexValue": "38353536353336313534303935393631383730363739343834393835383731383830353631393033353532383931323331363633383031343533313138343333393036323038323038363334", + "id": 1736, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "9386:76:0", + "src": "9383:76:4", "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_rational_4587236276877759665317431125194154795602571890982244289024831299326384396122_by_1", - "typeString": "int_const 4587...(68 digits omitted)...6122" + "typeIdentifier": "t_rational_8556536154095961870679484985871880561903552891231663801453118433906208208634_by_1", + "typeString": "int_const 8556...(68 digits omitted)...8634" }, - "value": "4587236276877759665317431125194154795602571890982244289024831299326384396122" + "value": "8556536154095961870679484985871880561903552891231663801453118433906208208634" }, { "argumentTypes": null, - "hexValue": "3131393635343033343830393537383032323236393138393432343235343230303237313031333437303135393832303132373537393931323632383033323137343632383330343537393838", - "id": 709, + "hexValue": "33303530363031343736383239393433353031393638303530333336393233303132323937333834333532383930353038323639303633333033383838373337313339343836393138343431", + "id": 1737, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "9463:77:0", + "src": "9460:76:4", "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_rational_11965403480957802226918942425420027101347015982012757991262803217462830457988_by_1", - "typeString": "int_const 1196...(69 digits omitted)...7988" + "typeIdentifier": "t_rational_3050601476829943501968050336923012297384352890508269063303888737139486918441_by_1", + "typeString": "int_const 3050...(68 digits omitted)...8441" }, - "value": "11965403480957802226918942425420027101347015982012757991262803217462830457988" + "value": "3050601476829943501968050336923012297384352890508269063303888737139486918441" } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_rational_4587236276877759665317431125194154795602571890982244289024831299326384396122_by_1", - "typeString": "int_const 4587...(68 digits omitted)...6122" + "typeIdentifier": "t_rational_8556536154095961870679484985871880561903552891231663801453118433906208208634_by_1", + "typeString": "int_const 8556...(68 digits omitted)...8634" }, { - "typeIdentifier": "t_rational_11965403480957802226918942425420027101347015982012757991262803217462830457988_by_1", - "typeString": "int_const 1196...(69 digits omitted)...7988" + "typeIdentifier": "t_rational_3050601476829943501968050336923012297384352890508269063303888737139486918441_by_1", + "typeString": "int_const 3050...(68 digits omitted)...8441" } ], "expression": { "argumentTypes": null, - "id": 706, + "id": 1734, "name": "Pairing", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 577, - "src": "9370:7:0", + "referencedDeclaration": 1605, + "src": "9367:7:4", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Pairing_$577_$", + "typeIdentifier": "t_type$_t_contract$_Pairing_$1605_$", "typeString": "type(library Pairing)" } }, - "id": 707, + "id": 1735, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "G1Point", "nodeType": "MemberAccess", - "referencedDeclaration": 6, - "src": "9370:15:0", + "referencedDeclaration": 1034, + "src": "9367:15:4", "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_G1Point_$6_storage_ptr_$", + "typeIdentifier": "t_type$_t_struct$_G1Point_$1034_storage_ptr_$", "typeString": "type(struct Pairing.G1Point storage pointer)" } }, - "id": 710, + "id": 1738, "isConstant": false, "isLValue": false, "isPure": true, @@ -9752,26 +9752,26 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "9370:171:0", + "src": "9367:170:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_memory", + "typeIdentifier": "t_struct$_G1Point_$1034_memory", "typeString": "struct Pairing.G1Point memory" } }, - "src": "9359:182:0", + "src": "9356:181:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_memory", + "typeIdentifier": "t_struct$_G1Point_$1034_memory", "typeString": "struct Pairing.G1Point memory" } }, - "id": 712, + "id": 1740, "nodeType": "ExpressionStatement", - "src": "9359:182:0" + "src": "9356:181:4" }, { "expression": { "argumentTypes": null, - "id": 723, + "id": 1751, "isConstant": false, "isLValue": false, "isPure": false, @@ -9782,43 +9782,43 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 713, + "id": 1741, "name": "vk", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 601, - "src": "9551:2:0", + "referencedDeclaration": 1629, + "src": "9547:2:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_VerifyingKey_$591_memory_ptr", + "typeIdentifier": "t_struct$_VerifyingKey_$1619_memory_ptr", "typeString": "struct Verifier.VerifyingKey memory" } }, - "id": 716, + "id": 1744, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "IC", "nodeType": "MemberAccess", - "referencedDeclaration": 590, - "src": "9551:5:0", + "referencedDeclaration": 1618, + "src": "9547:5:4", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_G1Point_$6_memory_$dyn_memory", + "typeIdentifier": "t_array$_t_struct$_G1Point_$1034_memory_$dyn_memory", "typeString": "struct Pairing.G1Point memory[] memory" } }, - "id": 717, + "id": 1745, "indexExpression": { "argumentTypes": null, "hexValue": "34", - "id": 715, + "id": 1743, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "9557:1:0", + "src": "9553:1:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_4_by_1", @@ -9831,9 +9831,9 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "9551:8:0", + "src": "9547:8:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_memory", + "typeIdentifier": "t_struct$_G1Point_$1034_memory", "typeString": "struct Pairing.G1Point memory" } }, @@ -9844,80 +9844,80 @@ "arguments": [ { "argumentTypes": null, - "hexValue": "36343234353737333438353935333535313136323734343034313236323631383435383234393238333733363331333539333833323036373739383335303536363834373437323837343332", - "id": 720, + "hexValue": "333030393730353537343834353138303730343932353331313735373134373838393132313331323433333434323632383035343737323636383036303634313236393538393239303335", + "id": 1748, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "9578:76:0", + "src": "9574:75:4", "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_rational_6424577348595355116274404126261845824928373631359383206779835056684747287432_by_1", - "typeString": "int_const 6424...(68 digits omitted)...7432" + "typeIdentifier": "t_rational_300970557484518070492531175714788912131243344262805477266806064126958929035_by_1", + "typeString": "int_const 3009...(67 digits omitted)...9035" }, - "value": "6424577348595355116274404126261845824928373631359383206779835056684747287432" + "value": "300970557484518070492531175714788912131243344262805477266806064126958929035" }, { "argumentTypes": null, - "hexValue": "35303638393235333433373339363835343837383431333837343331363731383630323735303336373231313437323530393538383636303438393531333837383430383534363831343839", - "id": 721, + "hexValue": "37333938353330373831333739383730393035393232323437363334373338393536333536333732333236323433303136383433353530343236303834383632383831323035383633343437", + "id": 1749, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "9655:76:0", + "src": "9650:76:4", "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_rational_5068925343739685487841387431671860275036721147250958866048951387840854681489_by_1", - "typeString": "int_const 5068...(68 digits omitted)...1489" + "typeIdentifier": "t_rational_7398530781379870905922247634738956356372326243016843550426084862881205863447_by_1", + "typeString": "int_const 7398...(68 digits omitted)...3447" }, - "value": "5068925343739685487841387431671860275036721147250958866048951387840854681489" + "value": "7398530781379870905922247634738956356372326243016843550426084862881205863447" } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_rational_6424577348595355116274404126261845824928373631359383206779835056684747287432_by_1", - "typeString": "int_const 6424...(68 digits omitted)...7432" + "typeIdentifier": "t_rational_300970557484518070492531175714788912131243344262805477266806064126958929035_by_1", + "typeString": "int_const 3009...(67 digits omitted)...9035" }, { - "typeIdentifier": "t_rational_5068925343739685487841387431671860275036721147250958866048951387840854681489_by_1", - "typeString": "int_const 5068...(68 digits omitted)...1489" + "typeIdentifier": "t_rational_7398530781379870905922247634738956356372326243016843550426084862881205863447_by_1", + "typeString": "int_const 7398...(68 digits omitted)...3447" } ], "expression": { "argumentTypes": null, - "id": 718, + "id": 1746, "name": "Pairing", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 577, - "src": "9562:7:0", + "referencedDeclaration": 1605, + "src": "9558:7:4", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Pairing_$577_$", + "typeIdentifier": "t_type$_t_contract$_Pairing_$1605_$", "typeString": "type(library Pairing)" } }, - "id": 719, + "id": 1747, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "G1Point", "nodeType": "MemberAccess", - "referencedDeclaration": 6, - "src": "9562:15:0", + "referencedDeclaration": 1034, + "src": "9558:15:4", "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_G1Point_$6_storage_ptr_$", + "typeIdentifier": "t_type$_t_struct$_G1Point_$1034_storage_ptr_$", "typeString": "type(struct Pairing.G1Point storage pointer)" } }, - "id": 722, + "id": 1750, "isConstant": false, "isLValue": false, "isPure": true, @@ -9925,26 +9925,26 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "9562:170:0", + "src": "9558:169:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_memory", + "typeIdentifier": "t_struct$_G1Point_$1034_memory", "typeString": "struct Pairing.G1Point memory" } }, - "src": "9551:181:0", + "src": "9547:180:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_memory", + "typeIdentifier": "t_struct$_G1Point_$1034_memory", "typeString": "struct Pairing.G1Point memory" } }, - "id": 724, + "id": 1752, "nodeType": "ExpressionStatement", - "src": "9551:181:0" + "src": "9547:180:4" }, { "expression": { "argumentTypes": null, - "id": 735, + "id": 1763, "isConstant": false, "isLValue": false, "isPure": false, @@ -9955,43 +9955,43 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 725, + "id": 1753, "name": "vk", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 601, - "src": "9742:2:0", + "referencedDeclaration": 1629, + "src": "9737:2:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_VerifyingKey_$591_memory_ptr", + "typeIdentifier": "t_struct$_VerifyingKey_$1619_memory_ptr", "typeString": "struct Verifier.VerifyingKey memory" } }, - "id": 728, + "id": 1756, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "IC", "nodeType": "MemberAccess", - "referencedDeclaration": 590, - "src": "9742:5:0", + "referencedDeclaration": 1618, + "src": "9737:5:4", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_G1Point_$6_memory_$dyn_memory", + "typeIdentifier": "t_array$_t_struct$_G1Point_$1034_memory_$dyn_memory", "typeString": "struct Pairing.G1Point memory[] memory" } }, - "id": 729, + "id": 1757, "indexExpression": { "argumentTypes": null, "hexValue": "35", - "id": 727, + "id": 1755, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "9748:1:0", + "src": "9743:1:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_5_by_1", @@ -10004,9 +10004,9 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "9742:8:0", + "src": "9737:8:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_memory", + "typeIdentifier": "t_struct$_G1Point_$1034_memory", "typeString": "struct Pairing.G1Point memory" } }, @@ -10017,80 +10017,80 @@ "arguments": [ { "argumentTypes": null, - "hexValue": "33343135383433353438353734353635383239333139343432343038363736383133353232333139393431303539353635363436383831303836303334363935363435353135383733303634", - "id": 732, + "hexValue": "3139393230303939323337373932383637343039363933313234343135303232313030353239343837303132393632383431363432383230363736353637353039323632353037313933313037", + "id": 1760, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "9769:76:0", + "src": "9764:77:4", "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_rational_3415843548574565829319442408676813522319941059565646881086034695645515873064_by_1", - "typeString": "int_const 3415...(68 digits omitted)...3064" + "typeIdentifier": "t_rational_19920099237792867409693124415022100529487012962841642820676567509262507193107_by_1", + "typeString": "int_const 1992...(69 digits omitted)...3107" }, - "value": "3415843548574565829319442408676813522319941059565646881086034695645515873064" + "value": "19920099237792867409693124415022100529487012962841642820676567509262507193107" }, { "argumentTypes": null, - "hexValue": "35383833343839313538333739343432333339393830373631323131343630313932363035313830383933393937383736323533343631303830353237303333383531393932303437333935", - "id": 733, + "hexValue": "3230323139353434303039353933333839323938373133373736363732313438393038393036303834303037333030373839323932313638333839373837373231373431343530393132303338", + "id": 1761, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "9846:76:0", + "src": "9842:77:4", "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_rational_5883489158379442339980761211460192605180893997876253461080527033851992047395_by_1", - "typeString": "int_const 5883...(68 digits omitted)...7395" + "typeIdentifier": "t_rational_20219544009593389298713776672148908906084007300789292168389787721741450912038_by_1", + "typeString": "int_const 2021...(69 digits omitted)...2038" }, - "value": "5883489158379442339980761211460192605180893997876253461080527033851992047395" + "value": "20219544009593389298713776672148908906084007300789292168389787721741450912038" } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_rational_3415843548574565829319442408676813522319941059565646881086034695645515873064_by_1", - "typeString": "int_const 3415...(68 digits omitted)...3064" + "typeIdentifier": "t_rational_19920099237792867409693124415022100529487012962841642820676567509262507193107_by_1", + "typeString": "int_const 1992...(69 digits omitted)...3107" }, { - "typeIdentifier": "t_rational_5883489158379442339980761211460192605180893997876253461080527033851992047395_by_1", - "typeString": "int_const 5883...(68 digits omitted)...7395" + "typeIdentifier": "t_rational_20219544009593389298713776672148908906084007300789292168389787721741450912038_by_1", + "typeString": "int_const 2021...(69 digits omitted)...2038" } ], "expression": { "argumentTypes": null, - "id": 730, + "id": 1758, "name": "Pairing", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 577, - "src": "9753:7:0", + "referencedDeclaration": 1605, + "src": "9748:7:4", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Pairing_$577_$", + "typeIdentifier": "t_type$_t_contract$_Pairing_$1605_$", "typeString": "type(library Pairing)" } }, - "id": 731, + "id": 1759, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "G1Point", "nodeType": "MemberAccess", - "referencedDeclaration": 6, - "src": "9753:15:0", + "referencedDeclaration": 1034, + "src": "9748:15:4", "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_G1Point_$6_storage_ptr_$", + "typeIdentifier": "t_type$_t_struct$_G1Point_$1034_storage_ptr_$", "typeString": "type(struct Pairing.G1Point storage pointer)" } }, - "id": 734, + "id": 1762, "isConstant": false, "isLValue": false, "isPure": true, @@ -10098,26 +10098,26 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "9753:170:0", + "src": "9748:172:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_memory", + "typeIdentifier": "t_struct$_G1Point_$1034_memory", "typeString": "struct Pairing.G1Point memory" } }, - "src": "9742:181:0", + "src": "9737:183:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_memory", + "typeIdentifier": "t_struct$_G1Point_$1034_memory", "typeString": "struct Pairing.G1Point memory" } }, - "id": 736, + "id": 1764, "nodeType": "ExpressionStatement", - "src": "9742:181:0" + "src": "9737:183:4" }, { "expression": { "argumentTypes": null, - "id": 747, + "id": 1775, "isConstant": false, "isLValue": false, "isPure": false, @@ -10128,43 +10128,43 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 737, + "id": 1765, "name": "vk", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 601, - "src": "9933:2:0", + "referencedDeclaration": 1629, + "src": "9930:2:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_VerifyingKey_$591_memory_ptr", + "typeIdentifier": "t_struct$_VerifyingKey_$1619_memory_ptr", "typeString": "struct Verifier.VerifyingKey memory" } }, - "id": 740, + "id": 1768, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "IC", "nodeType": "MemberAccess", - "referencedDeclaration": 590, - "src": "9933:5:0", + "referencedDeclaration": 1618, + "src": "9930:5:4", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_G1Point_$6_memory_$dyn_memory", + "typeIdentifier": "t_array$_t_struct$_G1Point_$1034_memory_$dyn_memory", "typeString": "struct Pairing.G1Point memory[] memory" } }, - "id": 741, + "id": 1769, "indexExpression": { "argumentTypes": null, "hexValue": "36", - "id": 739, + "id": 1767, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "9939:1:0", + "src": "9936:1:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_6_by_1", @@ -10177,9 +10177,9 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "9933:8:0", + "src": "9930:8:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_memory", + "typeIdentifier": "t_struct$_G1Point_$1034_memory", "typeString": "struct Pairing.G1Point memory" } }, @@ -10190,80 +10190,80 @@ "arguments": [ { "argumentTypes": null, - "hexValue": "3230363434313635383032353837393931353832383236363437313332353335393230393634373433353333363831303839323034363733393738333838343334393939303338393535303234", - "id": 744, + "hexValue": "3139373338343638343635363538353837343533333731383139383331353738383335363736333337363836323136373336333130303736343433343737393438373031393135353431323033", + "id": 1772, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "9960:77:0", + "src": "9957:77:4", "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_rational_20644165802587991582826647132535920964743533681089204673978388434999038955024_by_1", - "typeString": "int_const 2064...(69 digits omitted)...5024" + "typeIdentifier": "t_rational_19738468465658587453371819831578835676337686216736310076443477948701915541203_by_1", + "typeString": "int_const 1973...(69 digits omitted)...1203" }, - "value": "20644165802587991582826647132535920964743533681089204673978388434999038955024" + "value": "19738468465658587453371819831578835676337686216736310076443477948701915541203" }, { "argumentTypes": null, - "hexValue": "38393938393136303339303733303837353233373732383034363231323038313337373337303337373639313536353233313930393432303738303235393033373330393735373431333537", - "id": 745, + "hexValue": "3137303531363131333336363738393430383332353934373139393534323638323935303833373634393933393231363130323930323535353230303135303032353133343339343133393433", + "id": 1773, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "10038:76:0", + "src": "10035:77:4", "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_rational_8998916039073087523772804621208137737037769156523190942078025903730975741357_by_1", - "typeString": "int_const 8998...(68 digits omitted)...1357" + "typeIdentifier": "t_rational_17051611336678940832594719954268295083764993921610290255520015002513439413943_by_1", + "typeString": "int_const 1705...(69 digits omitted)...3943" }, - "value": "8998916039073087523772804621208137737037769156523190942078025903730975741357" + "value": "17051611336678940832594719954268295083764993921610290255520015002513439413943" } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_rational_20644165802587991582826647132535920964743533681089204673978388434999038955024_by_1", - "typeString": "int_const 2064...(69 digits omitted)...5024" + "typeIdentifier": "t_rational_19738468465658587453371819831578835676337686216736310076443477948701915541203_by_1", + "typeString": "int_const 1973...(69 digits omitted)...1203" }, { - "typeIdentifier": "t_rational_8998916039073087523772804621208137737037769156523190942078025903730975741357_by_1", - "typeString": "int_const 8998...(68 digits omitted)...1357" + "typeIdentifier": "t_rational_17051611336678940832594719954268295083764993921610290255520015002513439413943_by_1", + "typeString": "int_const 1705...(69 digits omitted)...3943" } ], "expression": { "argumentTypes": null, - "id": 742, + "id": 1770, "name": "Pairing", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 577, - "src": "9944:7:0", + "referencedDeclaration": 1605, + "src": "9941:7:4", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Pairing_$577_$", + "typeIdentifier": "t_type$_t_contract$_Pairing_$1605_$", "typeString": "type(library Pairing)" } }, - "id": 743, + "id": 1771, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "G1Point", "nodeType": "MemberAccess", - "referencedDeclaration": 6, - "src": "9944:15:0", + "referencedDeclaration": 1034, + "src": "9941:15:4", "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_G1Point_$6_storage_ptr_$", + "typeIdentifier": "t_type$_t_struct$_G1Point_$1034_storage_ptr_$", "typeString": "type(struct Pairing.G1Point storage pointer)" } }, - "id": 746, + "id": 1774, "isConstant": false, "isLValue": false, "isPure": true, @@ -10271,63 +10271,63 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "9944:171:0", + "src": "9941:172:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_memory", + "typeIdentifier": "t_struct$_G1Point_$1034_memory", "typeString": "struct Pairing.G1Point memory" } }, - "src": "9933:182:0", + "src": "9930:183:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_memory", + "typeIdentifier": "t_struct$_G1Point_$1034_memory", "typeString": "struct Pairing.G1Point memory" } }, - "id": 748, + "id": 1776, "nodeType": "ExpressionStatement", - "src": "9933:182:0" + "src": "9930:183:4" } ] }, "documentation": null, - "id": 750, + "id": 1778, "implemented": true, "kind": "function", "modifiers": [], "name": "verifyingKey", "nodeType": "FunctionDefinition", "parameters": { - "id": 599, + "id": 1627, "nodeType": "ParameterList", "parameters": [], - "src": "7431:2:0" + "src": "7431:2:4" }, "returnParameters": { - "id": 602, + "id": 1630, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 601, + "id": 1629, "name": "vk", "nodeType": "VariableDeclaration", - "scope": 750, - "src": "7457:22:0", + "scope": 1778, + "src": "7457:22:4", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_struct$_VerifyingKey_$591_memory_ptr", + "typeIdentifier": "t_struct$_VerifyingKey_$1619_memory_ptr", "typeString": "struct Verifier.VerifyingKey" }, "typeName": { "contractScope": null, - "id": 600, + "id": 1628, "name": "VerifyingKey", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 591, - "src": "7457:12:0", + "referencedDeclaration": 1619, + "src": "7457:12:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_VerifyingKey_$591_storage_ptr", + "typeIdentifier": "t_struct$_VerifyingKey_$1619_storage_ptr", "typeString": "struct Verifier.VerifyingKey" } }, @@ -10335,32 +10335,32 @@ "visibility": "internal" } ], - "src": "7456:24:0" + "src": "7456:24:4" }, - "scope": 1058, - "src": "7410:2713:0", + "scope": 2086, + "src": "7410:2711:4", "stateMutability": "pure", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 870, + "id": 1898, "nodeType": "Block", - "src": "10214:846:0", + "src": "10212:846:4", "statements": [ { "assignments": [ - 761 + 1789 ], "declarations": [ { "constant": false, - "id": 761, + "id": 1789, "name": "snark_scalar_field", "nodeType": "VariableDeclaration", - "scope": 870, - "src": "10224:26:0", + "scope": 1898, + "src": "10222:26:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -10368,10 +10368,10 @@ "typeString": "uint256" }, "typeName": { - "id": 760, + "id": 1788, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "10224:7:0", + "src": "10222:7:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -10381,18 +10381,18 @@ "visibility": "internal" } ], - "id": 763, + "id": 1791, "initialValue": { "argumentTypes": null, "hexValue": "3231383838323432383731383339323735323232323436343035373435323537323735303838353438333634343030343136303334333433363938323034313836353735383038343935363137", - "id": 762, + "id": 1790, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "10253:77:0", + "src": "10251:77:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_21888242871839275222246405745257275088548364400416034343698204186575808495617_by_1", @@ -10401,35 +10401,35 @@ "value": "21888242871839275222246405745257275088548364400416034343698204186575808495617" }, "nodeType": "VariableDeclarationStatement", - "src": "10224:106:0" + "src": "10222:106:4" }, { "assignments": [ - 765 + 1793 ], "declarations": [ { "constant": false, - "id": 765, + "id": 1793, "name": "vk", "nodeType": "VariableDeclaration", - "scope": 870, - "src": "10340:22:0", + "scope": 1898, + "src": "10338:22:4", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_struct$_VerifyingKey_$591_memory_ptr", + "typeIdentifier": "t_struct$_VerifyingKey_$1619_memory_ptr", "typeString": "struct Verifier.VerifyingKey" }, "typeName": { "contractScope": null, - "id": 764, + "id": 1792, "name": "VerifyingKey", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 591, - "src": "10340:12:0", + "referencedDeclaration": 1619, + "src": "10338:12:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_VerifyingKey_$591_storage_ptr", + "typeIdentifier": "t_struct$_VerifyingKey_$1619_storage_ptr", "typeString": "struct Verifier.VerifyingKey" } }, @@ -10437,24 +10437,24 @@ "visibility": "internal" } ], - "id": 768, + "id": 1796, "initialValue": { "argumentTypes": null, "arguments": [], "expression": { "argumentTypes": [], - "id": 766, + "id": 1794, "name": "verifyingKey", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 750, - "src": "10365:12:0", + "referencedDeclaration": 1778, + "src": "10363:12:4", "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_VerifyingKey_$591_memory_ptr_$", + "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_VerifyingKey_$1619_memory_ptr_$", "typeString": "function () pure returns (struct Verifier.VerifyingKey memory)" } }, - "id": 767, + "id": 1795, "isConstant": false, "isLValue": false, "isPure": false, @@ -10462,14 +10462,14 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "10365:14:0", + "src": "10363:14:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_VerifyingKey_$591_memory_ptr", + "typeIdentifier": "t_struct$_VerifyingKey_$1619_memory_ptr", "typeString": "struct Verifier.VerifyingKey memory" } }, "nodeType": "VariableDeclarationStatement", - "src": "10340:39:0" + "src": "10338:39:4" }, { "expression": { @@ -10481,7 +10481,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 777, + "id": 1805, "isConstant": false, "isLValue": false, "isPure": false, @@ -10492,7 +10492,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 773, + "id": 1801, "isConstant": false, "isLValue": false, "isPure": false, @@ -10501,18 +10501,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 770, + "id": 1798, "name": "input", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 753, - "src": "10397:5:0", + "referencedDeclaration": 1781, + "src": "10395:5:4", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", "typeString": "uint256[] memory" } }, - "id": 771, + "id": 1799, "isConstant": false, "isLValue": false, "isPure": false, @@ -10520,7 +10520,7 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "10397:12:0", + "src": "10395:12:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -10531,14 +10531,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "31", - "id": 772, + "id": 1800, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "10412:1:0", + "src": "10410:1:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -10546,7 +10546,7 @@ }, "value": "1" }, - "src": "10397:16:0", + "src": "10395:16:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -10560,32 +10560,32 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 774, + "id": 1802, "name": "vk", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 765, - "src": "10417:2:0", + "referencedDeclaration": 1793, + "src": "10415:2:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_VerifyingKey_$591_memory_ptr", + "typeIdentifier": "t_struct$_VerifyingKey_$1619_memory_ptr", "typeString": "struct Verifier.VerifyingKey memory" } }, - "id": 775, + "id": 1803, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "IC", "nodeType": "MemberAccess", - "referencedDeclaration": 590, - "src": "10417:5:0", + "referencedDeclaration": 1618, + "src": "10415:5:4", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_G1Point_$6_memory_$dyn_memory", + "typeIdentifier": "t_array$_t_struct$_G1Point_$1034_memory_$dyn_memory", "typeString": "struct Pairing.G1Point memory[] memory" } }, - "id": 776, + "id": 1804, "isConstant": false, "isLValue": false, "isPure": false, @@ -10593,13 +10593,13 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "10417:12:0", + "src": "10415:12:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "10397:32:0", + "src": "10395:32:4", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -10608,14 +10608,14 @@ { "argumentTypes": null, "hexValue": "76657269666965722d6261642d696e707574", - "id": 778, + "id": 1806, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "10430:20:0", + "src": "10428:20:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_62f18c0da782e23b7e947e83d22170e983c1918040b5b1bd1c1e3ee5a50cc57a", @@ -10635,21 +10635,21 @@ "typeString": "literal_string \"verifier-bad-input\"" } ], - "id": 769, + "id": 1797, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1076, - 1077 + 2134, + 2135 ], - "referencedDeclaration": 1077, - "src": "10389:7:0", + "referencedDeclaration": 2135, + "src": "10387:7:4", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 779, + "id": 1807, "isConstant": false, "isLValue": false, "isPure": false, @@ -10657,43 +10657,43 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "10389:62:0", + "src": "10387:62:4", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 780, + "id": 1808, "nodeType": "ExpressionStatement", - "src": "10389:62:0" + "src": "10387:62:4" }, { "assignments": [ - 784 + 1812 ], "declarations": [ { "constant": false, - "id": 784, + "id": 1812, "name": "vk_x", "nodeType": "VariableDeclaration", - "scope": 870, - "src": "10508:27:0", + "scope": 1898, + "src": "10506:27:4", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_memory_ptr", + "typeIdentifier": "t_struct$_G1Point_$1034_memory_ptr", "typeString": "struct Pairing.G1Point" }, "typeName": { "contractScope": null, - "id": 783, + "id": 1811, "name": "Pairing.G1Point", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 6, - "src": "10508:15:0", + "referencedDeclaration": 1034, + "src": "10506:15:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_storage_ptr", + "typeIdentifier": "t_struct$_G1Point_$1034_storage_ptr", "typeString": "struct Pairing.G1Point" } }, @@ -10701,21 +10701,21 @@ "visibility": "internal" } ], - "id": 790, + "id": 1818, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "30", - "id": 787, + "id": 1815, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "10554:1:0", + "src": "10552:1:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -10726,14 +10726,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 788, + "id": 1816, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "10557:1:0", + "src": "10555:1:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -10755,32 +10755,32 @@ ], "expression": { "argumentTypes": null, - "id": 785, + "id": 1813, "name": "Pairing", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 577, - "src": "10538:7:0", + "referencedDeclaration": 1605, + "src": "10536:7:4", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Pairing_$577_$", + "typeIdentifier": "t_type$_t_contract$_Pairing_$1605_$", "typeString": "type(library Pairing)" } }, - "id": 786, + "id": 1814, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "G1Point", "nodeType": "MemberAccess", - "referencedDeclaration": 6, - "src": "10538:15:0", + "referencedDeclaration": 1034, + "src": "10536:15:4", "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_G1Point_$6_storage_ptr_$", + "typeIdentifier": "t_type$_t_struct$_G1Point_$1034_storage_ptr_$", "typeString": "type(struct Pairing.G1Point storage pointer)" } }, - "id": 789, + "id": 1817, "isConstant": false, "isLValue": false, "isPure": true, @@ -10788,20 +10788,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "10538:21:0", + "src": "10536:21:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_memory", + "typeIdentifier": "t_struct$_G1Point_$1034_memory", "typeString": "struct Pairing.G1Point memory" } }, "nodeType": "VariableDeclarationStatement", - "src": "10508:51:0" + "src": "10506:51:4" }, { "body": { - "id": 830, + "id": 1858, "nodeType": "Block", - "src": "10609:184:0", + "src": "10607:184:4", "statements": [ { "expression": { @@ -10813,7 +10813,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 807, + "id": 1835, "isConstant": false, "isLValue": false, "isPure": false, @@ -10822,26 +10822,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 803, + "id": 1831, "name": "input", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 753, - "src": "10631:5:0", + "referencedDeclaration": 1781, + "src": "10629:5:4", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", "typeString": "uint256[] memory" } }, - "id": 805, + "id": 1833, "indexExpression": { "argumentTypes": null, - "id": 804, + "id": 1832, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 792, - "src": "10637:1:0", + "referencedDeclaration": 1820, + "src": "10635:1:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -10852,7 +10852,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "10631:8:0", + "src": "10629:8:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -10862,18 +10862,18 @@ "operator": "<", "rightExpression": { "argumentTypes": null, - "id": 806, + "id": 1834, "name": "snark_scalar_field", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 761, - "src": "10642:18:0", + "referencedDeclaration": 1789, + "src": "10640:18:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "10631:29:0", + "src": "10629:29:4", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -10882,14 +10882,14 @@ { "argumentTypes": null, "hexValue": "76657269666965722d6774652d736e61726b2d7363616c61722d6669656c64", - "id": 808, + "id": 1836, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "10661:33:0", + "src": "10659:33:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_8cb5a586d84bd3fa5140c79c44fd5cd5a5b0e7e59a1ddee2846426486e57f847", @@ -10909,21 +10909,21 @@ "typeString": "literal_string \"verifier-gte-snark-scalar-field\"" } ], - "id": 802, + "id": 1830, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1076, - 1077 + 2134, + 2135 ], - "referencedDeclaration": 1077, - "src": "10623:7:0", + "referencedDeclaration": 2135, + "src": "10621:7:4", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 809, + "id": 1837, "isConstant": false, "isLValue": false, "isPure": false, @@ -10931,34 +10931,34 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "10623:72:0", + "src": "10621:72:4", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 810, + "id": 1838, "nodeType": "ExpressionStatement", - "src": "10623:72:0" + "src": "10621:72:4" }, { "expression": { "argumentTypes": null, - "id": 828, + "id": 1856, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 811, + "id": 1839, "name": "vk_x", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 784, - "src": "10709:4:0", + "referencedDeclaration": 1812, + "src": "10707:4:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_memory_ptr", + "typeIdentifier": "t_struct$_G1Point_$1034_memory_ptr", "typeString": "struct Pairing.G1Point memory" } }, @@ -10969,14 +10969,14 @@ "arguments": [ { "argumentTypes": null, - "id": 814, + "id": 1842, "name": "vk_x", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 784, - "src": "10733:4:0", + "referencedDeclaration": 1812, + "src": "10731:4:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_memory_ptr", + "typeIdentifier": "t_struct$_G1Point_$1034_memory_ptr", "typeString": "struct Pairing.G1Point memory" } }, @@ -10989,51 +10989,51 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 817, + "id": 1845, "name": "vk", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 765, - "src": "10758:2:0", + "referencedDeclaration": 1793, + "src": "10756:2:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_VerifyingKey_$591_memory_ptr", + "typeIdentifier": "t_struct$_VerifyingKey_$1619_memory_ptr", "typeString": "struct Verifier.VerifyingKey memory" } }, - "id": 818, + "id": 1846, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "IC", "nodeType": "MemberAccess", - "referencedDeclaration": 590, - "src": "10758:5:0", + "referencedDeclaration": 1618, + "src": "10756:5:4", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_G1Point_$6_memory_$dyn_memory", + "typeIdentifier": "t_array$_t_struct$_G1Point_$1034_memory_$dyn_memory", "typeString": "struct Pairing.G1Point memory[] memory" } }, - "id": 822, + "id": 1850, "indexExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 821, + "id": 1849, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 819, + "id": 1847, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 792, - "src": "10764:1:0", + "referencedDeclaration": 1820, + "src": "10762:1:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11044,14 +11044,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "31", - "id": 820, + "id": 1848, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "10768:1:0", + "src": "10766:1:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -11059,7 +11059,7 @@ }, "value": "1" }, - "src": "10764:5:0", + "src": "10762:5:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11070,9 +11070,9 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "10758:12:0", + "src": "10756:12:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_memory", + "typeIdentifier": "t_struct$_G1Point_$1034_memory", "typeString": "struct Pairing.G1Point memory" } }, @@ -11080,26 +11080,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 823, + "id": 1851, "name": "input", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 753, - "src": "10772:5:0", + "referencedDeclaration": 1781, + "src": "10770:5:4", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", "typeString": "uint256[] memory" } }, - "id": 825, + "id": 1853, "indexExpression": { "argumentTypes": null, - "id": 824, + "id": 1852, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 792, - "src": "10778:1:0", + "referencedDeclaration": 1820, + "src": "10776:1:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11110,7 +11110,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "10772:8:0", + "src": "10770:8:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11120,7 +11120,7 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_struct$_G1Point_$6_memory", + "typeIdentifier": "t_struct$_G1Point_$1034_memory", "typeString": "struct Pairing.G1Point memory" }, { @@ -11130,32 +11130,32 @@ ], "expression": { "argumentTypes": null, - "id": 815, + "id": 1843, "name": "Pairing", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 577, - "src": "10739:7:0", + "referencedDeclaration": 1605, + "src": "10737:7:4", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Pairing_$577_$", + "typeIdentifier": "t_type$_t_contract$_Pairing_$1605_$", "typeString": "type(library Pairing)" } }, - "id": 816, + "id": 1844, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "scalar_mul", "nodeType": "MemberAccess", - "referencedDeclaration": 178, - "src": "10739:18:0", + "referencedDeclaration": 1206, + "src": "10737:18:4", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_G1Point_$6_memory_ptr_$_t_uint256_$returns$_t_struct$_G1Point_$6_memory_ptr_$", + "typeIdentifier": "t_function_internal_view$_t_struct$_G1Point_$1034_memory_ptr_$_t_uint256_$returns$_t_struct$_G1Point_$1034_memory_ptr_$", "typeString": "function (struct Pairing.G1Point memory,uint256) view returns (struct Pairing.G1Point memory)" } }, - "id": 826, + "id": 1854, "isConstant": false, "isLValue": false, "isPure": false, @@ -11163,9 +11163,9 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "10739:42:0", + "src": "10737:42:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_memory_ptr", + "typeIdentifier": "t_struct$_G1Point_$1034_memory_ptr", "typeString": "struct Pairing.G1Point memory" } } @@ -11173,42 +11173,42 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_struct$_G1Point_$6_memory_ptr", + "typeIdentifier": "t_struct$_G1Point_$1034_memory_ptr", "typeString": "struct Pairing.G1Point memory" }, { - "typeIdentifier": "t_struct$_G1Point_$6_memory_ptr", + "typeIdentifier": "t_struct$_G1Point_$1034_memory_ptr", "typeString": "struct Pairing.G1Point memory" } ], "expression": { "argumentTypes": null, - "id": 812, + "id": 1840, "name": "Pairing", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 577, - "src": "10716:7:0", + "referencedDeclaration": 1605, + "src": "10714:7:4", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Pairing_$577_$", + "typeIdentifier": "t_type$_t_contract$_Pairing_$1605_$", "typeString": "type(library Pairing)" } }, - "id": 813, + "id": 1841, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "addition", "nodeType": "MemberAccess", - "referencedDeclaration": 133, - "src": "10716:16:0", + "referencedDeclaration": 1161, + "src": "10714:16:4", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_G1Point_$6_memory_ptr_$_t_struct$_G1Point_$6_memory_ptr_$returns$_t_struct$_G1Point_$6_memory_ptr_$", + "typeIdentifier": "t_function_internal_view$_t_struct$_G1Point_$1034_memory_ptr_$_t_struct$_G1Point_$1034_memory_ptr_$returns$_t_struct$_G1Point_$1034_memory_ptr_$", "typeString": "function (struct Pairing.G1Point memory,struct Pairing.G1Point memory) view returns (struct Pairing.G1Point memory)" } }, - "id": 827, + "id": 1855, "isConstant": false, "isLValue": false, "isPure": false, @@ -11216,21 +11216,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "10716:66:0", + "src": "10714:66:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_memory_ptr", + "typeIdentifier": "t_struct$_G1Point_$1034_memory_ptr", "typeString": "struct Pairing.G1Point memory" } }, - "src": "10709:73:0", + "src": "10707:73:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_memory_ptr", + "typeIdentifier": "t_struct$_G1Point_$1034_memory_ptr", "typeString": "struct Pairing.G1Point memory" } }, - "id": 829, + "id": 1857, "nodeType": "ExpressionStatement", - "src": "10709:73:0" + "src": "10707:73:4" } ] }, @@ -11240,19 +11240,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 798, + "id": 1826, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 795, + "id": 1823, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 792, - "src": "10586:1:0", + "referencedDeclaration": 1820, + "src": "10584:1:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11264,18 +11264,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 796, + "id": 1824, "name": "input", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 753, - "src": "10590:5:0", + "referencedDeclaration": 1781, + "src": "10588:5:4", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", "typeString": "uint256[] memory" } }, - "id": 797, + "id": 1825, "isConstant": false, "isLValue": false, "isPure": false, @@ -11283,31 +11283,31 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "10590:12:0", + "src": "10588:12:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "10586:16:0", + "src": "10584:16:4", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 831, + "id": 1859, "initializationExpression": { "assignments": [ - 792 + 1820 ], "declarations": [ { "constant": false, - "id": 792, + "id": 1820, "name": "i", "nodeType": "VariableDeclaration", - "scope": 831, - "src": "10574:6:0", + "scope": 1859, + "src": "10572:6:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -11315,10 +11315,10 @@ "typeString": "uint256" }, "typeName": { - "id": 791, + "id": 1819, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "10574:4:0", + "src": "10572:4:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11328,18 +11328,18 @@ "visibility": "internal" } ], - "id": 794, + "id": 1822, "initialValue": { "argumentTypes": null, "hexValue": "30", - "id": 793, + "id": 1821, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "10583:1:0", + "src": "10581:1:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -11348,12 +11348,12 @@ "value": "0" }, "nodeType": "VariableDeclarationStatement", - "src": "10574:10:0" + "src": "10572:10:4" }, "loopExpression": { "expression": { "argumentTypes": null, - "id": 800, + "id": 1828, "isConstant": false, "isLValue": false, "isPure": false, @@ -11361,15 +11361,15 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "10604:3:0", + "src": "10602:3:4", "subExpression": { "argumentTypes": null, - "id": 799, + "id": 1827, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 792, - "src": "10604:1:0", + "referencedDeclaration": 1820, + "src": "10602:1:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11380,31 +11380,31 @@ "typeString": "uint256" } }, - "id": 801, + "id": 1829, "nodeType": "ExpressionStatement", - "src": "10604:3:0" + "src": "10602:3:4" }, "nodeType": "ForStatement", - "src": "10569:224:0" + "src": "10567:224:4" }, { "expression": { "argumentTypes": null, - "id": 841, + "id": 1869, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 832, + "id": 1860, "name": "vk_x", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 784, - "src": "10802:4:0", + "referencedDeclaration": 1812, + "src": "10800:4:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_memory_ptr", + "typeIdentifier": "t_struct$_G1Point_$1034_memory_ptr", "typeString": "struct Pairing.G1Point memory" } }, @@ -11415,14 +11415,14 @@ "arguments": [ { "argumentTypes": null, - "id": 835, + "id": 1863, "name": "vk_x", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 784, - "src": "10826:4:0", + "referencedDeclaration": 1812, + "src": "10824:4:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_memory_ptr", + "typeIdentifier": "t_struct$_G1Point_$1034_memory_ptr", "typeString": "struct Pairing.G1Point memory" } }, @@ -11432,43 +11432,43 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 836, + "id": 1864, "name": "vk", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 765, - "src": "10832:2:0", + "referencedDeclaration": 1793, + "src": "10830:2:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_VerifyingKey_$591_memory_ptr", + "typeIdentifier": "t_struct$_VerifyingKey_$1619_memory_ptr", "typeString": "struct Verifier.VerifyingKey memory" } }, - "id": 837, + "id": 1865, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "IC", "nodeType": "MemberAccess", - "referencedDeclaration": 590, - "src": "10832:5:0", + "referencedDeclaration": 1618, + "src": "10830:5:4", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_G1Point_$6_memory_$dyn_memory", + "typeIdentifier": "t_array$_t_struct$_G1Point_$1034_memory_$dyn_memory", "typeString": "struct Pairing.G1Point memory[] memory" } }, - "id": 839, + "id": 1867, "indexExpression": { "argumentTypes": null, "hexValue": "30", - "id": 838, + "id": 1866, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "10838:1:0", + "src": "10836:1:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -11481,9 +11481,9 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "10832:8:0", + "src": "10830:8:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_memory", + "typeIdentifier": "t_struct$_G1Point_$1034_memory", "typeString": "struct Pairing.G1Point memory" } } @@ -11491,42 +11491,42 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_struct$_G1Point_$6_memory_ptr", + "typeIdentifier": "t_struct$_G1Point_$1034_memory_ptr", "typeString": "struct Pairing.G1Point memory" }, { - "typeIdentifier": "t_struct$_G1Point_$6_memory", + "typeIdentifier": "t_struct$_G1Point_$1034_memory", "typeString": "struct Pairing.G1Point memory" } ], "expression": { "argumentTypes": null, - "id": 833, + "id": 1861, "name": "Pairing", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 577, - "src": "10809:7:0", + "referencedDeclaration": 1605, + "src": "10807:7:4", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Pairing_$577_$", + "typeIdentifier": "t_type$_t_contract$_Pairing_$1605_$", "typeString": "type(library Pairing)" } }, - "id": 834, + "id": 1862, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "addition", "nodeType": "MemberAccess", - "referencedDeclaration": 133, - "src": "10809:16:0", + "referencedDeclaration": 1161, + "src": "10807:16:4", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_G1Point_$6_memory_ptr_$_t_struct$_G1Point_$6_memory_ptr_$returns$_t_struct$_G1Point_$6_memory_ptr_$", + "typeIdentifier": "t_function_internal_view$_t_struct$_G1Point_$1034_memory_ptr_$_t_struct$_G1Point_$1034_memory_ptr_$returns$_t_struct$_G1Point_$1034_memory_ptr_$", "typeString": "function (struct Pairing.G1Point memory,struct Pairing.G1Point memory) view returns (struct Pairing.G1Point memory)" } }, - "id": 840, + "id": 1868, "isConstant": false, "isLValue": false, "isPure": false, @@ -11534,26 +11534,26 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "10809:32:0", + "src": "10807:32:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_memory_ptr", + "typeIdentifier": "t_struct$_G1Point_$1034_memory_ptr", "typeString": "struct Pairing.G1Point memory" } }, - "src": "10802:39:0", + "src": "10800:39:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_memory_ptr", + "typeIdentifier": "t_struct$_G1Point_$1034_memory_ptr", "typeString": "struct Pairing.G1Point memory" } }, - "id": 842, + "id": 1870, "nodeType": "ExpressionStatement", - "src": "10802:39:0" + "src": "10800:39:4" }, { "condition": { "argumentTypes": null, - "id": 864, + "id": 1892, "isConstant": false, "isLValue": false, "isPure": false, @@ -11561,7 +11561,7 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "10855:170:0", + "src": "10853:170:4", "subExpression": { "argumentTypes": null, "arguments": [ @@ -11572,28 +11572,28 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 847, + "id": 1875, "name": "proof", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 755, - "src": "10905:5:0", + "referencedDeclaration": 1783, + "src": "10903:5:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_Proof_$598_memory_ptr", + "typeIdentifier": "t_struct$_Proof_$1626_memory_ptr", "typeString": "struct Verifier.Proof memory" } }, - "id": 848, + "id": 1876, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "A", "nodeType": "MemberAccess", - "referencedDeclaration": 593, - "src": "10905:7:0", + "referencedDeclaration": 1621, + "src": "10903:7:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_memory", + "typeIdentifier": "t_struct$_G1Point_$1034_memory", "typeString": "struct Pairing.G1Point memory" } } @@ -11601,38 +11601,38 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_struct$_G1Point_$6_memory", + "typeIdentifier": "t_struct$_G1Point_$1034_memory", "typeString": "struct Pairing.G1Point memory" } ], "expression": { "argumentTypes": null, - "id": 845, + "id": 1873, "name": "Pairing", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 577, - "src": "10890:7:0", + "referencedDeclaration": 1605, + "src": "10888:7:4", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Pairing_$577_$", + "typeIdentifier": "t_type$_t_contract$_Pairing_$1605_$", "typeString": "type(library Pairing)" } }, - "id": 846, + "id": 1874, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "negate", "nodeType": "MemberAccess", - "referencedDeclaration": 80, - "src": "10890:14:0", + "referencedDeclaration": 1108, + "src": "10888:14:4", "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_struct$_G1Point_$6_memory_ptr_$returns$_t_struct$_G1Point_$6_memory_ptr_$", + "typeIdentifier": "t_function_internal_pure$_t_struct$_G1Point_$1034_memory_ptr_$returns$_t_struct$_G1Point_$1034_memory_ptr_$", "typeString": "function (struct Pairing.G1Point memory) pure returns (struct Pairing.G1Point memory)" } }, - "id": 849, + "id": 1877, "isConstant": false, "isLValue": false, "isPure": false, @@ -11640,9 +11640,9 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "10890:23:0", + "src": "10888:23:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_memory_ptr", + "typeIdentifier": "t_struct$_G1Point_$1034_memory_ptr", "typeString": "struct Pairing.G1Point memory" } }, @@ -11650,28 +11650,28 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 850, + "id": 1878, "name": "proof", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 755, - "src": "10915:5:0", + "referencedDeclaration": 1783, + "src": "10913:5:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_Proof_$598_memory_ptr", + "typeIdentifier": "t_struct$_Proof_$1626_memory_ptr", "typeString": "struct Verifier.Proof memory" } }, - "id": 851, + "id": 1879, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "B", "nodeType": "MemberAccess", - "referencedDeclaration": 595, - "src": "10915:7:0", + "referencedDeclaration": 1623, + "src": "10913:7:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G2Point_$15_memory", + "typeIdentifier": "t_struct$_G2Point_$1043_memory", "typeString": "struct Pairing.G2Point memory" } }, @@ -11679,28 +11679,28 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 852, + "id": 1880, "name": "vk", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 765, - "src": "10936:2:0", + "referencedDeclaration": 1793, + "src": "10934:2:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_VerifyingKey_$591_memory_ptr", + "typeIdentifier": "t_struct$_VerifyingKey_$1619_memory_ptr", "typeString": "struct Verifier.VerifyingKey memory" } }, - "id": 853, + "id": 1881, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "alfa1", "nodeType": "MemberAccess", - "referencedDeclaration": 581, - "src": "10936:8:0", + "referencedDeclaration": 1609, + "src": "10934:8:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_memory", + "typeIdentifier": "t_struct$_G1Point_$1034_memory", "typeString": "struct Pairing.G1Point memory" } }, @@ -11708,41 +11708,41 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 854, + "id": 1882, "name": "vk", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 765, - "src": "10946:2:0", + "referencedDeclaration": 1793, + "src": "10944:2:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_VerifyingKey_$591_memory_ptr", + "typeIdentifier": "t_struct$_VerifyingKey_$1619_memory_ptr", "typeString": "struct Verifier.VerifyingKey memory" } }, - "id": 855, + "id": 1883, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "beta2", "nodeType": "MemberAccess", - "referencedDeclaration": 583, - "src": "10946:8:0", + "referencedDeclaration": 1611, + "src": "10944:8:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G2Point_$15_memory", + "typeIdentifier": "t_struct$_G2Point_$1043_memory", "typeString": "struct Pairing.G2Point memory" } }, { "argumentTypes": null, - "id": 856, + "id": 1884, "name": "vk_x", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 784, - "src": "10968:4:0", + "referencedDeclaration": 1812, + "src": "10966:4:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_memory_ptr", + "typeIdentifier": "t_struct$_G1Point_$1034_memory_ptr", "typeString": "struct Pairing.G1Point memory" } }, @@ -11750,28 +11750,28 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 857, + "id": 1885, "name": "vk", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 765, - "src": "10974:2:0", + "referencedDeclaration": 1793, + "src": "10972:2:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_VerifyingKey_$591_memory_ptr", + "typeIdentifier": "t_struct$_VerifyingKey_$1619_memory_ptr", "typeString": "struct Verifier.VerifyingKey memory" } }, - "id": 858, + "id": 1886, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "gamma2", "nodeType": "MemberAccess", - "referencedDeclaration": 585, - "src": "10974:9:0", + "referencedDeclaration": 1613, + "src": "10972:9:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G2Point_$15_memory", + "typeIdentifier": "t_struct$_G2Point_$1043_memory", "typeString": "struct Pairing.G2Point memory" } }, @@ -11779,28 +11779,28 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 859, + "id": 1887, "name": "proof", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 755, - "src": "10997:5:0", + "referencedDeclaration": 1783, + "src": "10995:5:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_Proof_$598_memory_ptr", + "typeIdentifier": "t_struct$_Proof_$1626_memory_ptr", "typeString": "struct Verifier.Proof memory" } }, - "id": 860, + "id": 1888, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "C", "nodeType": "MemberAccess", - "referencedDeclaration": 597, - "src": "10997:7:0", + "referencedDeclaration": 1625, + "src": "10995:7:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_memory", + "typeIdentifier": "t_struct$_G1Point_$1034_memory", "typeString": "struct Pairing.G1Point memory" } }, @@ -11808,28 +11808,28 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 861, + "id": 1889, "name": "vk", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 765, - "src": "11006:2:0", + "referencedDeclaration": 1793, + "src": "11004:2:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_VerifyingKey_$591_memory_ptr", + "typeIdentifier": "t_struct$_VerifyingKey_$1619_memory_ptr", "typeString": "struct Verifier.VerifyingKey memory" } }, - "id": 862, + "id": 1890, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "delta2", "nodeType": "MemberAccess", - "referencedDeclaration": 587, - "src": "11006:9:0", + "referencedDeclaration": 1615, + "src": "11004:9:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G2Point_$15_memory", + "typeIdentifier": "t_struct$_G2Point_$1043_memory", "typeString": "struct Pairing.G2Point memory" } } @@ -11837,66 +11837,66 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_struct$_G1Point_$6_memory_ptr", + "typeIdentifier": "t_struct$_G1Point_$1034_memory_ptr", "typeString": "struct Pairing.G1Point memory" }, { - "typeIdentifier": "t_struct$_G2Point_$15_memory", + "typeIdentifier": "t_struct$_G2Point_$1043_memory", "typeString": "struct Pairing.G2Point memory" }, { - "typeIdentifier": "t_struct$_G1Point_$6_memory", + "typeIdentifier": "t_struct$_G1Point_$1034_memory", "typeString": "struct Pairing.G1Point memory" }, { - "typeIdentifier": "t_struct$_G2Point_$15_memory", + "typeIdentifier": "t_struct$_G2Point_$1043_memory", "typeString": "struct Pairing.G2Point memory" }, { - "typeIdentifier": "t_struct$_G1Point_$6_memory_ptr", + "typeIdentifier": "t_struct$_G1Point_$1034_memory_ptr", "typeString": "struct Pairing.G1Point memory" }, { - "typeIdentifier": "t_struct$_G2Point_$15_memory", + "typeIdentifier": "t_struct$_G2Point_$1043_memory", "typeString": "struct Pairing.G2Point memory" }, { - "typeIdentifier": "t_struct$_G1Point_$6_memory", + "typeIdentifier": "t_struct$_G1Point_$1034_memory", "typeString": "struct Pairing.G1Point memory" }, { - "typeIdentifier": "t_struct$_G2Point_$15_memory", + "typeIdentifier": "t_struct$_G2Point_$1043_memory", "typeString": "struct Pairing.G2Point memory" } ], "expression": { "argumentTypes": null, - "id": 843, + "id": 1871, "name": "Pairing", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 577, - "src": "10856:7:0", + "referencedDeclaration": 1605, + "src": "10854:7:4", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Pairing_$577_$", + "typeIdentifier": "t_type$_t_contract$_Pairing_$1605_$", "typeString": "type(library Pairing)" } }, - "id": 844, + "id": 1872, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "pairingProd4", "nodeType": "MemberAccess", - "referencedDeclaration": 576, - "src": "10856:20:0", + "referencedDeclaration": 1604, + "src": "10854:20:4", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_G1Point_$6_memory_ptr_$_t_struct$_G2Point_$15_memory_ptr_$_t_struct$_G1Point_$6_memory_ptr_$_t_struct$_G2Point_$15_memory_ptr_$_t_struct$_G1Point_$6_memory_ptr_$_t_struct$_G2Point_$15_memory_ptr_$_t_struct$_G1Point_$6_memory_ptr_$_t_struct$_G2Point_$15_memory_ptr_$returns$_t_bool_$", + "typeIdentifier": "t_function_internal_view$_t_struct$_G1Point_$1034_memory_ptr_$_t_struct$_G2Point_$1043_memory_ptr_$_t_struct$_G1Point_$1034_memory_ptr_$_t_struct$_G2Point_$1043_memory_ptr_$_t_struct$_G1Point_$1034_memory_ptr_$_t_struct$_G2Point_$1043_memory_ptr_$_t_struct$_G1Point_$1034_memory_ptr_$_t_struct$_G2Point_$1043_memory_ptr_$returns$_t_bool_$", "typeString": "function (struct Pairing.G1Point memory,struct Pairing.G2Point memory,struct Pairing.G1Point memory,struct Pairing.G2Point memory,struct Pairing.G1Point memory,struct Pairing.G2Point memory,struct Pairing.G1Point memory,struct Pairing.G2Point memory) view returns (bool)" } }, - "id": 863, + "id": 1891, "isConstant": false, "isLValue": false, "isPure": false, @@ -11904,7 +11904,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "10856:169:0", + "src": "10854:169:4", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -11916,21 +11916,21 @@ } }, "falseBody": null, - "id": 867, + "id": 1895, "nodeType": "IfStatement", - "src": "10851:184:0", + "src": "10849:184:4", "trueBody": { "expression": { "argumentTypes": null, "hexValue": "31", - "id": 865, + "id": 1893, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "11034:1:0", + "src": "11032:1:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -11938,24 +11938,24 @@ }, "value": "1" }, - "functionReturnParameters": 759, - "id": 866, + "functionReturnParameters": 1787, + "id": 1894, "nodeType": "Return", - "src": "11027:8:0" + "src": "11025:8:4" } }, { "expression": { "argumentTypes": null, "hexValue": "30", - "id": 868, + "id": 1896, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "11052:1:0", + "src": "11050:1:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -11963,31 +11963,31 @@ }, "value": "0" }, - "functionReturnParameters": 759, - "id": 869, + "functionReturnParameters": 1787, + "id": 1897, "nodeType": "Return", - "src": "11045:8:0" + "src": "11043:8:4" } ] }, "documentation": null, - "id": 871, + "id": 1899, "implemented": true, "kind": "function", "modifiers": [], "name": "verify", "nodeType": "FunctionDefinition", "parameters": { - "id": 756, + "id": 1784, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 753, + "id": 1781, "name": "input", "nodeType": "VariableDeclaration", - "scope": 871, - "src": "10144:19:0", + "scope": 1899, + "src": "10142:19:4", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -11996,19 +11996,19 @@ }, "typeName": { "baseType": { - "id": 751, + "id": 1779, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "10144:4:0", + "src": "10142:4:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 752, + "id": 1780, "length": null, "nodeType": "ArrayTypeName", - "src": "10144:6:0", + "src": "10142:6:4", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", "typeString": "uint256[]" @@ -12019,26 +12019,26 @@ }, { "constant": false, - "id": 755, + "id": 1783, "name": "proof", "nodeType": "VariableDeclaration", - "scope": 871, - "src": "10165:18:0", + "scope": 1899, + "src": "10163:18:4", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_struct$_Proof_$598_memory_ptr", + "typeIdentifier": "t_struct$_Proof_$1626_memory_ptr", "typeString": "struct Verifier.Proof" }, "typeName": { "contractScope": null, - "id": 754, + "id": 1782, "name": "Proof", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 598, - "src": "10165:5:0", + "referencedDeclaration": 1626, + "src": "10163:5:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_Proof_$598_storage_ptr", + "typeIdentifier": "t_struct$_Proof_$1626_storage_ptr", "typeString": "struct Verifier.Proof" } }, @@ -12046,19 +12046,19 @@ "visibility": "internal" } ], - "src": "10143:41:0" + "src": "10141:41:4" }, "returnParameters": { - "id": 759, + "id": 1787, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 758, + "id": 1786, "name": "", "nodeType": "VariableDeclaration", - "scope": 871, - "src": "10208:4:0", + "scope": 1899, + "src": "10206:4:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -12066,10 +12066,10 @@ "typeString": "uint256" }, "typeName": { - "id": 757, + "id": 1785, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "10208:4:0", + "src": "10206:4:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -12079,47 +12079,47 @@ "visibility": "internal" } ], - "src": "10207:6:0" + "src": "10205:6:4" }, - "scope": 1058, - "src": "10128:932:0", + "scope": 2086, + "src": "10126:932:4", "stateMutability": "view", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 1000, + "id": 2028, "nodeType": "Block", - "src": "11252:488:0", + "src": "11250:488:4", "statements": [ { "assignments": [ - 895 + 1923 ], "declarations": [ { "constant": false, - "id": 895, + "id": 1923, "name": "proof", "nodeType": "VariableDeclaration", - "scope": 1000, - "src": "11262:18:0", + "scope": 2028, + "src": "11260:18:4", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_struct$_Proof_$598_memory_ptr", + "typeIdentifier": "t_struct$_Proof_$1626_memory_ptr", "typeString": "struct Verifier.Proof" }, "typeName": { "contractScope": null, - "id": 894, + "id": 1922, "name": "Proof", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 598, - "src": "11262:5:0", + "referencedDeclaration": 1626, + "src": "11260:5:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_Proof_$598_storage_ptr", + "typeIdentifier": "t_struct$_Proof_$1626_storage_ptr", "typeString": "struct Verifier.Proof" } }, @@ -12127,15 +12127,15 @@ "visibility": "internal" } ], - "id": 896, + "id": 1924, "initialValue": null, "nodeType": "VariableDeclarationStatement", - "src": "11262:18:0" + "src": "11260:18:4" }, { "expression": { "argumentTypes": null, - "id": 909, + "id": 1937, "isConstant": false, "isLValue": false, "isPure": false, @@ -12144,28 +12144,28 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 897, + "id": 1925, "name": "proof", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 895, - "src": "11290:5:0", + "referencedDeclaration": 1923, + "src": "11288:5:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_Proof_$598_memory_ptr", + "typeIdentifier": "t_struct$_Proof_$1626_memory_ptr", "typeString": "struct Verifier.Proof memory" } }, - "id": 899, + "id": 1927, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberName": "A", "nodeType": "MemberAccess", - "referencedDeclaration": 593, - "src": "11290:7:0", + "referencedDeclaration": 1621, + "src": "11288:7:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_memory", + "typeIdentifier": "t_struct$_G1Point_$1034_memory", "typeString": "struct Pairing.G1Point memory" } }, @@ -12178,29 +12178,29 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 902, + "id": 1930, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 875, - "src": "11316:1:0", + "referencedDeclaration": 1903, + "src": "11314:1:4", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", "typeString": "uint256[2] memory" } }, - "id": 904, + "id": 1932, "indexExpression": { "argumentTypes": null, "hexValue": "30", - "id": 903, + "id": 1931, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "11318:1:0", + "src": "11316:1:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -12213,7 +12213,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "11316:4:0", + "src": "11314:4:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -12223,29 +12223,29 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 905, + "id": 1933, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 875, - "src": "11322:1:0", + "referencedDeclaration": 1903, + "src": "11320:1:4", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", "typeString": "uint256[2] memory" } }, - "id": 907, + "id": 1935, "indexExpression": { "argumentTypes": null, "hexValue": "31", - "id": 906, + "id": 1934, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "11324:1:0", + "src": "11322:1:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -12258,7 +12258,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "11322:4:0", + "src": "11320:4:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -12278,32 +12278,32 @@ ], "expression": { "argumentTypes": null, - "id": 900, + "id": 1928, "name": "Pairing", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 577, - "src": "11300:7:0", + "referencedDeclaration": 1605, + "src": "11298:7:4", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Pairing_$577_$", + "typeIdentifier": "t_type$_t_contract$_Pairing_$1605_$", "typeString": "type(library Pairing)" } }, - "id": 901, + "id": 1929, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "G1Point", "nodeType": "MemberAccess", - "referencedDeclaration": 6, - "src": "11300:15:0", + "referencedDeclaration": 1034, + "src": "11298:15:4", "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_G1Point_$6_storage_ptr_$", + "typeIdentifier": "t_type$_t_struct$_G1Point_$1034_storage_ptr_$", "typeString": "type(struct Pairing.G1Point storage pointer)" } }, - "id": 908, + "id": 1936, "isConstant": false, "isLValue": false, "isPure": false, @@ -12311,26 +12311,26 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "11300:27:0", + "src": "11298:27:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_memory", + "typeIdentifier": "t_struct$_G1Point_$1034_memory", "typeString": "struct Pairing.G1Point memory" } }, - "src": "11290:37:0", + "src": "11288:37:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_memory", + "typeIdentifier": "t_struct$_G1Point_$1034_memory", "typeString": "struct Pairing.G1Point memory" } }, - "id": 910, + "id": 1938, "nodeType": "ExpressionStatement", - "src": "11290:37:0" + "src": "11288:37:4" }, { "expression": { "argumentTypes": null, - "id": 939, + "id": 1967, "isConstant": false, "isLValue": false, "isPure": false, @@ -12339,28 +12339,28 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 911, + "id": 1939, "name": "proof", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 895, - "src": "11337:5:0", + "referencedDeclaration": 1923, + "src": "11335:5:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_Proof_$598_memory_ptr", + "typeIdentifier": "t_struct$_Proof_$1626_memory_ptr", "typeString": "struct Verifier.Proof memory" } }, - "id": 913, + "id": 1941, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberName": "B", "nodeType": "MemberAccess", - "referencedDeclaration": 595, - "src": "11337:7:0", + "referencedDeclaration": 1623, + "src": "11335:7:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G2Point_$15_memory", + "typeIdentifier": "t_struct$_G2Point_$1043_memory", "typeString": "struct Pairing.G2Point memory" } }, @@ -12378,29 +12378,29 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 916, + "id": 1944, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 881, - "src": "11364:1:0", + "referencedDeclaration": 1909, + "src": "11362:1:4", "typeDescriptions": { "typeIdentifier": "t_array$_t_array$_t_uint256_$2_memory_$2_memory_ptr", "typeString": "uint256[2] memory[2] memory" } }, - "id": 918, + "id": 1946, "indexExpression": { "argumentTypes": null, "hexValue": "30", - "id": 917, + "id": 1945, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "11366:1:0", + "src": "11364:1:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -12413,24 +12413,24 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "11364:4:0", + "src": "11362:4:4", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$2_memory", "typeString": "uint256[2] memory" } }, - "id": 920, + "id": 1948, "indexExpression": { "argumentTypes": null, "hexValue": "30", - "id": 919, + "id": 1947, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "11369:1:0", + "src": "11367:1:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -12443,7 +12443,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "11364:7:0", + "src": "11362:7:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -12455,29 +12455,29 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 921, + "id": 1949, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 881, - "src": "11373:1:0", + "referencedDeclaration": 1909, + "src": "11371:1:4", "typeDescriptions": { "typeIdentifier": "t_array$_t_array$_t_uint256_$2_memory_$2_memory_ptr", "typeString": "uint256[2] memory[2] memory" } }, - "id": 923, + "id": 1951, "indexExpression": { "argumentTypes": null, "hexValue": "30", - "id": 922, + "id": 1950, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "11375:1:0", + "src": "11373:1:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -12490,24 +12490,24 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "11373:4:0", + "src": "11371:4:4", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$2_memory", "typeString": "uint256[2] memory" } }, - "id": 925, + "id": 1953, "indexExpression": { "argumentTypes": null, "hexValue": "31", - "id": 924, + "id": 1952, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "11378:1:0", + "src": "11376:1:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -12520,21 +12520,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "11373:7:0", + "src": "11371:7:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], - "id": 926, + "id": 1954, "isConstant": false, "isInlineArray": true, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "11363:18:0", + "src": "11361:18:4", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", "typeString": "uint256[2] memory" @@ -12549,29 +12549,29 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 927, + "id": 1955, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 881, - "src": "11384:1:0", + "referencedDeclaration": 1909, + "src": "11382:1:4", "typeDescriptions": { "typeIdentifier": "t_array$_t_array$_t_uint256_$2_memory_$2_memory_ptr", "typeString": "uint256[2] memory[2] memory" } }, - "id": 929, + "id": 1957, "indexExpression": { "argumentTypes": null, "hexValue": "31", - "id": 928, + "id": 1956, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "11386:1:0", + "src": "11384:1:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -12584,24 +12584,24 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "11384:4:0", + "src": "11382:4:4", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$2_memory", "typeString": "uint256[2] memory" } }, - "id": 931, + "id": 1959, "indexExpression": { "argumentTypes": null, "hexValue": "30", - "id": 930, + "id": 1958, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "11389:1:0", + "src": "11387:1:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -12614,7 +12614,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "11384:7:0", + "src": "11382:7:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -12626,29 +12626,29 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 932, + "id": 1960, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 881, - "src": "11393:1:0", + "referencedDeclaration": 1909, + "src": "11391:1:4", "typeDescriptions": { "typeIdentifier": "t_array$_t_array$_t_uint256_$2_memory_$2_memory_ptr", "typeString": "uint256[2] memory[2] memory" } }, - "id": 934, + "id": 1962, "indexExpression": { "argumentTypes": null, "hexValue": "31", - "id": 933, + "id": 1961, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "11395:1:0", + "src": "11393:1:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -12661,24 +12661,24 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "11393:4:0", + "src": "11391:4:4", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$2_memory", "typeString": "uint256[2] memory" } }, - "id": 936, + "id": 1964, "indexExpression": { "argumentTypes": null, "hexValue": "31", - "id": 935, + "id": 1963, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "11398:1:0", + "src": "11396:1:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -12691,21 +12691,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "11393:7:0", + "src": "11391:7:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], - "id": 937, + "id": 1965, "isConstant": false, "isInlineArray": true, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "11383:18:0", + "src": "11381:18:4", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", "typeString": "uint256[2] memory" @@ -12725,32 +12725,32 @@ ], "expression": { "argumentTypes": null, - "id": 914, + "id": 1942, "name": "Pairing", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 577, - "src": "11347:7:0", + "referencedDeclaration": 1605, + "src": "11345:7:4", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Pairing_$577_$", + "typeIdentifier": "t_type$_t_contract$_Pairing_$1605_$", "typeString": "type(library Pairing)" } }, - "id": 915, + "id": 1943, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "G2Point", "nodeType": "MemberAccess", - "referencedDeclaration": 15, - "src": "11347:15:0", + "referencedDeclaration": 1043, + "src": "11345:15:4", "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_G2Point_$15_storage_ptr_$", + "typeIdentifier": "t_type$_t_struct$_G2Point_$1043_storage_ptr_$", "typeString": "type(struct Pairing.G2Point storage pointer)" } }, - "id": 938, + "id": 1966, "isConstant": false, "isLValue": false, "isPure": false, @@ -12758,26 +12758,26 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "11347:55:0", + "src": "11345:55:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G2Point_$15_memory", + "typeIdentifier": "t_struct$_G2Point_$1043_memory", "typeString": "struct Pairing.G2Point memory" } }, - "src": "11337:65:0", + "src": "11335:65:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G2Point_$15_memory", + "typeIdentifier": "t_struct$_G2Point_$1043_memory", "typeString": "struct Pairing.G2Point memory" } }, - "id": 940, + "id": 1968, "nodeType": "ExpressionStatement", - "src": "11337:65:0" + "src": "11335:65:4" }, { "expression": { "argumentTypes": null, - "id": 953, + "id": 1981, "isConstant": false, "isLValue": false, "isPure": false, @@ -12786,28 +12786,28 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 941, + "id": 1969, "name": "proof", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 895, - "src": "11412:5:0", + "referencedDeclaration": 1923, + "src": "11410:5:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_Proof_$598_memory_ptr", + "typeIdentifier": "t_struct$_Proof_$1626_memory_ptr", "typeString": "struct Verifier.Proof memory" } }, - "id": 943, + "id": 1971, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberName": "C", "nodeType": "MemberAccess", - "referencedDeclaration": 597, - "src": "11412:7:0", + "referencedDeclaration": 1625, + "src": "11410:7:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_memory", + "typeIdentifier": "t_struct$_G1Point_$1034_memory", "typeString": "struct Pairing.G1Point memory" } }, @@ -12820,29 +12820,29 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 946, + "id": 1974, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 885, - "src": "11438:1:0", + "referencedDeclaration": 1913, + "src": "11436:1:4", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", "typeString": "uint256[2] memory" } }, - "id": 948, + "id": 1976, "indexExpression": { "argumentTypes": null, "hexValue": "30", - "id": 947, + "id": 1975, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "11440:1:0", + "src": "11438:1:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -12855,7 +12855,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "11438:4:0", + "src": "11436:4:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -12865,29 +12865,29 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 949, + "id": 1977, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 885, - "src": "11444:1:0", + "referencedDeclaration": 1913, + "src": "11442:1:4", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", "typeString": "uint256[2] memory" } }, - "id": 951, + "id": 1979, "indexExpression": { "argumentTypes": null, "hexValue": "31", - "id": 950, + "id": 1978, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "11446:1:0", + "src": "11444:1:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -12900,7 +12900,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "11444:4:0", + "src": "11442:4:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -12920,32 +12920,32 @@ ], "expression": { "argumentTypes": null, - "id": 944, + "id": 1972, "name": "Pairing", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 577, - "src": "11422:7:0", + "referencedDeclaration": 1605, + "src": "11420:7:4", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Pairing_$577_$", + "typeIdentifier": "t_type$_t_contract$_Pairing_$1605_$", "typeString": "type(library Pairing)" } }, - "id": 945, + "id": 1973, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "G1Point", "nodeType": "MemberAccess", - "referencedDeclaration": 6, - "src": "11422:15:0", + "referencedDeclaration": 1034, + "src": "11420:15:4", "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_G1Point_$6_storage_ptr_$", + "typeIdentifier": "t_type$_t_struct$_G1Point_$1034_storage_ptr_$", "typeString": "type(struct Pairing.G1Point storage pointer)" } }, - "id": 952, + "id": 1980, "isConstant": false, "isLValue": false, "isPure": false, @@ -12953,34 +12953,34 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "11422:27:0", + "src": "11420:27:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_memory", + "typeIdentifier": "t_struct$_G1Point_$1034_memory", "typeString": "struct Pairing.G1Point memory" } }, - "src": "11412:37:0", + "src": "11410:37:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$6_memory", + "typeIdentifier": "t_struct$_G1Point_$1034_memory", "typeString": "struct Pairing.G1Point memory" } }, - "id": 954, + "id": 1982, "nodeType": "ExpressionStatement", - "src": "11412:37:0" + "src": "11410:37:4" }, { "assignments": [ - 958 + 1986 ], "declarations": [ { "constant": false, - "id": 958, + "id": 1986, "name": "inputValues", "nodeType": "VariableDeclaration", - "scope": 1000, - "src": "11459:25:0", + "scope": 2028, + "src": "11457:25:4", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -12989,19 +12989,19 @@ }, "typeName": { "baseType": { - "id": 956, + "id": 1984, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "11459:4:0", + "src": "11457:4:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 957, + "id": 1985, "length": null, "nodeType": "ArrayTypeName", - "src": "11459:6:0", + "src": "11457:6:4", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", "typeString": "uint256[]" @@ -13011,7 +13011,7 @@ "visibility": "internal" } ], - "id": 965, + "id": 1993, "initialValue": { "argumentTypes": null, "arguments": [ @@ -13019,18 +13019,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 962, + "id": 1990, "name": "input", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 889, - "src": "11498:5:0", + "referencedDeclaration": 1917, + "src": "11496:5:4", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$6_memory_ptr", "typeString": "uint256[6] memory" } }, - "id": 963, + "id": 1991, "isConstant": false, "isLValue": false, "isPure": false, @@ -13038,7 +13038,7 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "11498:12:0", + "src": "11496:12:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -13052,39 +13052,39 @@ "typeString": "uint256" } ], - "id": 961, + "id": 1989, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "NewExpression", - "src": "11487:10:0", + "src": "11485:10:4", "typeDescriptions": { "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_$", "typeString": "function (uint256) pure returns (uint256[] memory)" }, "typeName": { "baseType": { - "id": 959, + "id": 1987, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "11491:4:0", + "src": "11489:4:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 960, + "id": 1988, "length": null, "nodeType": "ArrayTypeName", - "src": "11491:6:0", + "src": "11489:6:4", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", "typeString": "uint256[]" } } }, - "id": 964, + "id": 1992, "isConstant": false, "isLValue": false, "isPure": false, @@ -13092,25 +13092,25 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "11487:24:0", + "src": "11485:24:4", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_memory", "typeString": "uint256[] memory" } }, "nodeType": "VariableDeclarationStatement", - "src": "11459:52:0" + "src": "11457:52:4" }, { "body": { - "id": 985, + "id": 2013, "nodeType": "Block", - "src": "11559:50:0", + "src": "11557:50:4", "statements": [ { "expression": { "argumentTypes": null, - "id": 983, + "id": 2011, "isConstant": false, "isLValue": false, "isPure": false, @@ -13119,26 +13119,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 977, + "id": 2005, "name": "inputValues", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 958, - "src": "11573:11:0", + "referencedDeclaration": 1986, + "src": "11571:11:4", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", "typeString": "uint256[] memory" } }, - "id": 979, + "id": 2007, "indexExpression": { "argumentTypes": null, - "id": 978, + "id": 2006, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 967, - "src": "11585:1:0", + "referencedDeclaration": 1995, + "src": "11583:1:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -13149,7 +13149,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "11573:14:0", + "src": "11571:14:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -13161,26 +13161,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 980, + "id": 2008, "name": "input", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 889, - "src": "11590:5:0", + "referencedDeclaration": 1917, + "src": "11588:5:4", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$6_memory_ptr", "typeString": "uint256[6] memory" } }, - "id": 982, + "id": 2010, "indexExpression": { "argumentTypes": null, - "id": 981, + "id": 2009, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 967, - "src": "11596:1:0", + "referencedDeclaration": 1995, + "src": "11594:1:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -13191,21 +13191,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "11590:8:0", + "src": "11588:8:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "11573:25:0", + "src": "11571:25:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 984, + "id": 2012, "nodeType": "ExpressionStatement", - "src": "11573:25:0" + "src": "11571:25:4" } ] }, @@ -13215,19 +13215,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 973, + "id": 2001, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 970, + "id": 1998, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 967, - "src": "11537:1:0", + "referencedDeclaration": 1995, + "src": "11535:1:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -13239,18 +13239,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 971, + "id": 1999, "name": "input", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 889, - "src": "11541:5:0", + "referencedDeclaration": 1917, + "src": "11539:5:4", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$6_memory_ptr", "typeString": "uint256[6] memory" } }, - "id": 972, + "id": 2000, "isConstant": false, "isLValue": false, "isPure": false, @@ -13258,31 +13258,31 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "11541:12:0", + "src": "11539:12:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "11537:16:0", + "src": "11535:16:4", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 986, + "id": 2014, "initializationExpression": { "assignments": [ - 967 + 1995 ], "declarations": [ { "constant": false, - "id": 967, + "id": 1995, "name": "i", "nodeType": "VariableDeclaration", - "scope": 986, - "src": "11525:6:0", + "scope": 2014, + "src": "11523:6:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -13290,10 +13290,10 @@ "typeString": "uint256" }, "typeName": { - "id": 966, + "id": 1994, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "11525:4:0", + "src": "11523:4:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -13303,18 +13303,18 @@ "visibility": "internal" } ], - "id": 969, + "id": 1997, "initialValue": { "argumentTypes": null, "hexValue": "30", - "id": 968, + "id": 1996, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "11534:1:0", + "src": "11532:1:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -13323,12 +13323,12 @@ "value": "0" }, "nodeType": "VariableDeclarationStatement", - "src": "11525:10:0" + "src": "11523:10:4" }, "loopExpression": { "expression": { "argumentTypes": null, - "id": 975, + "id": 2003, "isConstant": false, "isLValue": false, "isPure": false, @@ -13336,15 +13336,15 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "11555:3:0", + "src": "11553:3:4", "subExpression": { "argumentTypes": null, - "id": 974, + "id": 2002, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 967, - "src": "11555:1:0", + "referencedDeclaration": 1995, + "src": "11553:1:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -13355,12 +13355,12 @@ "typeString": "uint256" } }, - "id": 976, + "id": 2004, "nodeType": "ExpressionStatement", - "src": "11555:3:0" + "src": "11553:3:4" }, "nodeType": "ForStatement", - "src": "11521:88:0" + "src": "11519:88:4" }, { "condition": { @@ -13369,7 +13369,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 992, + "id": 2020, "isConstant": false, "isLValue": false, "isPure": false, @@ -13379,12 +13379,12 @@ "arguments": [ { "argumentTypes": null, - "id": 988, + "id": 2016, "name": "inputValues", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 958, - "src": "11629:11:0", + "referencedDeclaration": 1986, + "src": "11627:11:4", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", "typeString": "uint256[] memory" @@ -13392,14 +13392,14 @@ }, { "argumentTypes": null, - "id": 989, + "id": 2017, "name": "proof", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 895, - "src": "11642:5:0", + "referencedDeclaration": 1923, + "src": "11640:5:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_Proof_$598_memory_ptr", + "typeIdentifier": "t_struct$_Proof_$1626_memory_ptr", "typeString": "struct Verifier.Proof memory" } } @@ -13411,22 +13411,22 @@ "typeString": "uint256[] memory" }, { - "typeIdentifier": "t_struct$_Proof_$598_memory_ptr", + "typeIdentifier": "t_struct$_Proof_$1626_memory_ptr", "typeString": "struct Verifier.Proof memory" } ], - "id": 987, + "id": 2015, "name": "verify", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 871, - "src": "11622:6:0", + "referencedDeclaration": 1899, + "src": "11620:6:4", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_array$_t_uint256_$dyn_memory_ptr_$_t_struct$_Proof_$598_memory_ptr_$returns$_t_uint256_$", + "typeIdentifier": "t_function_internal_view$_t_array$_t_uint256_$dyn_memory_ptr_$_t_struct$_Proof_$1626_memory_ptr_$returns$_t_uint256_$", "typeString": "function (uint256[] memory,struct Verifier.Proof memory) view returns (uint256)" } }, - "id": 990, + "id": 2018, "isConstant": false, "isLValue": false, "isPure": false, @@ -13434,7 +13434,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "11622:26:0", + "src": "11620:26:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -13445,14 +13445,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 991, + "id": 2019, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "11652:1:0", + "src": "11650:1:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -13460,29 +13460,29 @@ }, "value": "0" }, - "src": "11622:31:0", + "src": "11620:31:4", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": { - "id": 998, + "id": 2026, "nodeType": "Block", - "src": "11697:37:0", + "src": "11695:37:4", "statements": [ { "expression": { "argumentTypes": null, "hexValue": "66616c7365", - "id": 996, + "id": 2024, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "11718:5:0", + "src": "11716:5:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -13490,33 +13490,33 @@ }, "value": "false" }, - "functionReturnParameters": 893, - "id": 997, + "functionReturnParameters": 1921, + "id": 2025, "nodeType": "Return", - "src": "11711:12:0" + "src": "11709:12:4" } ] }, - "id": 999, + "id": 2027, "nodeType": "IfStatement", - "src": "11618:116:0", + "src": "11616:116:4", "trueBody": { - "id": 995, + "id": 2023, "nodeType": "Block", - "src": "11655:36:0", + "src": "11653:36:4", "statements": [ { "expression": { "argumentTypes": null, "hexValue": "74727565", - "id": 993, + "id": 2021, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "11676:4:0", + "src": "11674:4:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -13524,10 +13524,10 @@ }, "value": "true" }, - "functionReturnParameters": 893, - "id": 994, + "functionReturnParameters": 1921, + "id": 2022, "nodeType": "Return", - "src": "11669:11:0" + "src": "11667:11:4" } ] } @@ -13535,23 +13535,23 @@ ] }, "documentation": null, - "id": 1001, + "id": 2029, "implemented": true, "kind": "function", "modifiers": [], "name": "verifyProof", "nodeType": "FunctionDefinition", "parameters": { - "id": 890, + "id": 1918, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 875, + "id": 1903, "name": "a", "nodeType": "VariableDeclaration", - "scope": 1001, - "src": "11099:16:0", + "scope": 2029, + "src": "11097:16:4", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -13560,27 +13560,27 @@ }, "typeName": { "baseType": { - "id": 872, + "id": 1900, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "11099:4:0", + "src": "11097:4:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 874, + "id": 1902, "length": { "argumentTypes": null, "hexValue": "32", - "id": 873, + "id": 1901, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "11104:1:0", + "src": "11102:1:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_2_by_1", @@ -13589,7 +13589,7 @@ "value": "2" }, "nodeType": "ArrayTypeName", - "src": "11099:7:0", + "src": "11097:7:4", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$2_storage_ptr", "typeString": "uint256[2]" @@ -13600,11 +13600,11 @@ }, { "constant": false, - "id": 881, + "id": 1909, "name": "b", "nodeType": "VariableDeclaration", - "scope": 1001, - "src": "11129:19:0", + "scope": 2029, + "src": "11127:19:4", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -13614,27 +13614,27 @@ "typeName": { "baseType": { "baseType": { - "id": 876, + "id": 1904, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "11129:4:0", + "src": "11127:4:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 878, + "id": 1906, "length": { "argumentTypes": null, "hexValue": "32", - "id": 877, + "id": 1905, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "11134:1:0", + "src": "11132:1:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_2_by_1", @@ -13643,24 +13643,24 @@ "value": "2" }, "nodeType": "ArrayTypeName", - "src": "11129:7:0", + "src": "11127:7:4", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$2_storage_ptr", "typeString": "uint256[2]" } }, - "id": 880, + "id": 1908, "length": { "argumentTypes": null, "hexValue": "32", - "id": 879, + "id": 1907, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "11137:1:0", + "src": "11135:1:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_2_by_1", @@ -13669,7 +13669,7 @@ "value": "2" }, "nodeType": "ArrayTypeName", - "src": "11129:10:0", + "src": "11127:10:4", "typeDescriptions": { "typeIdentifier": "t_array$_t_array$_t_uint256_$2_storage_$2_storage_ptr", "typeString": "uint256[2][2]" @@ -13680,11 +13680,11 @@ }, { "constant": false, - "id": 885, + "id": 1913, "name": "c", "nodeType": "VariableDeclaration", - "scope": 1001, - "src": "11162:16:0", + "scope": 2029, + "src": "11160:16:4", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -13693,27 +13693,27 @@ }, "typeName": { "baseType": { - "id": 882, + "id": 1910, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "11162:4:0", + "src": "11160:4:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 884, + "id": 1912, "length": { "argumentTypes": null, "hexValue": "32", - "id": 883, + "id": 1911, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "11167:1:0", + "src": "11165:1:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_2_by_1", @@ -13722,7 +13722,7 @@ "value": "2" }, "nodeType": "ArrayTypeName", - "src": "11162:7:0", + "src": "11160:7:4", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$2_storage_ptr", "typeString": "uint256[2]" @@ -13733,11 +13733,11 @@ }, { "constant": false, - "id": 889, + "id": 1917, "name": "input", "nodeType": "VariableDeclaration", - "scope": 1001, - "src": "11192:20:0", + "scope": 2029, + "src": "11190:20:4", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -13746,27 +13746,27 @@ }, "typeName": { "baseType": { - "id": 886, + "id": 1914, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "11192:4:0", + "src": "11190:4:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 888, + "id": 1916, "length": { "argumentTypes": null, "hexValue": "36", - "id": 887, + "id": 1915, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "11197:1:0", + "src": "11195:1:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_6_by_1", @@ -13775,7 +13775,7 @@ "value": "6" }, "nodeType": "ArrayTypeName", - "src": "11192:7:0", + "src": "11190:7:4", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$6_storage_ptr", "typeString": "uint256[6]" @@ -13785,19 +13785,19 @@ "visibility": "internal" } ], - "src": "11085:137:0" + "src": "11083:137:4" }, "returnParameters": { - "id": 893, + "id": 1921, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 892, + "id": 1920, "name": "r", "nodeType": "VariableDeclaration", - "scope": 1001, - "src": "11244:6:0", + "scope": 2029, + "src": "11242:6:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -13805,10 +13805,10 @@ "typeString": "bool" }, "typeName": { - "id": 891, + "id": 1919, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "11244:4:0", + "src": "11242:4:4", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -13818,35 +13818,35 @@ "visibility": "internal" } ], - "src": "11243:8:0" + "src": "11241:8:4" }, - "scope": 1058, - "src": "11065:675:0", + "scope": 2086, + "src": "11063:675:4", "stateMutability": "view", "superFunction": null, "visibility": "public" }, { "body": { - "id": 1056, + "id": 2084, "nodeType": "Block", - "src": "11844:262:0", + "src": "11842:262:4", "statements": [ { "assignments": [ - 1016, - 1020, - 1024, - 1028 + 2044, + 2048, + 2052, + 2056 ], "declarations": [ { "constant": false, - "id": 1016, + "id": 2044, "name": "a", "nodeType": "VariableDeclaration", - "scope": 1056, - "src": "11916:16:0", + "scope": 2084, + "src": "11914:16:4", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -13855,27 +13855,27 @@ }, "typeName": { "baseType": { - "id": 1014, + "id": 2042, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "11916:4:0", + "src": "11914:4:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1015, + "id": 2043, "length": { "argumentTypes": null, "hexValue": "32", - "id": 1013, + "id": 2041, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "11921:1:0", + "src": "11919:1:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_2_by_1", @@ -13884,7 +13884,7 @@ "value": "2" }, "nodeType": "ArrayTypeName", - "src": "11916:7:0", + "src": "11914:7:4", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$2_storage_ptr", "typeString": "uint256[2]" @@ -13895,11 +13895,11 @@ }, { "constant": false, - "id": 1020, + "id": 2048, "name": "b1", "nodeType": "VariableDeclaration", - "scope": 1056, - "src": "11934:17:0", + "scope": 2084, + "src": "11932:17:4", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -13908,27 +13908,27 @@ }, "typeName": { "baseType": { - "id": 1017, + "id": 2045, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "11934:4:0", + "src": "11932:4:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1019, + "id": 2047, "length": { "argumentTypes": null, "hexValue": "32", - "id": 1018, + "id": 2046, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "11939:1:0", + "src": "11937:1:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_2_by_1", @@ -13937,7 +13937,7 @@ "value": "2" }, "nodeType": "ArrayTypeName", - "src": "11934:7:0", + "src": "11932:7:4", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$2_storage_ptr", "typeString": "uint256[2]" @@ -13948,11 +13948,11 @@ }, { "constant": false, - "id": 1024, + "id": 2052, "name": "b2", "nodeType": "VariableDeclaration", - "scope": 1056, - "src": "11953:17:0", + "scope": 2084, + "src": "11951:17:4", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -13961,27 +13961,27 @@ }, "typeName": { "baseType": { - "id": 1021, + "id": 2049, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "11953:4:0", + "src": "11951:4:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1023, + "id": 2051, "length": { "argumentTypes": null, "hexValue": "32", - "id": 1022, + "id": 2050, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "11958:1:0", + "src": "11956:1:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_2_by_1", @@ -13990,7 +13990,7 @@ "value": "2" }, "nodeType": "ArrayTypeName", - "src": "11953:7:0", + "src": "11951:7:4", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$2_storage_ptr", "typeString": "uint256[2]" @@ -14001,11 +14001,11 @@ }, { "constant": false, - "id": 1028, + "id": 2056, "name": "c", "nodeType": "VariableDeclaration", - "scope": 1056, - "src": "11972:16:0", + "scope": 2084, + "src": "11970:16:4", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -14014,27 +14014,27 @@ }, "typeName": { "baseType": { - "id": 1025, + "id": 2053, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "11972:4:0", + "src": "11970:4:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1027, + "id": 2055, "length": { "argumentTypes": null, "hexValue": "32", - "id": 1026, + "id": 2054, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "11977:1:0", + "src": "11975:1:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_2_by_1", @@ -14043,7 +14043,7 @@ "value": "2" }, "nodeType": "ArrayTypeName", - "src": "11972:7:0", + "src": "11970:7:4", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$2_storage_ptr", "typeString": "uint256[2]" @@ -14053,18 +14053,18 @@ "visibility": "internal" } ], - "id": 1046, + "id": 2074, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 1031, + "id": 2059, "name": "proof", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1003, - "src": "12003:5:0", + "referencedDeclaration": 2031, + "src": "12001:5:4", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes calldata" @@ -14077,31 +14077,31 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1032, + "id": 2060, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "12011:4:0", + "src": "12009:4:4", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint256_$", "typeString": "type(uint256)" }, "typeName": "uint" }, - "id": 1034, + "id": 2062, "indexExpression": { "argumentTypes": null, "hexValue": "32", - "id": 1033, + "id": 2061, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "12016:1:0", + "src": "12014:1:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_2_by_1", @@ -14114,7 +14114,7 @@ "isPure": true, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "12011:7:0", + "src": "12009:7:4", "typeDescriptions": { "typeIdentifier": "t_type$_t_array$_t_uint256_$2_memory_ptr_$", "typeString": "type(uint256[2] memory)" @@ -14124,31 +14124,31 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1035, + "id": 2063, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "12020:4:0", + "src": "12018:4:4", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint256_$", "typeString": "type(uint256)" }, "typeName": "uint" }, - "id": 1037, + "id": 2065, "indexExpression": { "argumentTypes": null, "hexValue": "32", - "id": 1036, + "id": 2064, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "12025:1:0", + "src": "12023:1:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_2_by_1", @@ -14161,7 +14161,7 @@ "isPure": true, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "12020:7:0", + "src": "12018:7:4", "typeDescriptions": { "typeIdentifier": "t_type$_t_array$_t_uint256_$2_memory_ptr_$", "typeString": "type(uint256[2] memory)" @@ -14171,31 +14171,31 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1038, + "id": 2066, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "12029:4:0", + "src": "12027:4:4", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint256_$", "typeString": "type(uint256)" }, "typeName": "uint" }, - "id": 1040, + "id": 2068, "indexExpression": { "argumentTypes": null, "hexValue": "32", - "id": 1039, + "id": 2067, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "12034:1:0", + "src": "12032:1:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_2_by_1", @@ -14208,7 +14208,7 @@ "isPure": true, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "12029:7:0", + "src": "12027:7:4", "typeDescriptions": { "typeIdentifier": "t_type$_t_array$_t_uint256_$2_memory_ptr_$", "typeString": "type(uint256[2] memory)" @@ -14218,31 +14218,31 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1041, + "id": 2069, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "12038:4:0", + "src": "12036:4:4", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint256_$", "typeString": "type(uint256)" }, "typeName": "uint" }, - "id": 1043, + "id": 2071, "indexExpression": { "argumentTypes": null, "hexValue": "32", - "id": 1042, + "id": 2070, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "12043:1:0", + "src": "12041:1:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_2_by_1", @@ -14255,21 +14255,21 @@ "isPure": true, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "12038:7:0", + "src": "12036:7:4", "typeDescriptions": { "typeIdentifier": "t_type$_t_array$_t_uint256_$2_memory_ptr_$", "typeString": "type(uint256[2] memory)" } } ], - "id": 1044, + "id": 2072, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "12010:36:0", + "src": "12008:36:4", "typeDescriptions": { "typeIdentifier": "t_tuple$_t_type$_t_array$_t_uint256_$2_memory_ptr_$_$_t_type$_t_array$_t_uint256_$2_memory_ptr_$_$_t_type$_t_array$_t_uint256_$2_memory_ptr_$_$_t_type$_t_array$_t_uint256_$2_memory_ptr_$_$", "typeString": "tuple(type(uint256[2] memory),type(uint256[2] memory),type(uint256[2] memory),type(uint256[2] memory))" @@ -14289,18 +14289,18 @@ ], "expression": { "argumentTypes": null, - "id": 1029, + "id": 2057, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1060, - "src": "11992:3:0", + "referencedDeclaration": 2118, + "src": "11990:3:4", "typeDescriptions": { "typeIdentifier": "t_magic_abi", "typeString": "abi" } }, - "id": 1030, + "id": 2058, "isConstant": false, "isLValue": false, "isPure": true, @@ -14308,13 +14308,13 @@ "memberName": "decode", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "11992:10:0", + "src": "11990:10:4", "typeDescriptions": { "typeIdentifier": "t_function_abidecode_pure$__$returns$__$", "typeString": "function () pure" } }, - "id": 1045, + "id": 2073, "isConstant": false, "isLValue": false, "isPure": false, @@ -14322,14 +14322,14 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "11992:55:0", + "src": "11990:55:4", "typeDescriptions": { "typeIdentifier": "t_tuple$_t_array$_t_uint256_$2_memory_$_t_array$_t_uint256_$2_memory_$_t_array$_t_uint256_$2_memory_$_t_array$_t_uint256_$2_memory_$", "typeString": "tuple(uint256[2] memory,uint256[2] memory,uint256[2] memory,uint256[2] memory)" } }, "nodeType": "VariableDeclarationStatement", - "src": "11915:132:0" + "src": "11913:132:4" }, { "expression": { @@ -14337,12 +14337,12 @@ "arguments": [ { "argumentTypes": null, - "id": 1048, + "id": 2076, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1016, - "src": "12076:1:0", + "referencedDeclaration": 2044, + "src": "12074:1:4", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", "typeString": "uint256[2] memory" @@ -14353,12 +14353,12 @@ "components": [ { "argumentTypes": null, - "id": 1049, + "id": 2077, "name": "b1", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1020, - "src": "12080:2:0", + "referencedDeclaration": 2048, + "src": "12078:2:4", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", "typeString": "uint256[2] memory" @@ -14366,26 +14366,26 @@ }, { "argumentTypes": null, - "id": 1050, + "id": 2078, "name": "b2", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1024, - "src": "12084:2:0", + "referencedDeclaration": 2052, + "src": "12082:2:4", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", "typeString": "uint256[2] memory" } } ], - "id": 1051, + "id": 2079, "isConstant": false, "isInlineArray": true, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "12079:8:0", + "src": "12077:8:4", "typeDescriptions": { "typeIdentifier": "t_array$_t_array$_t_uint256_$2_memory_$2_memory_ptr", "typeString": "uint256[2] memory[2] memory" @@ -14393,12 +14393,12 @@ }, { "argumentTypes": null, - "id": 1052, + "id": 2080, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1028, - "src": "12089:1:0", + "referencedDeclaration": 2056, + "src": "12087:1:4", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", "typeString": "uint256[2] memory" @@ -14406,12 +14406,12 @@ }, { "argumentTypes": null, - "id": 1053, + "id": 2081, "name": "inputs", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1007, - "src": "12092:6:0", + "referencedDeclaration": 2035, + "src": "12090:6:4", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$6_calldata_ptr", "typeString": "uint256[6] calldata" @@ -14437,18 +14437,18 @@ "typeString": "uint256[6] calldata" } ], - "id": 1047, + "id": 2075, "name": "verifyProof", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1001, - "src": "12064:11:0", + "referencedDeclaration": 2029, + "src": "12062:11:4", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_array$_t_uint256_$2_memory_ptr_$_t_array$_t_array$_t_uint256_$2_memory_$2_memory_ptr_$_t_array$_t_uint256_$2_memory_ptr_$_t_array$_t_uint256_$6_memory_ptr_$returns$_t_bool_$", "typeString": "function (uint256[2] memory,uint256[2] memory[2] memory,uint256[2] memory,uint256[6] memory) view returns (bool)" } }, - "id": 1054, + "id": 2082, "isConstant": false, "isLValue": false, "isPure": false, @@ -14456,37 +14456,37 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "12064:35:0", + "src": "12062:35:4", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "functionReturnParameters": 1011, - "id": 1055, + "functionReturnParameters": 2039, + "id": 2083, "nodeType": "Return", - "src": "12057:42:0" + "src": "12055:42:4" } ] }, "documentation": null, - "id": 1057, + "id": 2085, "implemented": true, "kind": "function", "modifiers": [], "name": "verifyProof", "nodeType": "FunctionDefinition", "parameters": { - "id": 1008, + "id": 2036, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1003, + "id": 2031, "name": "proof", "nodeType": "VariableDeclaration", - "scope": 1057, - "src": "11766:20:0", + "scope": 2085, + "src": "11764:20:4", "stateVariable": false, "storageLocation": "calldata", "typeDescriptions": { @@ -14494,10 +14494,10 @@ "typeString": "bytes" }, "typeName": { - "id": 1002, + "id": 2030, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "11766:5:0", + "src": "11764:5:4", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -14508,11 +14508,11 @@ }, { "constant": false, - "id": 1007, + "id": 2035, "name": "inputs", "nodeType": "VariableDeclaration", - "scope": 1057, - "src": "11788:23:0", + "scope": 2085, + "src": "11786:23:4", "stateVariable": false, "storageLocation": "calldata", "typeDescriptions": { @@ -14521,27 +14521,27 @@ }, "typeName": { "baseType": { - "id": 1004, + "id": 2032, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "11788:4:0", + "src": "11786:4:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1006, + "id": 2034, "length": { "argumentTypes": null, "hexValue": "36", - "id": 1005, + "id": 2033, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "11793:1:0", + "src": "11791:1:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_6_by_1", @@ -14550,7 +14550,7 @@ "value": "6" }, "nodeType": "ArrayTypeName", - "src": "11788:7:0", + "src": "11786:7:4", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$6_storage_ptr", "typeString": "uint256[6]" @@ -14560,19 +14560,19 @@ "visibility": "internal" } ], - "src": "11765:47:0" + "src": "11763:47:4" }, "returnParameters": { - "id": 1011, + "id": 2039, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1010, + "id": 2038, "name": "r", "nodeType": "VariableDeclaration", - "scope": 1057, - "src": "11836:6:0", + "scope": 2085, + "src": "11834:6:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -14580,10 +14580,10 @@ "typeString": "bool" }, "typeName": { - "id": 1009, + "id": 2037, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "11836:4:0", + "src": "11834:4:4", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -14593,30 +14593,30 @@ "visibility": "internal" } ], - "src": "11835:8:0" + "src": "11833:8:4" }, - "scope": 1058, - "src": "11745:361:0", + "scope": 2086, + "src": "11743:361:4", "stateMutability": "view", "superFunction": null, "visibility": "external" } ], - "scope": 1059, - "src": "7067:5041:0" + "scope": 2087, + "src": "7067:5039:4" } ], - "src": "1193:10916:0" + "src": "1193:10914:4" }, "legacyAST": { "attributes": { "absolutePath": "/Users/brianli/dotfiles/tornado-core/contracts/Verifier.sol", "exportedSymbols": { "Pairing": [ - 577 + 1605 ], "Verifier": [ - 1058 + 2086 ] } }, @@ -14630,9 +14630,9 @@ ".0" ] }, - "id": 1, + "id": 1029, "name": "PragmaDirective", - "src": "1193:23:0" + "src": "1193:23:4" }, { "attributes": { @@ -14646,17 +14646,17 @@ "documentation": null, "fullyImplemented": true, "linearizedBaseContracts": [ - 577 + 1605 ], "name": "Pairing", - "scope": 1059 + "scope": 2087 }, "children": [ { "attributes": { "canonicalName": "Pairing.G1Point", "name": "G1Point", - "scope": 577, + "scope": 1605, "visibility": "public" }, "children": [ @@ -14664,7 +14664,7 @@ "attributes": { "constant": false, "name": "X", - "scope": 6, + "scope": 1034, "stateVariable": false, "storageLocation": "default", "type": "uint256", @@ -14677,20 +14677,20 @@ "name": "uint", "type": "uint256" }, - "id": 2, + "id": 1030, "name": "ElementaryTypeName", - "src": "1264:4:0" + "src": "1264:4:4" } ], - "id": 3, + "id": 1031, "name": "VariableDeclaration", - "src": "1264:6:0" + "src": "1264:6:4" }, { "attributes": { "constant": false, "name": "Y", - "scope": 6, + "scope": 1034, "stateVariable": false, "storageLocation": "default", "type": "uint256", @@ -14703,25 +14703,25 @@ "name": "uint", "type": "uint256" }, - "id": 4, + "id": 1032, "name": "ElementaryTypeName", - "src": "1280:4:0" + "src": "1280:4:4" } ], - "id": 5, + "id": 1033, "name": "VariableDeclaration", - "src": "1280:6:0" + "src": "1280:6:4" } ], - "id": 6, + "id": 1034, "name": "StructDefinition", - "src": "1239:54:0" + "src": "1239:54:4" }, { "attributes": { "canonicalName": "Pairing.G2Point", "name": "G2Point", - "scope": 577, + "scope": 1605, "visibility": "public" }, "children": [ @@ -14729,7 +14729,7 @@ "attributes": { "constant": false, "name": "X", - "scope": 15, + "scope": 1043, "stateVariable": false, "storageLocation": "default", "type": "uint256[2]", @@ -14747,9 +14747,9 @@ "name": "uint", "type": "uint256" }, - "id": 7, + "id": 1035, "name": "ElementaryTypeName", - "src": "1377:4:0" + "src": "1377:4:4" }, { "attributes": { @@ -14764,25 +14764,25 @@ "type": "int_const 2", "value": "2" }, - "id": 8, + "id": 1036, "name": "Literal", - "src": "1382:1:0" + "src": "1382:1:4" } ], - "id": 9, + "id": 1037, "name": "ArrayTypeName", - "src": "1377:7:0" + "src": "1377:7:4" } ], - "id": 10, + "id": 1038, "name": "VariableDeclaration", - "src": "1377:9:0" + "src": "1377:9:4" }, { "attributes": { "constant": false, "name": "Y", - "scope": 15, + "scope": 1043, "stateVariable": false, "storageLocation": "default", "type": "uint256[2]", @@ -14800,9 +14800,9 @@ "name": "uint", "type": "uint256" }, - "id": 11, + "id": 1039, "name": "ElementaryTypeName", - "src": "1396:4:0" + "src": "1396:4:4" }, { "attributes": { @@ -14817,24 +14817,24 @@ "type": "int_const 2", "value": "2" }, - "id": 12, + "id": 1040, "name": "Literal", - "src": "1401:1:0" + "src": "1401:1:4" } ], - "id": 13, + "id": 1041, "name": "ArrayTypeName", - "src": "1396:7:0" + "src": "1396:7:4" } ], - "id": 14, + "id": 1042, "name": "VariableDeclaration", - "src": "1396:9:0" + "src": "1396:9:4" } ], - "id": 15, + "id": 1043, "name": "StructDefinition", - "src": "1352:60:0" + "src": "1352:60:4" }, { "attributes": { @@ -14846,7 +14846,7 @@ null ], "name": "P1", - "scope": 577, + "scope": 1605, "stateMutability": "pure", "superFunction": null, "visibility": "internal" @@ -14859,9 +14859,9 @@ ] }, "children": [], - "id": 16, + "id": 1044, "name": "ParameterList", - "src": "1464:2:0" + "src": "1464:2:4" }, { "children": [ @@ -14869,7 +14869,7 @@ "attributes": { "constant": false, "name": "", - "scope": 26, + "scope": 1054, "stateVariable": false, "storageLocation": "memory", "type": "struct Pairing.G1Point", @@ -14881,28 +14881,28 @@ "attributes": { "contractScope": null, "name": "G1Point", - "referencedDeclaration": 6, + "referencedDeclaration": 1034, "type": "struct Pairing.G1Point" }, - "id": 17, + "id": 1045, "name": "UserDefinedTypeName", - "src": "1490:7:0" + "src": "1490:7:4" } ], - "id": 18, + "id": 1046, "name": "VariableDeclaration", - "src": "1490:14:0" + "src": "1490:14:4" } ], - "id": 19, + "id": 1047, "name": "ParameterList", - "src": "1489:16:0" + "src": "1489:16:4" }, { "children": [ { "attributes": { - "functionReturnParameters": 19 + "functionReturnParameters": 1047 }, "children": [ { @@ -14935,13 +14935,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 6, + "referencedDeclaration": 1034, "type": "type(struct Pairing.G1Point storage pointer)", "value": "G1Point" }, - "id": 20, + "id": 1048, "name": "Identifier", - "src": "1523:7:0" + "src": "1523:7:4" }, { "attributes": { @@ -14956,9 +14956,9 @@ "type": "int_const 1", "value": "1" }, - "id": 21, + "id": 1049, "name": "Literal", - "src": "1531:1:0" + "src": "1531:1:4" }, { "attributes": { @@ -14973,29 +14973,29 @@ "type": "int_const 2", "value": "2" }, - "id": 22, + "id": 1050, "name": "Literal", - "src": "1534:1:0" + "src": "1534:1:4" } ], - "id": 23, + "id": 1051, "name": "FunctionCall", - "src": "1523:13:0" + "src": "1523:13:4" } ], - "id": 24, + "id": 1052, "name": "Return", - "src": "1516:20:0" + "src": "1516:20:4" } ], - "id": 25, + "id": 1053, "name": "Block", - "src": "1506:37:0" + "src": "1506:37:4" } ], - "id": 26, + "id": 1054, "name": "FunctionDefinition", - "src": "1453:90:0" + "src": "1453:90:4" }, { "attributes": { @@ -15007,7 +15007,7 @@ null ], "name": "P2", - "scope": 577, + "scope": 1605, "stateMutability": "pure", "superFunction": null, "visibility": "internal" @@ -15020,9 +15020,9 @@ ] }, "children": [], - "id": 27, + "id": 1055, "name": "ParameterList", - "src": "1595:2:0" + "src": "1595:2:4" }, { "children": [ @@ -15030,7 +15030,7 @@ "attributes": { "constant": false, "name": "", - "scope": 41, + "scope": 1069, "stateVariable": false, "storageLocation": "memory", "type": "struct Pairing.G2Point", @@ -15042,28 +15042,28 @@ "attributes": { "contractScope": null, "name": "G2Point", - "referencedDeclaration": 15, + "referencedDeclaration": 1043, "type": "struct Pairing.G2Point" }, - "id": 28, + "id": 1056, "name": "UserDefinedTypeName", - "src": "1621:7:0" + "src": "1621:7:4" } ], - "id": 29, + "id": 1057, "name": "VariableDeclaration", - "src": "1621:14:0" + "src": "1621:14:4" } ], - "id": 30, + "id": 1058, "name": "ParameterList", - "src": "1620:16:0" + "src": "1620:16:4" }, { "children": [ { "attributes": { - "functionReturnParameters": 30 + "functionReturnParameters": 1058 }, "children": [ { @@ -15096,13 +15096,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 15, + "referencedDeclaration": 1043, "type": "type(struct Pairing.G2Point storage pointer)", "value": "G2Point" }, - "id": 31, + "id": 1059, "name": "Identifier", - "src": "1685:7:0" + "src": "1685:7:4" }, { "attributes": { @@ -15128,9 +15128,9 @@ "type": "int_const 1155...(69 digits omitted)...5634", "value": "11559732032986387107991004021392285783925812861821192530917403151452391805634" }, - "id": 32, + "id": 1060, "name": "Literal", - "src": "1707:77:0" + "src": "1707:77:4" }, { "attributes": { @@ -15145,14 +15145,14 @@ "type": "int_const 1085...(69 digits omitted)...2781", "value": "10857046999023057135944570762232829481370756359578518086990519993285655852781" }, - "id": 33, + "id": 1061, "name": "Literal", - "src": "1799:77:0" + "src": "1799:77:4" } ], - "id": 34, + "id": 1062, "name": "TupleExpression", - "src": "1706:171:0" + "src": "1706:171:4" }, { "attributes": { @@ -15178,9 +15178,9 @@ "type": "int_const 4082...(68 digits omitted)...3531", "value": "4082367875863433681332203403145435568316851327593401208105741076214120093531" }, - "id": 35, + "id": 1063, "name": "Literal", - "src": "1892:76:0" + "src": "1892:76:4" }, { "attributes": { @@ -15195,34 +15195,34 @@ "type": "int_const 8495...(68 digits omitted)...1930", "value": "8495653923123431417604973247489272438418190587263600148770280649306958101930" }, - "id": 36, + "id": 1064, "name": "Literal", - "src": "1983:76:0" + "src": "1983:76:4" } ], - "id": 37, + "id": 1065, "name": "TupleExpression", - "src": "1891:169:0" + "src": "1891:169:4" } ], - "id": 38, + "id": 1066, "name": "FunctionCall", - "src": "1685:385:0" + "src": "1685:385:4" } ], - "id": 39, + "id": 1067, "name": "Return", - "src": "1678:392:0" + "src": "1678:392:4" } ], - "id": 40, + "id": 1068, "name": "Block", - "src": "1637:883:0" + "src": "1637:883:4" } ], - "id": 41, + "id": 1069, "name": "FunctionDefinition", - "src": "1584:936:0" + "src": "1584:936:4" }, { "attributes": { @@ -15234,7 +15234,7 @@ null ], "name": "negate", - "scope": 577, + "scope": 1605, "stateMutability": "pure", "superFunction": null, "visibility": "internal" @@ -15246,7 +15246,7 @@ "attributes": { "constant": false, "name": "p", - "scope": 80, + "scope": 1108, "stateVariable": false, "storageLocation": "memory", "type": "struct Pairing.G1Point", @@ -15258,22 +15258,22 @@ "attributes": { "contractScope": null, "name": "G1Point", - "referencedDeclaration": 6, + "referencedDeclaration": 1034, "type": "struct Pairing.G1Point" }, - "id": 42, + "id": 1070, "name": "UserDefinedTypeName", - "src": "2620:7:0" + "src": "2620:7:4" } ], - "id": 43, + "id": 1071, "name": "VariableDeclaration", - "src": "2620:16:0" + "src": "2620:16:4" } ], - "id": 44, + "id": 1072, "name": "ParameterList", - "src": "2619:18:0" + "src": "2619:18:4" }, { "children": [ @@ -15281,7 +15281,7 @@ "attributes": { "constant": false, "name": "", - "scope": 80, + "scope": 1108, "stateVariable": false, "storageLocation": "memory", "type": "struct Pairing.G1Point", @@ -15293,29 +15293,29 @@ "attributes": { "contractScope": null, "name": "G1Point", - "referencedDeclaration": 6, + "referencedDeclaration": 1034, "type": "struct Pairing.G1Point" }, - "id": 45, + "id": 1073, "name": "UserDefinedTypeName", - "src": "2661:7:0" + "src": "2661:7:4" } ], - "id": 46, + "id": 1074, "name": "VariableDeclaration", - "src": "2661:14:0" + "src": "2661:14:4" } ], - "id": 47, + "id": 1075, "name": "ParameterList", - "src": "2660:16:0" + "src": "2660:16:4" }, { "children": [ { "attributes": { "assignments": [ - 49 + 1077 ] }, "children": [ @@ -15323,7 +15323,7 @@ "attributes": { "constant": false, "name": "q", - "scope": 79, + "scope": 1107, "stateVariable": false, "storageLocation": "default", "type": "uint256", @@ -15336,14 +15336,14 @@ "name": "uint", "type": "uint256" }, - "id": 48, + "id": 1076, "name": "ElementaryTypeName", - "src": "2739:4:0" + "src": "2739:4:4" } ], - "id": 49, + "id": 1077, "name": "VariableDeclaration", - "src": "2739:6:0" + "src": "2739:6:4" }, { "attributes": { @@ -15358,14 +15358,14 @@ "type": "int_const 2188...(69 digits omitted)...8583", "value": "21888242871839275222246405745257275088696311157297823662689037894645226208583" }, - "id": 50, + "id": 1078, "name": "Literal", - "src": "2748:77:0" + "src": "2748:77:4" } ], - "id": 51, + "id": 1079, "name": "VariableDeclarationStatement", - "src": "2739:86:0" + "src": "2739:86:4" }, { "attributes": { @@ -15410,7 +15410,7 @@ "isPure": false, "lValueRequested": false, "member_name": "X", - "referencedDeclaration": 3, + "referencedDeclaration": 1031, "type": "uint256" }, "children": [ @@ -15420,18 +15420,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 43, + "referencedDeclaration": 1071, "type": "struct Pairing.G1Point memory", "value": "p" }, - "id": 52, + "id": 1080, "name": "Identifier", - "src": "2839:1:0" + "src": "2839:1:4" } ], - "id": 53, + "id": 1081, "name": "MemberAccess", - "src": "2839:3:0" + "src": "2839:3:4" }, { "attributes": { @@ -15446,14 +15446,14 @@ "type": "int_const 0", "value": "0" }, - "id": 54, + "id": 1082, "name": "Literal", - "src": "2846:1:0" + "src": "2846:1:4" } ], - "id": 55, + "id": 1083, "name": "BinaryOperation", - "src": "2839:8:0" + "src": "2839:8:4" }, { "attributes": { @@ -15478,7 +15478,7 @@ "isPure": false, "lValueRequested": false, "member_name": "Y", - "referencedDeclaration": 5, + "referencedDeclaration": 1033, "type": "uint256" }, "children": [ @@ -15488,18 +15488,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 43, + "referencedDeclaration": 1071, "type": "struct Pairing.G1Point memory", "value": "p" }, - "id": 56, + "id": 1084, "name": "Identifier", - "src": "2851:1:0" + "src": "2851:1:4" } ], - "id": 57, + "id": 1085, "name": "MemberAccess", - "src": "2851:3:0" + "src": "2851:3:4" }, { "attributes": { @@ -15514,23 +15514,23 @@ "type": "int_const 0", "value": "0" }, - "id": 58, + "id": 1086, "name": "Literal", - "src": "2858:1:0" + "src": "2858:1:4" } ], - "id": 59, + "id": 1087, "name": "BinaryOperation", - "src": "2851:8:0" + "src": "2851:8:4" } ], - "id": 60, + "id": 1088, "name": "BinaryOperation", - "src": "2839:20:0" + "src": "2839:20:4" }, { "attributes": { - "functionReturnParameters": 47 + "functionReturnParameters": 1075 }, "children": [ { @@ -15563,13 +15563,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 6, + "referencedDeclaration": 1034, "type": "type(struct Pairing.G1Point storage pointer)", "value": "G1Point" }, - "id": 61, + "id": 1089, "name": "Identifier", - "src": "2880:7:0" + "src": "2880:7:4" }, { "attributes": { @@ -15584,9 +15584,9 @@ "type": "int_const 0", "value": "0" }, - "id": 62, + "id": 1090, "name": "Literal", - "src": "2888:1:0" + "src": "2888:1:4" }, { "attributes": { @@ -15601,28 +15601,28 @@ "type": "int_const 0", "value": "0" }, - "id": 63, + "id": 1091, "name": "Literal", - "src": "2891:1:0" + "src": "2891:1:4" } ], - "id": 64, + "id": 1092, "name": "FunctionCall", - "src": "2880:13:0" + "src": "2880:13:4" } ], - "id": 65, + "id": 1093, "name": "Return", - "src": "2873:20:0" + "src": "2873:20:4" } ], - "id": 66, + "id": 1094, "name": "IfStatement", - "src": "2835:58:0" + "src": "2835:58:4" }, { "attributes": { - "functionReturnParameters": 47 + "functionReturnParameters": 1075 }, "children": [ { @@ -15655,13 +15655,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 6, + "referencedDeclaration": 1034, "type": "type(struct Pairing.G1Point storage pointer)", "value": "G1Point" }, - "id": 67, + "id": 1095, "name": "Identifier", - "src": "2910:7:0" + "src": "2910:7:4" }, { "attributes": { @@ -15671,7 +15671,7 @@ "isPure": false, "lValueRequested": false, "member_name": "X", - "referencedDeclaration": 3, + "referencedDeclaration": 1031, "type": "uint256" }, "children": [ @@ -15681,18 +15681,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 43, + "referencedDeclaration": 1071, "type": "struct Pairing.G1Point memory", "value": "p" }, - "id": 68, + "id": 1096, "name": "Identifier", - "src": "2918:1:0" + "src": "2918:1:4" } ], - "id": 69, + "id": 1097, "name": "MemberAccess", - "src": "2918:3:0" + "src": "2918:3:4" }, { "attributes": { @@ -15715,13 +15715,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 49, + "referencedDeclaration": 1077, "type": "uint256", "value": "q" }, - "id": 70, + "id": 1098, "name": "Identifier", - "src": "2923:1:0" + "src": "2923:1:4" }, { "attributes": { @@ -15757,7 +15757,7 @@ "isPure": false, "lValueRequested": false, "member_name": "Y", - "referencedDeclaration": 5, + "referencedDeclaration": 1033, "type": "uint256" }, "children": [ @@ -15767,18 +15767,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 43, + "referencedDeclaration": 1071, "type": "struct Pairing.G1Point memory", "value": "p" }, - "id": 71, + "id": 1099, "name": "Identifier", - "src": "2928:1:0" + "src": "2928:1:4" } ], - "id": 72, + "id": 1100, "name": "MemberAccess", - "src": "2928:3:0" + "src": "2928:3:4" }, { "attributes": { @@ -15786,48 +15786,48 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 49, + "referencedDeclaration": 1077, "type": "uint256", "value": "q" }, - "id": 73, + "id": 1101, "name": "Identifier", - "src": "2934:1:0" + "src": "2934:1:4" } ], - "id": 74, + "id": 1102, "name": "BinaryOperation", - "src": "2928:7:0" + "src": "2928:7:4" } ], - "id": 75, + "id": 1103, "name": "TupleExpression", - "src": "2927:9:0" + "src": "2927:9:4" } ], - "id": 76, + "id": 1104, "name": "BinaryOperation", - "src": "2923:13:0" + "src": "2923:13:4" } ], - "id": 77, + "id": 1105, "name": "FunctionCall", - "src": "2910:27:0" + "src": "2910:27:4" } ], - "id": 78, + "id": 1106, "name": "Return", - "src": "2903:34:0" + "src": "2903:34:4" } ], - "id": 79, + "id": 1107, "name": "Block", - "src": "2677:267:0" + "src": "2677:267:4" } ], - "id": 80, + "id": 1108, "name": "FunctionDefinition", - "src": "2604:340:0" + "src": "2604:340:4" }, { "attributes": { @@ -15839,7 +15839,7 @@ null ], "name": "addition", - "scope": 577, + "scope": 1605, "stateMutability": "view", "superFunction": null, "visibility": "internal" @@ -15851,7 +15851,7 @@ "attributes": { "constant": false, "name": "p1", - "scope": 133, + "scope": 1161, "stateVariable": false, "storageLocation": "memory", "type": "struct Pairing.G1Point", @@ -15863,23 +15863,23 @@ "attributes": { "contractScope": null, "name": "G1Point", - "referencedDeclaration": 6, + "referencedDeclaration": 1034, "type": "struct Pairing.G1Point" }, - "id": 81, + "id": 1109, "name": "UserDefinedTypeName", - "src": "3011:7:0" + "src": "3011:7:4" } ], - "id": 82, + "id": 1110, "name": "VariableDeclaration", - "src": "3011:17:0" + "src": "3011:17:4" }, { "attributes": { "constant": false, "name": "p2", - "scope": 133, + "scope": 1161, "stateVariable": false, "storageLocation": "memory", "type": "struct Pairing.G1Point", @@ -15891,22 +15891,22 @@ "attributes": { "contractScope": null, "name": "G1Point", - "referencedDeclaration": 6, + "referencedDeclaration": 1034, "type": "struct Pairing.G1Point" }, - "id": 83, + "id": 1111, "name": "UserDefinedTypeName", - "src": "3030:7:0" + "src": "3030:7:4" } ], - "id": 84, + "id": 1112, "name": "VariableDeclaration", - "src": "3030:17:0" + "src": "3030:17:4" } ], - "id": 85, + "id": 1113, "name": "ParameterList", - "src": "3010:38:0" + "src": "3010:38:4" }, { "children": [ @@ -15914,7 +15914,7 @@ "attributes": { "constant": false, "name": "r", - "scope": 133, + "scope": 1161, "stateVariable": false, "storageLocation": "memory", "type": "struct Pairing.G1Point", @@ -15926,29 +15926,29 @@ "attributes": { "contractScope": null, "name": "G1Point", - "referencedDeclaration": 6, + "referencedDeclaration": 1034, "type": "struct Pairing.G1Point" }, - "id": 86, + "id": 1114, "name": "UserDefinedTypeName", - "src": "3072:7:0" + "src": "3072:7:4" } ], - "id": 87, + "id": 1115, "name": "VariableDeclaration", - "src": "3072:16:0" + "src": "3072:16:4" } ], - "id": 88, + "id": 1116, "name": "ParameterList", - "src": "3071:18:0" + "src": "3071:18:4" }, { "children": [ { "attributes": { "assignments": [ - 93 + 1121 ], "initialValue": null }, @@ -15957,7 +15957,7 @@ "attributes": { "constant": false, "name": "input", - "scope": 132, + "scope": 1160, "stateVariable": false, "storageLocation": "memory", "type": "uint256[4]", @@ -15975,9 +15975,9 @@ "name": "uint", "type": "uint256" }, - "id": 91, + "id": 1119, "name": "ElementaryTypeName", - "src": "3100:4:0" + "src": "3100:4:4" }, { "attributes": { @@ -15992,24 +15992,24 @@ "type": "int_const 4", "value": "4" }, - "id": 90, + "id": 1118, "name": "Literal", - "src": "3105:1:0" + "src": "3105:1:4" } ], - "id": 92, + "id": 1120, "name": "ArrayTypeName", - "src": "3100:7:0" + "src": "3100:7:4" } ], - "id": 93, + "id": 1121, "name": "VariableDeclaration", - "src": "3100:20:0" + "src": "3100:20:4" } ], - "id": 94, + "id": 1122, "name": "VariableDeclarationStatement", - "src": "3100:20:0" + "src": "3100:20:4" }, { "children": [ @@ -16040,13 +16040,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 93, + "referencedDeclaration": 1121, "type": "uint256[4] memory", "value": "input" }, - "id": 95, + "id": 1123, "name": "Identifier", - "src": "3130:5:0" + "src": "3130:5:4" }, { "attributes": { @@ -16061,14 +16061,14 @@ "type": "int_const 0", "value": "0" }, - "id": 96, + "id": 1124, "name": "Literal", - "src": "3136:1:0" + "src": "3136:1:4" } ], - "id": 97, + "id": 1125, "name": "IndexAccess", - "src": "3130:8:0" + "src": "3130:8:4" }, { "attributes": { @@ -16078,7 +16078,7 @@ "isPure": false, "lValueRequested": false, "member_name": "X", - "referencedDeclaration": 3, + "referencedDeclaration": 1031, "type": "uint256" }, "children": [ @@ -16088,28 +16088,28 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 82, + "referencedDeclaration": 1110, "type": "struct Pairing.G1Point memory", "value": "p1" }, - "id": 98, + "id": 1126, "name": "Identifier", - "src": "3141:2:0" + "src": "3141:2:4" } ], - "id": 99, + "id": 1127, "name": "MemberAccess", - "src": "3141:4:0" + "src": "3141:4:4" } ], - "id": 100, + "id": 1128, "name": "Assignment", - "src": "3130:15:0" + "src": "3130:15:4" } ], - "id": 101, + "id": 1129, "name": "ExpressionStatement", - "src": "3130:15:0" + "src": "3130:15:4" }, { "children": [ @@ -16140,13 +16140,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 93, + "referencedDeclaration": 1121, "type": "uint256[4] memory", "value": "input" }, - "id": 102, + "id": 1130, "name": "Identifier", - "src": "3155:5:0" + "src": "3155:5:4" }, { "attributes": { @@ -16161,14 +16161,14 @@ "type": "int_const 1", "value": "1" }, - "id": 103, + "id": 1131, "name": "Literal", - "src": "3161:1:0" + "src": "3161:1:4" } ], - "id": 104, + "id": 1132, "name": "IndexAccess", - "src": "3155:8:0" + "src": "3155:8:4" }, { "attributes": { @@ -16178,7 +16178,7 @@ "isPure": false, "lValueRequested": false, "member_name": "Y", - "referencedDeclaration": 5, + "referencedDeclaration": 1033, "type": "uint256" }, "children": [ @@ -16188,28 +16188,28 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 82, + "referencedDeclaration": 1110, "type": "struct Pairing.G1Point memory", "value": "p1" }, - "id": 105, + "id": 1133, "name": "Identifier", - "src": "3166:2:0" + "src": "3166:2:4" } ], - "id": 106, + "id": 1134, "name": "MemberAccess", - "src": "3166:4:0" + "src": "3166:4:4" } ], - "id": 107, + "id": 1135, "name": "Assignment", - "src": "3155:15:0" + "src": "3155:15:4" } ], - "id": 108, + "id": 1136, "name": "ExpressionStatement", - "src": "3155:15:0" + "src": "3155:15:4" }, { "children": [ @@ -16240,13 +16240,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 93, + "referencedDeclaration": 1121, "type": "uint256[4] memory", "value": "input" }, - "id": 109, + "id": 1137, "name": "Identifier", - "src": "3180:5:0" + "src": "3180:5:4" }, { "attributes": { @@ -16261,14 +16261,14 @@ "type": "int_const 2", "value": "2" }, - "id": 110, + "id": 1138, "name": "Literal", - "src": "3186:1:0" + "src": "3186:1:4" } ], - "id": 111, + "id": 1139, "name": "IndexAccess", - "src": "3180:8:0" + "src": "3180:8:4" }, { "attributes": { @@ -16278,7 +16278,7 @@ "isPure": false, "lValueRequested": false, "member_name": "X", - "referencedDeclaration": 3, + "referencedDeclaration": 1031, "type": "uint256" }, "children": [ @@ -16288,28 +16288,28 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 84, + "referencedDeclaration": 1112, "type": "struct Pairing.G1Point memory", "value": "p2" }, - "id": 112, + "id": 1140, "name": "Identifier", - "src": "3191:2:0" + "src": "3191:2:4" } ], - "id": 113, + "id": 1141, "name": "MemberAccess", - "src": "3191:4:0" + "src": "3191:4:4" } ], - "id": 114, + "id": 1142, "name": "Assignment", - "src": "3180:15:0" + "src": "3180:15:4" } ], - "id": 115, + "id": 1143, "name": "ExpressionStatement", - "src": "3180:15:0" + "src": "3180:15:4" }, { "children": [ @@ -16340,13 +16340,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 93, + "referencedDeclaration": 1121, "type": "uint256[4] memory", "value": "input" }, - "id": 116, + "id": 1144, "name": "Identifier", - "src": "3205:5:0" + "src": "3205:5:4" }, { "attributes": { @@ -16361,14 +16361,14 @@ "type": "int_const 3", "value": "3" }, - "id": 117, + "id": 1145, "name": "Literal", - "src": "3211:1:0" + "src": "3211:1:4" } ], - "id": 118, + "id": 1146, "name": "IndexAccess", - "src": "3205:8:0" + "src": "3205:8:4" }, { "attributes": { @@ -16378,7 +16378,7 @@ "isPure": false, "lValueRequested": false, "member_name": "Y", - "referencedDeclaration": 5, + "referencedDeclaration": 1033, "type": "uint256" }, "children": [ @@ -16388,33 +16388,33 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 84, + "referencedDeclaration": 1112, "type": "struct Pairing.G1Point memory", "value": "p2" }, - "id": 119, + "id": 1147, "name": "Identifier", - "src": "3216:2:0" + "src": "3216:2:4" } ], - "id": 120, + "id": 1148, "name": "MemberAccess", - "src": "3216:4:0" + "src": "3216:4:4" } ], - "id": 121, + "id": 1149, "name": "Assignment", - "src": "3205:15:0" + "src": "3205:15:4" } ], - "id": 122, + "id": 1150, "name": "ExpressionStatement", - "src": "3205:15:0" + "src": "3205:15:4" }, { "attributes": { "assignments": [ - 124 + 1152 ], "initialValue": null }, @@ -16423,7 +16423,7 @@ "attributes": { "constant": false, "name": "success", - "scope": 132, + "scope": 1160, "stateVariable": false, "storageLocation": "default", "type": "bool", @@ -16436,56 +16436,56 @@ "name": "bool", "type": "bool" }, - "id": 123, + "id": 1151, "name": "ElementaryTypeName", - "src": "3230:4:0" + "src": "3230:4:4" } ], - "id": 124, + "id": 1152, "name": "VariableDeclaration", - "src": "3230:12:0" + "src": "3230:12:4" } ], - "id": 125, + "id": 1153, "name": "VariableDeclarationStatement", - "src": "3230:12:0" + "src": "3230:12:4" }, { "attributes": { "externalReferences": [ { "success": { - "declaration": 124, + "declaration": 1152, "isOffset": false, "isSlot": false, - "src": "3339:7:0", + "src": "3339:7:4", "valueSize": 1 } }, { "input": { - "declaration": 93, + "declaration": 1121, "isOffset": false, "isSlot": false, - "src": "3380:5:0", + "src": "3380:5:4", "valueSize": 1 } }, { "r": { - "declaration": 87, + "declaration": 1115, "isOffset": false, "isSlot": false, - "src": "3393:1:0", + "src": "3393:1:4", "valueSize": 1 } }, { "success": { - "declaration": 124, + "declaration": 1152, "isOffset": false, "isSlot": false, - "src": "3478:7:0", + "src": "3478:7:4", "valueSize": 1 } } @@ -16493,9 +16493,9 @@ "operations": "{\n success := staticcall(sub(gas(), 2000), 6, input, 0xc0, r, 0x60)\n switch success\n case 0 { invalid() }\n}" }, "children": [], - "id": 126, + "id": 1154, "name": "InlineAssembly", - "src": "3316:200:0" + "src": "3316:200:4" }, { "children": [ @@ -16527,16 +16527,16 @@ } ], "overloadedDeclarations": [ - 1076, - 1077 + 2134, + 2135 ], - "referencedDeclaration": 1077, + "referencedDeclaration": 2135, "type": "function (bool,string memory) pure", "value": "require" }, - "id": 127, + "id": 1155, "name": "Identifier", - "src": "3525:7:0" + "src": "3525:7:4" }, { "attributes": { @@ -16544,13 +16544,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 124, + "referencedDeclaration": 1152, "type": "bool", "value": "success" }, - "id": 128, + "id": 1156, "name": "Identifier", - "src": "3533:7:0" + "src": "3533:7:4" }, { "attributes": { @@ -16565,29 +16565,29 @@ "type": "literal_string \"pairing-add-failed\"", "value": "pairing-add-failed" }, - "id": 129, + "id": 1157, "name": "Literal", - "src": "3541:20:0" + "src": "3541:20:4" } ], - "id": 130, + "id": 1158, "name": "FunctionCall", - "src": "3525:37:0" + "src": "3525:37:4" } ], - "id": 131, + "id": 1159, "name": "ExpressionStatement", - "src": "3525:37:0" + "src": "3525:37:4" } ], - "id": 132, + "id": 1160, "name": "Block", - "src": "3090:479:0" + "src": "3090:479:4" } ], - "id": 133, + "id": 1161, "name": "FunctionDefinition", - "src": "2993:576:0" + "src": "2993:576:4" }, { "attributes": { @@ -16599,7 +16599,7 @@ null ], "name": "scalar_mul", - "scope": 577, + "scope": 1605, "stateMutability": "view", "superFunction": null, "visibility": "internal" @@ -16611,7 +16611,7 @@ "attributes": { "constant": false, "name": "p", - "scope": 178, + "scope": 1206, "stateVariable": false, "storageLocation": "memory", "type": "struct Pairing.G1Point", @@ -16623,23 +16623,23 @@ "attributes": { "contractScope": null, "name": "G1Point", - "referencedDeclaration": 6, + "referencedDeclaration": 1034, "type": "struct Pairing.G1Point" }, - "id": 134, + "id": 1162, "name": "UserDefinedTypeName", - "src": "3742:7:0" + "src": "3742:7:4" } ], - "id": 135, + "id": 1163, "name": "VariableDeclaration", - "src": "3742:16:0" + "src": "3742:16:4" }, { "attributes": { "constant": false, "name": "s", - "scope": 178, + "scope": 1206, "stateVariable": false, "storageLocation": "default", "type": "uint256", @@ -16652,19 +16652,19 @@ "name": "uint", "type": "uint256" }, - "id": 136, + "id": 1164, "name": "ElementaryTypeName", - "src": "3760:4:0" + "src": "3760:4:4" } ], - "id": 137, + "id": 1165, "name": "VariableDeclaration", - "src": "3760:6:0" + "src": "3760:6:4" } ], - "id": 138, + "id": 1166, "name": "ParameterList", - "src": "3741:26:0" + "src": "3741:26:4" }, { "children": [ @@ -16672,7 +16672,7 @@ "attributes": { "constant": false, "name": "r", - "scope": 178, + "scope": 1206, "stateVariable": false, "storageLocation": "memory", "type": "struct Pairing.G1Point", @@ -16684,29 +16684,29 @@ "attributes": { "contractScope": null, "name": "G1Point", - "referencedDeclaration": 6, + "referencedDeclaration": 1034, "type": "struct Pairing.G1Point" }, - "id": 139, + "id": 1167, "name": "UserDefinedTypeName", - "src": "3791:7:0" + "src": "3791:7:4" } ], - "id": 140, + "id": 1168, "name": "VariableDeclaration", - "src": "3791:16:0" + "src": "3791:16:4" } ], - "id": 141, + "id": 1169, "name": "ParameterList", - "src": "3790:18:0" + "src": "3790:18:4" }, { "children": [ { "attributes": { "assignments": [ - 146 + 1174 ], "initialValue": null }, @@ -16715,7 +16715,7 @@ "attributes": { "constant": false, "name": "input", - "scope": 177, + "scope": 1205, "stateVariable": false, "storageLocation": "memory", "type": "uint256[3]", @@ -16733,9 +16733,9 @@ "name": "uint", "type": "uint256" }, - "id": 144, + "id": 1172, "name": "ElementaryTypeName", - "src": "3819:4:0" + "src": "3819:4:4" }, { "attributes": { @@ -16750,24 +16750,24 @@ "type": "int_const 3", "value": "3" }, - "id": 143, + "id": 1171, "name": "Literal", - "src": "3824:1:0" + "src": "3824:1:4" } ], - "id": 145, + "id": 1173, "name": "ArrayTypeName", - "src": "3819:7:0" + "src": "3819:7:4" } ], - "id": 146, + "id": 1174, "name": "VariableDeclaration", - "src": "3819:20:0" + "src": "3819:20:4" } ], - "id": 147, + "id": 1175, "name": "VariableDeclarationStatement", - "src": "3819:20:0" + "src": "3819:20:4" }, { "children": [ @@ -16798,13 +16798,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 146, + "referencedDeclaration": 1174, "type": "uint256[3] memory", "value": "input" }, - "id": 148, + "id": 1176, "name": "Identifier", - "src": "3849:5:0" + "src": "3849:5:4" }, { "attributes": { @@ -16819,14 +16819,14 @@ "type": "int_const 0", "value": "0" }, - "id": 149, + "id": 1177, "name": "Literal", - "src": "3855:1:0" + "src": "3855:1:4" } ], - "id": 150, + "id": 1178, "name": "IndexAccess", - "src": "3849:8:0" + "src": "3849:8:4" }, { "attributes": { @@ -16836,7 +16836,7 @@ "isPure": false, "lValueRequested": false, "member_name": "X", - "referencedDeclaration": 3, + "referencedDeclaration": 1031, "type": "uint256" }, "children": [ @@ -16846,28 +16846,28 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 135, + "referencedDeclaration": 1163, "type": "struct Pairing.G1Point memory", "value": "p" }, - "id": 151, + "id": 1179, "name": "Identifier", - "src": "3860:1:0" + "src": "3860:1:4" } ], - "id": 152, + "id": 1180, "name": "MemberAccess", - "src": "3860:3:0" + "src": "3860:3:4" } ], - "id": 153, + "id": 1181, "name": "Assignment", - "src": "3849:14:0" + "src": "3849:14:4" } ], - "id": 154, + "id": 1182, "name": "ExpressionStatement", - "src": "3849:14:0" + "src": "3849:14:4" }, { "children": [ @@ -16898,13 +16898,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 146, + "referencedDeclaration": 1174, "type": "uint256[3] memory", "value": "input" }, - "id": 155, + "id": 1183, "name": "Identifier", - "src": "3873:5:0" + "src": "3873:5:4" }, { "attributes": { @@ -16919,14 +16919,14 @@ "type": "int_const 1", "value": "1" }, - "id": 156, + "id": 1184, "name": "Literal", - "src": "3879:1:0" + "src": "3879:1:4" } ], - "id": 157, + "id": 1185, "name": "IndexAccess", - "src": "3873:8:0" + "src": "3873:8:4" }, { "attributes": { @@ -16936,7 +16936,7 @@ "isPure": false, "lValueRequested": false, "member_name": "Y", - "referencedDeclaration": 5, + "referencedDeclaration": 1033, "type": "uint256" }, "children": [ @@ -16946,28 +16946,28 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 135, + "referencedDeclaration": 1163, "type": "struct Pairing.G1Point memory", "value": "p" }, - "id": 158, + "id": 1186, "name": "Identifier", - "src": "3884:1:0" + "src": "3884:1:4" } ], - "id": 159, + "id": 1187, "name": "MemberAccess", - "src": "3884:3:0" + "src": "3884:3:4" } ], - "id": 160, + "id": 1188, "name": "Assignment", - "src": "3873:14:0" + "src": "3873:14:4" } ], - "id": 161, + "id": 1189, "name": "ExpressionStatement", - "src": "3873:14:0" + "src": "3873:14:4" }, { "children": [ @@ -16998,13 +16998,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 146, + "referencedDeclaration": 1174, "type": "uint256[3] memory", "value": "input" }, - "id": 162, + "id": 1190, "name": "Identifier", - "src": "3897:5:0" + "src": "3897:5:4" }, { "attributes": { @@ -17019,14 +17019,14 @@ "type": "int_const 2", "value": "2" }, - "id": 163, + "id": 1191, "name": "Literal", - "src": "3903:1:0" + "src": "3903:1:4" } ], - "id": 164, + "id": 1192, "name": "IndexAccess", - "src": "3897:8:0" + "src": "3897:8:4" }, { "attributes": { @@ -17034,28 +17034,28 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 137, + "referencedDeclaration": 1165, "type": "uint256", "value": "s" }, - "id": 165, + "id": 1193, "name": "Identifier", - "src": "3908:1:0" + "src": "3908:1:4" } ], - "id": 166, + "id": 1194, "name": "Assignment", - "src": "3897:12:0" + "src": "3897:12:4" } ], - "id": 167, + "id": 1195, "name": "ExpressionStatement", - "src": "3897:12:0" + "src": "3897:12:4" }, { "attributes": { "assignments": [ - 169 + 1197 ], "initialValue": null }, @@ -17064,7 +17064,7 @@ "attributes": { "constant": false, "name": "success", - "scope": 177, + "scope": 1205, "stateVariable": false, "storageLocation": "default", "type": "bool", @@ -17077,56 +17077,56 @@ "name": "bool", "type": "bool" }, - "id": 168, + "id": 1196, "name": "ElementaryTypeName", - "src": "3919:4:0" + "src": "3919:4:4" } ], - "id": 169, + "id": 1197, "name": "VariableDeclaration", - "src": "3919:12:0" + "src": "3919:12:4" } ], - "id": 170, + "id": 1198, "name": "VariableDeclarationStatement", - "src": "3919:12:0" + "src": "3919:12:4" }, { "attributes": { "externalReferences": [ { "success": { - "declaration": 169, + "declaration": 1197, "isOffset": false, "isSlot": false, - "src": "4028:7:0", - "valueSize": 1 - } - }, - { - "input": { - "declaration": 146, - "isOffset": false, - "isSlot": false, - "src": "4069:5:0", - "valueSize": 1 - } - }, - { - "r": { - "declaration": 140, - "isOffset": false, - "isSlot": false, - "src": "4082:1:0", + "src": "4028:7:4", "valueSize": 1 } }, { "success": { - "declaration": 169, + "declaration": 1197, "isOffset": false, "isSlot": false, - "src": "4167:7:0", + "src": "4167:7:4", + "valueSize": 1 + } + }, + { + "input": { + "declaration": 1174, + "isOffset": false, + "isSlot": false, + "src": "4069:5:4", + "valueSize": 1 + } + }, + { + "r": { + "declaration": 1168, + "isOffset": false, + "isSlot": false, + "src": "4082:1:4", "valueSize": 1 } } @@ -17134,9 +17134,9 @@ "operations": "{\n success := staticcall(sub(gas(), 2000), 7, input, 0x80, r, 0x60)\n switch success\n case 0 { invalid() }\n}" }, "children": [], - "id": 171, + "id": 1199, "name": "InlineAssembly", - "src": "4005:200:0" + "src": "4005:200:4" }, { "children": [ @@ -17168,16 +17168,16 @@ } ], "overloadedDeclarations": [ - 1076, - 1077 + 2134, + 2135 ], - "referencedDeclaration": 1077, + "referencedDeclaration": 2135, "type": "function (bool,string memory) pure", "value": "require" }, - "id": 172, + "id": 1200, "name": "Identifier", - "src": "4214:7:0" + "src": "4214:7:4" }, { "attributes": { @@ -17185,13 +17185,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 169, + "referencedDeclaration": 1197, "type": "bool", "value": "success" }, - "id": 173, + "id": 1201, "name": "Identifier", - "src": "4223:7:0" + "src": "4223:7:4" }, { "attributes": { @@ -17206,29 +17206,29 @@ "type": "literal_string \"pairing-mul-failed\"", "value": "pairing-mul-failed" }, - "id": 174, + "id": 1202, "name": "Literal", - "src": "4231:20:0" + "src": "4231:20:4" } ], - "id": 175, + "id": 1203, "name": "FunctionCall", - "src": "4214:38:0" + "src": "4214:38:4" } ], - "id": 176, + "id": 1204, "name": "ExpressionStatement", - "src": "4214:38:0" + "src": "4214:38:4" } ], - "id": 177, + "id": 1205, "name": "Block", - "src": "3809:450:0" + "src": "3809:450:4" } ], - "id": 178, + "id": 1206, "name": "FunctionDefinition", - "src": "3722:537:0" + "src": "3722:537:4" }, { "attributes": { @@ -17240,7 +17240,7 @@ null ], "name": "pairing", - "scope": 577, + "scope": 1605, "stateMutability": "view", "superFunction": null, "visibility": "internal" @@ -17252,7 +17252,7 @@ "attributes": { "constant": false, "name": "p1", - "scope": 339, + "scope": 1367, "stateVariable": false, "storageLocation": "memory", "type": "struct Pairing.G1Point[]", @@ -17270,28 +17270,28 @@ "attributes": { "contractScope": null, "name": "G1Point", - "referencedDeclaration": 6, + "referencedDeclaration": 1034, "type": "struct Pairing.G1Point" }, - "id": 179, + "id": 1207, "name": "UserDefinedTypeName", - "src": "4487:7:0" + "src": "4487:7:4" } ], - "id": 180, + "id": 1208, "name": "ArrayTypeName", - "src": "4487:9:0" + "src": "4487:9:4" } ], - "id": 181, + "id": 1209, "name": "VariableDeclaration", - "src": "4487:19:0" + "src": "4487:19:4" }, { "attributes": { "constant": false, "name": "p2", - "scope": 339, + "scope": 1367, "stateVariable": false, "storageLocation": "memory", "type": "struct Pairing.G2Point[]", @@ -17309,27 +17309,27 @@ "attributes": { "contractScope": null, "name": "G2Point", - "referencedDeclaration": 15, + "referencedDeclaration": 1043, "type": "struct Pairing.G2Point" }, - "id": 182, + "id": 1210, "name": "UserDefinedTypeName", - "src": "4508:7:0" + "src": "4508:7:4" } ], - "id": 183, + "id": 1211, "name": "ArrayTypeName", - "src": "4508:9:0" + "src": "4508:9:4" } ], - "id": 184, + "id": 1212, "name": "VariableDeclaration", - "src": "4508:19:0" + "src": "4508:19:4" } ], - "id": 185, + "id": 1213, "name": "ParameterList", - "src": "4486:42:0" + "src": "4486:42:4" }, { "children": [ @@ -17337,7 +17337,7 @@ "attributes": { "constant": false, "name": "", - "scope": 339, + "scope": 1367, "stateVariable": false, "storageLocation": "default", "type": "bool", @@ -17350,19 +17350,19 @@ "name": "bool", "type": "bool" }, - "id": 186, + "id": 1214, "name": "ElementaryTypeName", - "src": "4552:4:0" + "src": "4552:4:4" } ], - "id": 187, + "id": 1215, "name": "VariableDeclaration", - "src": "4552:4:0" + "src": "4552:4:4" } ], - "id": 188, + "id": 1216, "name": "ParameterList", - "src": "4551:6:0" + "src": "4551:6:4" }, { "children": [ @@ -17396,16 +17396,16 @@ } ], "overloadedDeclarations": [ - 1076, - 1077 + 2134, + 2135 ], - "referencedDeclaration": 1077, + "referencedDeclaration": 2135, "type": "function (bool,string memory) pure", "value": "require" }, - "id": 189, + "id": 1217, "name": "Identifier", - "src": "4568:7:0" + "src": "4568:7:4" }, { "attributes": { @@ -17440,18 +17440,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 181, + "referencedDeclaration": 1209, "type": "struct Pairing.G1Point memory[] memory", "value": "p1" }, - "id": 190, + "id": 1218, "name": "Identifier", - "src": "4576:2:0" + "src": "4576:2:4" } ], - "id": 191, + "id": 1219, "name": "MemberAccess", - "src": "4576:9:0" + "src": "4576:9:4" }, { "attributes": { @@ -17471,23 +17471,23 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 184, + "referencedDeclaration": 1212, "type": "struct Pairing.G2Point memory[] memory", "value": "p2" }, - "id": 192, + "id": 1220, "name": "Identifier", - "src": "4589:2:0" + "src": "4589:2:4" } ], - "id": 193, + "id": 1221, "name": "MemberAccess", - "src": "4589:9:0" + "src": "4589:9:4" } ], - "id": 194, + "id": 1222, "name": "BinaryOperation", - "src": "4576:22:0" + "src": "4576:22:4" }, { "attributes": { @@ -17502,24 +17502,24 @@ "type": "literal_string \"pairing-lengths-failed\"", "value": "pairing-lengths-failed" }, - "id": 195, + "id": 1223, "name": "Literal", - "src": "4599:24:0" + "src": "4599:24:4" } ], - "id": 196, + "id": 1224, "name": "FunctionCall", - "src": "4568:56:0" + "src": "4568:56:4" } ], - "id": 197, + "id": 1225, "name": "ExpressionStatement", - "src": "4568:56:0" + "src": "4568:56:4" }, { "attributes": { "assignments": [ - 199 + 1227 ] }, "children": [ @@ -17527,7 +17527,7 @@ "attributes": { "constant": false, "name": "elements", - "scope": 338, + "scope": 1366, "stateVariable": false, "storageLocation": "default", "type": "uint256", @@ -17540,14 +17540,14 @@ "name": "uint", "type": "uint256" }, - "id": 198, + "id": 1226, "name": "ElementaryTypeName", - "src": "4634:4:0" + "src": "4634:4:4" } ], - "id": 199, + "id": 1227, "name": "VariableDeclaration", - "src": "4634:13:0" + "src": "4634:13:4" }, { "attributes": { @@ -17567,28 +17567,28 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 181, + "referencedDeclaration": 1209, "type": "struct Pairing.G1Point memory[] memory", "value": "p1" }, - "id": 200, + "id": 1228, "name": "Identifier", - "src": "4650:2:0" + "src": "4650:2:4" } ], - "id": 201, + "id": 1229, "name": "MemberAccess", - "src": "4650:9:0" + "src": "4650:9:4" } ], - "id": 202, + "id": 1230, "name": "VariableDeclarationStatement", - "src": "4634:25:0" + "src": "4634:25:4" }, { "attributes": { "assignments": [ - 204 + 1232 ] }, "children": [ @@ -17596,7 +17596,7 @@ "attributes": { "constant": false, "name": "inputSize", - "scope": 338, + "scope": 1366, "stateVariable": false, "storageLocation": "default", "type": "uint256", @@ -17609,14 +17609,14 @@ "name": "uint", "type": "uint256" }, - "id": 203, + "id": 1231, "name": "ElementaryTypeName", - "src": "4669:4:0" + "src": "4669:4:4" } ], - "id": 204, + "id": 1232, "name": "VariableDeclaration", - "src": "4669:14:0" + "src": "4669:14:4" }, { "attributes": { @@ -17639,13 +17639,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 199, + "referencedDeclaration": 1227, "type": "uint256", "value": "elements" }, - "id": 205, + "id": 1233, "name": "Identifier", - "src": "4686:8:0" + "src": "4686:8:4" }, { "attributes": { @@ -17660,24 +17660,24 @@ "type": "int_const 6", "value": "6" }, - "id": 206, + "id": 1234, "name": "Literal", - "src": "4697:1:0" + "src": "4697:1:4" } ], - "id": 207, + "id": 1235, "name": "BinaryOperation", - "src": "4686:12:0" + "src": "4686:12:4" } ], - "id": 208, + "id": 1236, "name": "VariableDeclarationStatement", - "src": "4669:29:0" + "src": "4669:29:4" }, { "attributes": { "assignments": [ - 212 + 1240 ] }, "children": [ @@ -17685,7 +17685,7 @@ "attributes": { "constant": false, "name": "input", - "scope": 338, + "scope": 1366, "stateVariable": false, "storageLocation": "memory", "type": "uint256[]", @@ -17704,19 +17704,19 @@ "name": "uint", "type": "uint256" }, - "id": 210, + "id": 1238, "name": "ElementaryTypeName", - "src": "4708:4:0" + "src": "4708:4:4" } ], - "id": 211, + "id": 1239, "name": "ArrayTypeName", - "src": "4708:6:0" + "src": "4708:6:4" } ], - "id": 212, + "id": 1240, "name": "VariableDeclaration", - "src": "4708:19:0" + "src": "4708:19:4" }, { "attributes": { @@ -17759,19 +17759,19 @@ "name": "uint", "type": "uint256" }, - "id": 213, + "id": 1241, "name": "ElementaryTypeName", - "src": "4734:4:0" + "src": "4734:4:4" } ], - "id": 214, + "id": 1242, "name": "ArrayTypeName", - "src": "4734:6:0" + "src": "4734:6:4" } ], - "id": 215, + "id": 1243, "name": "NewExpression", - "src": "4730:10:0" + "src": "4730:10:4" }, { "attributes": { @@ -17779,30 +17779,30 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 204, + "referencedDeclaration": 1232, "type": "uint256", "value": "inputSize" }, - "id": 216, + "id": 1244, "name": "Identifier", - "src": "4741:9:0" + "src": "4741:9:4" } ], - "id": 217, + "id": 1245, "name": "FunctionCall", - "src": "4730:21:0" + "src": "4730:21:4" } ], - "id": 218, + "id": 1246, "name": "VariableDeclarationStatement", - "src": "4708:43:0" + "src": "4708:43:4" }, { "children": [ { "attributes": { "assignments": [ - 220 + 1248 ] }, "children": [ @@ -17810,7 +17810,7 @@ "attributes": { "constant": false, "name": "i", - "scope": 316, + "scope": 1344, "stateVariable": false, "storageLocation": "default", "type": "uint256", @@ -17823,14 +17823,14 @@ "name": "uint", "type": "uint256" }, - "id": 219, + "id": 1247, "name": "ElementaryTypeName", - "src": "4766:4:0" + "src": "4766:4:4" } ], - "id": 220, + "id": 1248, "name": "VariableDeclaration", - "src": "4766:6:0" + "src": "4766:6:4" }, { "attributes": { @@ -17845,14 +17845,14 @@ "type": "int_const 0", "value": "0" }, - "id": 221, + "id": 1249, "name": "Literal", - "src": "4775:1:0" + "src": "4775:1:4" } ], - "id": 222, + "id": 1250, "name": "VariableDeclarationStatement", - "src": "4766:10:0" + "src": "4766:10:4" }, { "attributes": { @@ -17875,13 +17875,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 220, + "referencedDeclaration": 1248, "type": "uint256", "value": "i" }, - "id": 223, + "id": 1251, "name": "Identifier", - "src": "4778:1:0" + "src": "4778:1:4" }, { "attributes": { @@ -17889,18 +17889,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 199, + "referencedDeclaration": 1227, "type": "uint256", "value": "elements" }, - "id": 224, + "id": 1252, "name": "Identifier", - "src": "4782:8:0" + "src": "4782:8:4" } ], - "id": 225, + "id": 1253, "name": "BinaryOperation", - "src": "4778:12:0" + "src": "4778:12:4" }, { "children": [ @@ -17922,23 +17922,23 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 220, + "referencedDeclaration": 1248, "type": "uint256", "value": "i" }, - "id": 226, + "id": 1254, "name": "Identifier", - "src": "4792:1:0" + "src": "4792:1:4" } ], - "id": 227, + "id": 1255, "name": "UnaryOperation", - "src": "4792:3:0" + "src": "4792:3:4" } ], - "id": 228, + "id": 1256, "name": "ExpressionStatement", - "src": "4792:3:0" + "src": "4792:3:4" }, { "children": [ @@ -17971,13 +17971,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 212, + "referencedDeclaration": 1240, "type": "uint256[] memory", "value": "input" }, - "id": 229, + "id": 1257, "name": "Identifier", - "src": "4819:5:0" + "src": "4819:5:4" }, { "attributes": { @@ -18015,13 +18015,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 220, + "referencedDeclaration": 1248, "type": "uint256", "value": "i" }, - "id": 230, + "id": 1258, "name": "Identifier", - "src": "4825:1:0" + "src": "4825:1:4" }, { "attributes": { @@ -18036,14 +18036,14 @@ "type": "int_const 6", "value": "6" }, - "id": 231, + "id": 1259, "name": "Literal", - "src": "4829:1:0" + "src": "4829:1:4" } ], - "id": 232, + "id": 1260, "name": "BinaryOperation", - "src": "4825:5:0" + "src": "4825:5:4" }, { "attributes": { @@ -18058,19 +18058,19 @@ "type": "int_const 0", "value": "0" }, - "id": 233, + "id": 1261, "name": "Literal", - "src": "4833:1:0" + "src": "4833:1:4" } ], - "id": 234, + "id": 1262, "name": "BinaryOperation", - "src": "4825:9:0" + "src": "4825:9:4" } ], - "id": 235, + "id": 1263, "name": "IndexAccess", - "src": "4819:16:0" + "src": "4819:16:4" }, { "attributes": { @@ -18080,7 +18080,7 @@ "isPure": false, "lValueRequested": false, "member_name": "X", - "referencedDeclaration": 3, + "referencedDeclaration": 1031, "type": "uint256" }, "children": [ @@ -18100,13 +18100,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 181, + "referencedDeclaration": 1209, "type": "struct Pairing.G1Point memory[] memory", "value": "p1" }, - "id": 236, + "id": 1264, "name": "Identifier", - "src": "4838:2:0" + "src": "4838:2:4" }, { "attributes": { @@ -18114,33 +18114,33 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 220, + "referencedDeclaration": 1248, "type": "uint256", "value": "i" }, - "id": 237, + "id": 1265, "name": "Identifier", - "src": "4841:1:0" + "src": "4841:1:4" } ], - "id": 238, + "id": 1266, "name": "IndexAccess", - "src": "4838:5:0" + "src": "4838:5:4" } ], - "id": 239, + "id": 1267, "name": "MemberAccess", - "src": "4838:7:0" + "src": "4838:7:4" } ], - "id": 240, + "id": 1268, "name": "Assignment", - "src": "4819:26:0" + "src": "4819:26:4" } ], - "id": 241, + "id": 1269, "name": "ExpressionStatement", - "src": "4819:26:0" + "src": "4819:26:4" }, { "children": [ @@ -18171,13 +18171,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 212, + "referencedDeclaration": 1240, "type": "uint256[] memory", "value": "input" }, - "id": 242, + "id": 1270, "name": "Identifier", - "src": "4859:5:0" + "src": "4859:5:4" }, { "attributes": { @@ -18215,13 +18215,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 220, + "referencedDeclaration": 1248, "type": "uint256", "value": "i" }, - "id": 243, + "id": 1271, "name": "Identifier", - "src": "4865:1:0" + "src": "4865:1:4" }, { "attributes": { @@ -18236,14 +18236,14 @@ "type": "int_const 6", "value": "6" }, - "id": 244, + "id": 1272, "name": "Literal", - "src": "4869:1:0" + "src": "4869:1:4" } ], - "id": 245, + "id": 1273, "name": "BinaryOperation", - "src": "4865:5:0" + "src": "4865:5:4" }, { "attributes": { @@ -18258,19 +18258,19 @@ "type": "int_const 1", "value": "1" }, - "id": 246, + "id": 1274, "name": "Literal", - "src": "4873:1:0" + "src": "4873:1:4" } ], - "id": 247, + "id": 1275, "name": "BinaryOperation", - "src": "4865:9:0" + "src": "4865:9:4" } ], - "id": 248, + "id": 1276, "name": "IndexAccess", - "src": "4859:16:0" + "src": "4859:16:4" }, { "attributes": { @@ -18280,7 +18280,7 @@ "isPure": false, "lValueRequested": false, "member_name": "Y", - "referencedDeclaration": 5, + "referencedDeclaration": 1033, "type": "uint256" }, "children": [ @@ -18300,13 +18300,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 181, + "referencedDeclaration": 1209, "type": "struct Pairing.G1Point memory[] memory", "value": "p1" }, - "id": 249, + "id": 1277, "name": "Identifier", - "src": "4878:2:0" + "src": "4878:2:4" }, { "attributes": { @@ -18314,33 +18314,33 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 220, + "referencedDeclaration": 1248, "type": "uint256", "value": "i" }, - "id": 250, + "id": 1278, "name": "Identifier", - "src": "4881:1:0" + "src": "4881:1:4" } ], - "id": 251, + "id": 1279, "name": "IndexAccess", - "src": "4878:5:0" + "src": "4878:5:4" } ], - "id": 252, + "id": 1280, "name": "MemberAccess", - "src": "4878:7:0" + "src": "4878:7:4" } ], - "id": 253, + "id": 1281, "name": "Assignment", - "src": "4859:26:0" + "src": "4859:26:4" } ], - "id": 254, + "id": 1282, "name": "ExpressionStatement", - "src": "4859:26:0" + "src": "4859:26:4" }, { "children": [ @@ -18371,13 +18371,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 212, + "referencedDeclaration": 1240, "type": "uint256[] memory", "value": "input" }, - "id": 255, + "id": 1283, "name": "Identifier", - "src": "4899:5:0" + "src": "4899:5:4" }, { "attributes": { @@ -18415,13 +18415,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 220, + "referencedDeclaration": 1248, "type": "uint256", "value": "i" }, - "id": 256, + "id": 1284, "name": "Identifier", - "src": "4905:1:0" + "src": "4905:1:4" }, { "attributes": { @@ -18436,14 +18436,14 @@ "type": "int_const 6", "value": "6" }, - "id": 257, + "id": 1285, "name": "Literal", - "src": "4909:1:0" + "src": "4909:1:4" } ], - "id": 258, + "id": 1286, "name": "BinaryOperation", - "src": "4905:5:0" + "src": "4905:5:4" }, { "attributes": { @@ -18458,19 +18458,19 @@ "type": "int_const 2", "value": "2" }, - "id": 259, + "id": 1287, "name": "Literal", - "src": "4913:1:0" + "src": "4913:1:4" } ], - "id": 260, + "id": 1288, "name": "BinaryOperation", - "src": "4905:9:0" + "src": "4905:9:4" } ], - "id": 261, + "id": 1289, "name": "IndexAccess", - "src": "4899:16:0" + "src": "4899:16:4" }, { "attributes": { @@ -18490,7 +18490,7 @@ "isPure": false, "lValueRequested": false, "member_name": "X", - "referencedDeclaration": 10, + "referencedDeclaration": 1038, "type": "uint256[2] memory" }, "children": [ @@ -18510,13 +18510,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 184, + "referencedDeclaration": 1212, "type": "struct Pairing.G2Point memory[] memory", "value": "p2" }, - "id": 262, + "id": 1290, "name": "Identifier", - "src": "4918:2:0" + "src": "4918:2:4" }, { "attributes": { @@ -18524,23 +18524,23 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 220, + "referencedDeclaration": 1248, "type": "uint256", "value": "i" }, - "id": 263, + "id": 1291, "name": "Identifier", - "src": "4921:1:0" + "src": "4921:1:4" } ], - "id": 264, + "id": 1292, "name": "IndexAccess", - "src": "4918:5:0" + "src": "4918:5:4" } ], - "id": 265, + "id": 1293, "name": "MemberAccess", - "src": "4918:7:0" + "src": "4918:7:4" }, { "attributes": { @@ -18555,24 +18555,24 @@ "type": "int_const 0", "value": "0" }, - "id": 266, + "id": 1294, "name": "Literal", - "src": "4926:1:0" + "src": "4926:1:4" } ], - "id": 267, + "id": 1295, "name": "IndexAccess", - "src": "4918:10:0" + "src": "4918:10:4" } ], - "id": 268, + "id": 1296, "name": "Assignment", - "src": "4899:29:0" + "src": "4899:29:4" } ], - "id": 269, + "id": 1297, "name": "ExpressionStatement", - "src": "4899:29:0" + "src": "4899:29:4" }, { "children": [ @@ -18603,13 +18603,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 212, + "referencedDeclaration": 1240, "type": "uint256[] memory", "value": "input" }, - "id": 270, + "id": 1298, "name": "Identifier", - "src": "4942:5:0" + "src": "4942:5:4" }, { "attributes": { @@ -18647,13 +18647,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 220, + "referencedDeclaration": 1248, "type": "uint256", "value": "i" }, - "id": 271, + "id": 1299, "name": "Identifier", - "src": "4948:1:0" + "src": "4948:1:4" }, { "attributes": { @@ -18668,14 +18668,14 @@ "type": "int_const 6", "value": "6" }, - "id": 272, + "id": 1300, "name": "Literal", - "src": "4952:1:0" + "src": "4952:1:4" } ], - "id": 273, + "id": 1301, "name": "BinaryOperation", - "src": "4948:5:0" + "src": "4948:5:4" }, { "attributes": { @@ -18690,19 +18690,19 @@ "type": "int_const 3", "value": "3" }, - "id": 274, + "id": 1302, "name": "Literal", - "src": "4956:1:0" + "src": "4956:1:4" } ], - "id": 275, + "id": 1303, "name": "BinaryOperation", - "src": "4948:9:0" + "src": "4948:9:4" } ], - "id": 276, + "id": 1304, "name": "IndexAccess", - "src": "4942:16:0" + "src": "4942:16:4" }, { "attributes": { @@ -18722,7 +18722,7 @@ "isPure": false, "lValueRequested": false, "member_name": "X", - "referencedDeclaration": 10, + "referencedDeclaration": 1038, "type": "uint256[2] memory" }, "children": [ @@ -18742,13 +18742,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 184, + "referencedDeclaration": 1212, "type": "struct Pairing.G2Point memory[] memory", "value": "p2" }, - "id": 277, + "id": 1305, "name": "Identifier", - "src": "4961:2:0" + "src": "4961:2:4" }, { "attributes": { @@ -18756,23 +18756,23 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 220, + "referencedDeclaration": 1248, "type": "uint256", "value": "i" }, - "id": 278, + "id": 1306, "name": "Identifier", - "src": "4964:1:0" + "src": "4964:1:4" } ], - "id": 279, + "id": 1307, "name": "IndexAccess", - "src": "4961:5:0" + "src": "4961:5:4" } ], - "id": 280, + "id": 1308, "name": "MemberAccess", - "src": "4961:7:0" + "src": "4961:7:4" }, { "attributes": { @@ -18787,24 +18787,24 @@ "type": "int_const 1", "value": "1" }, - "id": 281, + "id": 1309, "name": "Literal", - "src": "4969:1:0" + "src": "4969:1:4" } ], - "id": 282, + "id": 1310, "name": "IndexAccess", - "src": "4961:10:0" + "src": "4961:10:4" } ], - "id": 283, + "id": 1311, "name": "Assignment", - "src": "4942:29:0" + "src": "4942:29:4" } ], - "id": 284, + "id": 1312, "name": "ExpressionStatement", - "src": "4942:29:0" + "src": "4942:29:4" }, { "children": [ @@ -18835,13 +18835,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 212, + "referencedDeclaration": 1240, "type": "uint256[] memory", "value": "input" }, - "id": 285, + "id": 1313, "name": "Identifier", - "src": "4985:5:0" + "src": "4985:5:4" }, { "attributes": { @@ -18879,13 +18879,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 220, + "referencedDeclaration": 1248, "type": "uint256", "value": "i" }, - "id": 286, + "id": 1314, "name": "Identifier", - "src": "4991:1:0" + "src": "4991:1:4" }, { "attributes": { @@ -18900,14 +18900,14 @@ "type": "int_const 6", "value": "6" }, - "id": 287, + "id": 1315, "name": "Literal", - "src": "4995:1:0" + "src": "4995:1:4" } ], - "id": 288, + "id": 1316, "name": "BinaryOperation", - "src": "4991:5:0" + "src": "4991:5:4" }, { "attributes": { @@ -18922,19 +18922,19 @@ "type": "int_const 4", "value": "4" }, - "id": 289, + "id": 1317, "name": "Literal", - "src": "4999:1:0" + "src": "4999:1:4" } ], - "id": 290, + "id": 1318, "name": "BinaryOperation", - "src": "4991:9:0" + "src": "4991:9:4" } ], - "id": 291, + "id": 1319, "name": "IndexAccess", - "src": "4985:16:0" + "src": "4985:16:4" }, { "attributes": { @@ -18954,7 +18954,7 @@ "isPure": false, "lValueRequested": false, "member_name": "Y", - "referencedDeclaration": 14, + "referencedDeclaration": 1042, "type": "uint256[2] memory" }, "children": [ @@ -18974,13 +18974,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 184, + "referencedDeclaration": 1212, "type": "struct Pairing.G2Point memory[] memory", "value": "p2" }, - "id": 292, + "id": 1320, "name": "Identifier", - "src": "5004:2:0" + "src": "5004:2:4" }, { "attributes": { @@ -18988,23 +18988,23 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 220, + "referencedDeclaration": 1248, "type": "uint256", "value": "i" }, - "id": 293, + "id": 1321, "name": "Identifier", - "src": "5007:1:0" + "src": "5007:1:4" } ], - "id": 294, + "id": 1322, "name": "IndexAccess", - "src": "5004:5:0" + "src": "5004:5:4" } ], - "id": 295, + "id": 1323, "name": "MemberAccess", - "src": "5004:7:0" + "src": "5004:7:4" }, { "attributes": { @@ -19019,24 +19019,24 @@ "type": "int_const 0", "value": "0" }, - "id": 296, + "id": 1324, "name": "Literal", - "src": "5012:1:0" + "src": "5012:1:4" } ], - "id": 297, + "id": 1325, "name": "IndexAccess", - "src": "5004:10:0" + "src": "5004:10:4" } ], - "id": 298, + "id": 1326, "name": "Assignment", - "src": "4985:29:0" + "src": "4985:29:4" } ], - "id": 299, + "id": 1327, "name": "ExpressionStatement", - "src": "4985:29:0" + "src": "4985:29:4" }, { "children": [ @@ -19067,13 +19067,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 212, + "referencedDeclaration": 1240, "type": "uint256[] memory", "value": "input" }, - "id": 300, + "id": 1328, "name": "Identifier", - "src": "5028:5:0" + "src": "5028:5:4" }, { "attributes": { @@ -19111,13 +19111,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 220, + "referencedDeclaration": 1248, "type": "uint256", "value": "i" }, - "id": 301, + "id": 1329, "name": "Identifier", - "src": "5034:1:0" + "src": "5034:1:4" }, { "attributes": { @@ -19132,14 +19132,14 @@ "type": "int_const 6", "value": "6" }, - "id": 302, + "id": 1330, "name": "Literal", - "src": "5038:1:0" + "src": "5038:1:4" } ], - "id": 303, + "id": 1331, "name": "BinaryOperation", - "src": "5034:5:0" + "src": "5034:5:4" }, { "attributes": { @@ -19154,19 +19154,19 @@ "type": "int_const 5", "value": "5" }, - "id": 304, + "id": 1332, "name": "Literal", - "src": "5042:1:0" + "src": "5042:1:4" } ], - "id": 305, + "id": 1333, "name": "BinaryOperation", - "src": "5034:9:0" + "src": "5034:9:4" } ], - "id": 306, + "id": 1334, "name": "IndexAccess", - "src": "5028:16:0" + "src": "5028:16:4" }, { "attributes": { @@ -19186,7 +19186,7 @@ "isPure": false, "lValueRequested": false, "member_name": "Y", - "referencedDeclaration": 14, + "referencedDeclaration": 1042, "type": "uint256[2] memory" }, "children": [ @@ -19206,13 +19206,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 184, + "referencedDeclaration": 1212, "type": "struct Pairing.G2Point memory[] memory", "value": "p2" }, - "id": 307, + "id": 1335, "name": "Identifier", - "src": "5047:2:0" + "src": "5047:2:4" }, { "attributes": { @@ -19220,23 +19220,23 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 220, + "referencedDeclaration": 1248, "type": "uint256", "value": "i" }, - "id": 308, + "id": 1336, "name": "Identifier", - "src": "5050:1:0" + "src": "5050:1:4" } ], - "id": 309, + "id": 1337, "name": "IndexAccess", - "src": "5047:5:0" + "src": "5047:5:4" } ], - "id": 310, + "id": 1338, "name": "MemberAccess", - "src": "5047:7:0" + "src": "5047:7:4" }, { "attributes": { @@ -19251,39 +19251,39 @@ "type": "int_const 1", "value": "1" }, - "id": 311, + "id": 1339, "name": "Literal", - "src": "5055:1:0" + "src": "5055:1:4" } ], - "id": 312, + "id": 1340, "name": "IndexAccess", - "src": "5047:10:0" + "src": "5047:10:4" } ], - "id": 313, + "id": 1341, "name": "Assignment", - "src": "5028:29:0" + "src": "5028:29:4" } ], - "id": 314, + "id": 1342, "name": "ExpressionStatement", - "src": "5028:29:0" + "src": "5028:29:4" } ], - "id": 315, + "id": 1343, "name": "Block", - "src": "4805:263:0" + "src": "4805:263:4" } ], - "id": 316, + "id": 1344, "name": "ForStatement", - "src": "4761:307:0" + "src": "4761:307:4" }, { "attributes": { "assignments": [ - 321 + 1349 ], "initialValue": null }, @@ -19292,7 +19292,7 @@ "attributes": { "constant": false, "name": "out", - "scope": 338, + "scope": 1366, "stateVariable": false, "storageLocation": "memory", "type": "uint256[1]", @@ -19310,9 +19310,9 @@ "name": "uint", "type": "uint256" }, - "id": 319, + "id": 1347, "name": "ElementaryTypeName", - "src": "5077:4:0" + "src": "5077:4:4" }, { "attributes": { @@ -19327,29 +19327,29 @@ "type": "int_const 1", "value": "1" }, - "id": 318, + "id": 1346, "name": "Literal", - "src": "5082:1:0" + "src": "5082:1:4" } ], - "id": 320, + "id": 1348, "name": "ArrayTypeName", - "src": "5077:7:0" + "src": "5077:7:4" } ], - "id": 321, + "id": 1349, "name": "VariableDeclaration", - "src": "5077:18:0" + "src": "5077:18:4" } ], - "id": 322, + "id": 1350, "name": "VariableDeclarationStatement", - "src": "5077:18:0" + "src": "5077:18:4" }, { "attributes": { "assignments": [ - 324 + 1352 ], "initialValue": null }, @@ -19358,7 +19358,7 @@ "attributes": { "constant": false, "name": "success", - "scope": 338, + "scope": 1366, "stateVariable": false, "storageLocation": "default", "type": "bool", @@ -19371,65 +19371,65 @@ "name": "bool", "type": "bool" }, - "id": 323, + "id": 1351, "name": "ElementaryTypeName", - "src": "5105:4:0" + "src": "5105:4:4" } ], - "id": 324, + "id": 1352, "name": "VariableDeclaration", - "src": "5105:12:0" + "src": "5105:12:4" } ], - "id": 325, + "id": 1353, "name": "VariableDeclarationStatement", - "src": "5105:12:0" + "src": "5105:12:4" }, { "attributes": { "externalReferences": [ { "success": { - "declaration": 324, + "declaration": 1352, "isOffset": false, "isSlot": false, - "src": "5214:7:0", + "src": "5214:7:4", "valueSize": 1 } }, { "input": { - "declaration": 212, + "declaration": 1240, "isOffset": false, "isSlot": false, - "src": "5259:5:0", + "src": "5259:5:4", "valueSize": 1 } }, { "success": { - "declaration": 324, + "declaration": 1352, "isOffset": false, "isSlot": false, - "src": "5382:7:0", + "src": "5382:7:4", "valueSize": 1 } }, { "inputSize": { - "declaration": 204, + "declaration": 1232, "isOffset": false, "isSlot": false, - "src": "5277:9:0", + "src": "5277:9:4", "valueSize": 1 } }, { "out": { - "declaration": 321, + "declaration": 1349, "isOffset": false, "isSlot": false, - "src": "5295:3:0", + "src": "5295:3:4", "valueSize": 1 } } @@ -19437,9 +19437,9 @@ "operations": "{\n success := staticcall(sub(gas(), 2000), 8, add(input, 0x20), mul(inputSize, 0x20), out, 0x20)\n switch success\n case 0 { invalid() }\n}" }, "children": [], - "id": 326, + "id": 1354, "name": "InlineAssembly", - "src": "5191:229:0" + "src": "5191:229:4" }, { "children": [ @@ -19471,16 +19471,16 @@ } ], "overloadedDeclarations": [ - 1076, - 1077 + 2134, + 2135 ], - "referencedDeclaration": 1077, + "referencedDeclaration": 2135, "type": "function (bool,string memory) pure", "value": "require" }, - "id": 327, + "id": 1355, "name": "Identifier", - "src": "5429:7:0" + "src": "5429:7:4" }, { "attributes": { @@ -19488,13 +19488,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 324, + "referencedDeclaration": 1352, "type": "bool", "value": "success" }, - "id": 328, + "id": 1356, "name": "Identifier", - "src": "5437:7:0" + "src": "5437:7:4" }, { "attributes": { @@ -19509,23 +19509,23 @@ "type": "literal_string \"pairing-opcode-failed\"", "value": "pairing-opcode-failed" }, - "id": 329, + "id": 1357, "name": "Literal", - "src": "5445:23:0" + "src": "5445:23:4" } ], - "id": 330, + "id": 1358, "name": "FunctionCall", - "src": "5429:40:0" + "src": "5429:40:4" } ], - "id": 331, + "id": 1359, "name": "ExpressionStatement", - "src": "5429:40:0" + "src": "5429:40:4" }, { "attributes": { - "functionReturnParameters": 188 + "functionReturnParameters": 1216 }, "children": [ { @@ -19559,13 +19559,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 321, + "referencedDeclaration": 1349, "type": "uint256[1] memory", "value": "out" }, - "id": 332, + "id": 1360, "name": "Identifier", - "src": "5486:3:0" + "src": "5486:3:4" }, { "attributes": { @@ -19580,14 +19580,14 @@ "type": "int_const 0", "value": "0" }, - "id": 333, + "id": 1361, "name": "Literal", - "src": "5490:1:0" + "src": "5490:1:4" } ], - "id": 334, + "id": 1362, "name": "IndexAccess", - "src": "5486:6:0" + "src": "5486:6:4" }, { "attributes": { @@ -19602,29 +19602,29 @@ "type": "int_const 0", "value": "0" }, - "id": 335, + "id": 1363, "name": "Literal", - "src": "5496:1:0" + "src": "5496:1:4" } ], - "id": 336, + "id": 1364, "name": "BinaryOperation", - "src": "5486:11:0" + "src": "5486:11:4" } ], - "id": 337, + "id": 1365, "name": "Return", - "src": "5479:18:0" + "src": "5479:18:4" } ], - "id": 338, + "id": 1366, "name": "Block", - "src": "4558:946:0" + "src": "4558:946:4" } ], - "id": 339, + "id": 1367, "name": "FunctionDefinition", - "src": "4470:1034:0" + "src": "4470:1034:4" }, { "attributes": { @@ -19636,7 +19636,7 @@ null ], "name": "pairingProd2", - "scope": 577, + "scope": 1605, "stateMutability": "view", "superFunction": null, "visibility": "internal" @@ -19648,7 +19648,7 @@ "attributes": { "constant": false, "name": "a1", - "scope": 402, + "scope": 1430, "stateVariable": false, "storageLocation": "memory", "type": "struct Pairing.G1Point", @@ -19660,23 +19660,23 @@ "attributes": { "contractScope": null, "name": "G1Point", - "referencedDeclaration": 6, + "referencedDeclaration": 1034, "type": "struct Pairing.G1Point" }, - "id": 340, + "id": 1368, "name": "UserDefinedTypeName", - "src": "5593:7:0" + "src": "5593:7:4" } ], - "id": 341, + "id": 1369, "name": "VariableDeclaration", - "src": "5593:17:0" + "src": "5593:17:4" }, { "attributes": { "constant": false, "name": "a2", - "scope": 402, + "scope": 1430, "stateVariable": false, "storageLocation": "memory", "type": "struct Pairing.G2Point", @@ -19688,23 +19688,23 @@ "attributes": { "contractScope": null, "name": "G2Point", - "referencedDeclaration": 15, + "referencedDeclaration": 1043, "type": "struct Pairing.G2Point" }, - "id": 342, + "id": 1370, "name": "UserDefinedTypeName", - "src": "5612:7:0" + "src": "5612:7:4" } ], - "id": 343, + "id": 1371, "name": "VariableDeclaration", - "src": "5612:17:0" + "src": "5612:17:4" }, { "attributes": { "constant": false, "name": "b1", - "scope": 402, + "scope": 1430, "stateVariable": false, "storageLocation": "memory", "type": "struct Pairing.G1Point", @@ -19716,23 +19716,23 @@ "attributes": { "contractScope": null, "name": "G1Point", - "referencedDeclaration": 6, + "referencedDeclaration": 1034, "type": "struct Pairing.G1Point" }, - "id": 344, + "id": 1372, "name": "UserDefinedTypeName", - "src": "5631:7:0" + "src": "5631:7:4" } ], - "id": 345, + "id": 1373, "name": "VariableDeclaration", - "src": "5631:17:0" + "src": "5631:17:4" }, { "attributes": { "constant": false, "name": "b2", - "scope": 402, + "scope": 1430, "stateVariable": false, "storageLocation": "memory", "type": "struct Pairing.G2Point", @@ -19744,22 +19744,22 @@ "attributes": { "contractScope": null, "name": "G2Point", - "referencedDeclaration": 15, + "referencedDeclaration": 1043, "type": "struct Pairing.G2Point" }, - "id": 346, + "id": 1374, "name": "UserDefinedTypeName", - "src": "5650:7:0" + "src": "5650:7:4" } ], - "id": 347, + "id": 1375, "name": "VariableDeclaration", - "src": "5650:17:0" + "src": "5650:17:4" } ], - "id": 348, + "id": 1376, "name": "ParameterList", - "src": "5592:76:0" + "src": "5592:76:4" }, { "children": [ @@ -19767,7 +19767,7 @@ "attributes": { "constant": false, "name": "", - "scope": 402, + "scope": 1430, "stateVariable": false, "storageLocation": "default", "type": "bool", @@ -19780,26 +19780,26 @@ "name": "bool", "type": "bool" }, - "id": 349, + "id": 1377, "name": "ElementaryTypeName", - "src": "5692:4:0" + "src": "5692:4:4" } ], - "id": 350, + "id": 1378, "name": "VariableDeclaration", - "src": "5692:4:0" + "src": "5692:4:4" } ], - "id": 351, + "id": 1379, "name": "ParameterList", - "src": "5691:6:0" + "src": "5691:6:4" }, { "children": [ { "attributes": { "assignments": [ - 355 + 1383 ] }, "children": [ @@ -19807,7 +19807,7 @@ "attributes": { "constant": false, "name": "p1", - "scope": 401, + "scope": 1429, "stateVariable": false, "storageLocation": "memory", "type": "struct Pairing.G1Point[]", @@ -19825,22 +19825,22 @@ "attributes": { "contractScope": null, "name": "G1Point", - "referencedDeclaration": 6, + "referencedDeclaration": 1034, "type": "struct Pairing.G1Point" }, - "id": 353, + "id": 1381, "name": "UserDefinedTypeName", - "src": "5708:7:0" + "src": "5708:7:4" } ], - "id": 354, + "id": 1382, "name": "ArrayTypeName", - "src": "5708:9:0" + "src": "5708:9:4" } ], - "id": 355, + "id": 1383, "name": "VariableDeclaration", - "src": "5708:19:0" + "src": "5708:19:4" }, { "attributes": { @@ -19882,22 +19882,22 @@ "attributes": { "contractScope": null, "name": "G1Point", - "referencedDeclaration": 6, + "referencedDeclaration": 1034, "type": "struct Pairing.G1Point" }, - "id": 356, + "id": 1384, "name": "UserDefinedTypeName", - "src": "5734:7:0" + "src": "5734:7:4" } ], - "id": 357, + "id": 1385, "name": "ArrayTypeName", - "src": "5734:9:0" + "src": "5734:9:4" } ], - "id": 358, + "id": 1386, "name": "NewExpression", - "src": "5730:13:0" + "src": "5730:13:4" }, { "attributes": { @@ -19912,24 +19912,24 @@ "type": "int_const 2", "value": "2" }, - "id": 359, + "id": 1387, "name": "Literal", - "src": "5744:1:0" + "src": "5744:1:4" } ], - "id": 360, + "id": 1388, "name": "FunctionCall", - "src": "5730:16:0" + "src": "5730:16:4" } ], - "id": 361, + "id": 1389, "name": "VariableDeclarationStatement", - "src": "5708:38:0" + "src": "5708:38:4" }, { "attributes": { "assignments": [ - 365 + 1393 ] }, "children": [ @@ -19937,7 +19937,7 @@ "attributes": { "constant": false, "name": "p2", - "scope": 401, + "scope": 1429, "stateVariable": false, "storageLocation": "memory", "type": "struct Pairing.G2Point[]", @@ -19955,22 +19955,22 @@ "attributes": { "contractScope": null, "name": "G2Point", - "referencedDeclaration": 15, + "referencedDeclaration": 1043, "type": "struct Pairing.G2Point" }, - "id": 363, + "id": 1391, "name": "UserDefinedTypeName", - "src": "5756:7:0" + "src": "5756:7:4" } ], - "id": 364, + "id": 1392, "name": "ArrayTypeName", - "src": "5756:9:0" + "src": "5756:9:4" } ], - "id": 365, + "id": 1393, "name": "VariableDeclaration", - "src": "5756:19:0" + "src": "5756:19:4" }, { "attributes": { @@ -20012,22 +20012,22 @@ "attributes": { "contractScope": null, "name": "G2Point", - "referencedDeclaration": 15, + "referencedDeclaration": 1043, "type": "struct Pairing.G2Point" }, - "id": 366, + "id": 1394, "name": "UserDefinedTypeName", - "src": "5782:7:0" + "src": "5782:7:4" } ], - "id": 367, + "id": 1395, "name": "ArrayTypeName", - "src": "5782:9:0" + "src": "5782:9:4" } ], - "id": 368, + "id": 1396, "name": "NewExpression", - "src": "5778:13:0" + "src": "5778:13:4" }, { "attributes": { @@ -20042,19 +20042,19 @@ "type": "int_const 2", "value": "2" }, - "id": 369, + "id": 1397, "name": "Literal", - "src": "5792:1:0" + "src": "5792:1:4" } ], - "id": 370, + "id": 1398, "name": "FunctionCall", - "src": "5778:16:0" + "src": "5778:16:4" } ], - "id": 371, + "id": 1399, "name": "VariableDeclarationStatement", - "src": "5756:38:0" + "src": "5756:38:4" }, { "children": [ @@ -20085,13 +20085,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 355, + "referencedDeclaration": 1383, "type": "struct Pairing.G1Point memory[] memory", "value": "p1" }, - "id": 372, + "id": 1400, "name": "Identifier", - "src": "5804:2:0" + "src": "5804:2:4" }, { "attributes": { @@ -20106,14 +20106,14 @@ "type": "int_const 0", "value": "0" }, - "id": 373, + "id": 1401, "name": "Literal", - "src": "5807:1:0" + "src": "5807:1:4" } ], - "id": 374, + "id": 1402, "name": "IndexAccess", - "src": "5804:5:0" + "src": "5804:5:4" }, { "attributes": { @@ -20121,23 +20121,23 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 341, + "referencedDeclaration": 1369, "type": "struct Pairing.G1Point memory", "value": "a1" }, - "id": 375, + "id": 1403, "name": "Identifier", - "src": "5812:2:0" + "src": "5812:2:4" } ], - "id": 376, + "id": 1404, "name": "Assignment", - "src": "5804:10:0" + "src": "5804:10:4" } ], - "id": 377, + "id": 1405, "name": "ExpressionStatement", - "src": "5804:10:0" + "src": "5804:10:4" }, { "children": [ @@ -20168,13 +20168,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 355, + "referencedDeclaration": 1383, "type": "struct Pairing.G1Point memory[] memory", "value": "p1" }, - "id": 378, + "id": 1406, "name": "Identifier", - "src": "5824:2:0" + "src": "5824:2:4" }, { "attributes": { @@ -20189,14 +20189,14 @@ "type": "int_const 1", "value": "1" }, - "id": 379, + "id": 1407, "name": "Literal", - "src": "5827:1:0" + "src": "5827:1:4" } ], - "id": 380, + "id": 1408, "name": "IndexAccess", - "src": "5824:5:0" + "src": "5824:5:4" }, { "attributes": { @@ -20204,23 +20204,23 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 345, + "referencedDeclaration": 1373, "type": "struct Pairing.G1Point memory", "value": "b1" }, - "id": 381, + "id": 1409, "name": "Identifier", - "src": "5832:2:0" + "src": "5832:2:4" } ], - "id": 382, + "id": 1410, "name": "Assignment", - "src": "5824:10:0" + "src": "5824:10:4" } ], - "id": 383, + "id": 1411, "name": "ExpressionStatement", - "src": "5824:10:0" + "src": "5824:10:4" }, { "children": [ @@ -20251,13 +20251,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 365, + "referencedDeclaration": 1393, "type": "struct Pairing.G2Point memory[] memory", "value": "p2" }, - "id": 384, + "id": 1412, "name": "Identifier", - "src": "5844:2:0" + "src": "5844:2:4" }, { "attributes": { @@ -20272,14 +20272,14 @@ "type": "int_const 0", "value": "0" }, - "id": 385, + "id": 1413, "name": "Literal", - "src": "5847:1:0" + "src": "5847:1:4" } ], - "id": 386, + "id": 1414, "name": "IndexAccess", - "src": "5844:5:0" + "src": "5844:5:4" }, { "attributes": { @@ -20287,23 +20287,23 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 343, + "referencedDeclaration": 1371, "type": "struct Pairing.G2Point memory", "value": "a2" }, - "id": 387, + "id": 1415, "name": "Identifier", - "src": "5852:2:0" + "src": "5852:2:4" } ], - "id": 388, + "id": 1416, "name": "Assignment", - "src": "5844:10:0" + "src": "5844:10:4" } ], - "id": 389, + "id": 1417, "name": "ExpressionStatement", - "src": "5844:10:0" + "src": "5844:10:4" }, { "children": [ @@ -20334,13 +20334,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 365, + "referencedDeclaration": 1393, "type": "struct Pairing.G2Point memory[] memory", "value": "p2" }, - "id": 390, + "id": 1418, "name": "Identifier", - "src": "5864:2:0" + "src": "5864:2:4" }, { "attributes": { @@ -20355,14 +20355,14 @@ "type": "int_const 1", "value": "1" }, - "id": 391, + "id": 1419, "name": "Literal", - "src": "5867:1:0" + "src": "5867:1:4" } ], - "id": 392, + "id": 1420, "name": "IndexAccess", - "src": "5864:5:0" + "src": "5864:5:4" }, { "attributes": { @@ -20370,27 +20370,27 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 347, + "referencedDeclaration": 1375, "type": "struct Pairing.G2Point memory", "value": "b2" }, - "id": 393, + "id": 1421, "name": "Identifier", - "src": "5872:2:0" + "src": "5872:2:4" } ], - "id": 394, + "id": 1422, "name": "Assignment", - "src": "5864:10:0" + "src": "5864:10:4" } ], - "id": 395, + "id": 1423, "name": "ExpressionStatement", - "src": "5864:10:0" + "src": "5864:10:4" }, { "attributes": { - "functionReturnParameters": 351 + "functionReturnParameters": 1379 }, "children": [ { @@ -20412,24 +20412,24 @@ "attributes": { "argumentTypes": [ { - "typeIdentifier": "t_array$_t_struct$_G1Point_$6_memory_$dyn_memory_ptr", + "typeIdentifier": "t_array$_t_struct$_G1Point_$1034_memory_$dyn_memory_ptr", "typeString": "struct Pairing.G1Point memory[] memory" }, { - "typeIdentifier": "t_array$_t_struct$_G2Point_$15_memory_$dyn_memory_ptr", + "typeIdentifier": "t_array$_t_struct$_G2Point_$1043_memory_$dyn_memory_ptr", "typeString": "struct Pairing.G2Point memory[] memory" } ], "overloadedDeclarations": [ null ], - "referencedDeclaration": 339, + "referencedDeclaration": 1367, "type": "function (struct Pairing.G1Point memory[] memory,struct Pairing.G2Point memory[] memory) view returns (bool)", "value": "pairing" }, - "id": 396, + "id": 1424, "name": "Identifier", - "src": "5891:7:0" + "src": "5891:7:4" }, { "attributes": { @@ -20437,13 +20437,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 355, + "referencedDeclaration": 1383, "type": "struct Pairing.G1Point memory[] memory", "value": "p1" }, - "id": 397, + "id": 1425, "name": "Identifier", - "src": "5899:2:0" + "src": "5899:2:4" }, { "attributes": { @@ -20451,33 +20451,33 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 365, + "referencedDeclaration": 1393, "type": "struct Pairing.G2Point memory[] memory", "value": "p2" }, - "id": 398, + "id": 1426, "name": "Identifier", - "src": "5903:2:0" + "src": "5903:2:4" } ], - "id": 399, + "id": 1427, "name": "FunctionCall", - "src": "5891:15:0" + "src": "5891:15:4" } ], - "id": 400, + "id": 1428, "name": "Return", - "src": "5884:22:0" + "src": "5884:22:4" } ], - "id": 401, + "id": 1429, "name": "Block", - "src": "5698:215:0" + "src": "5698:215:4" } ], - "id": 402, + "id": 1430, "name": "FunctionDefinition", - "src": "5571:342:0" + "src": "5571:342:4" }, { "attributes": { @@ -20489,7 +20489,7 @@ null ], "name": "pairingProd3", - "scope": 577, + "scope": 1605, "stateMutability": "view", "superFunction": null, "visibility": "internal" @@ -20501,7 +20501,7 @@ "attributes": { "constant": false, "name": "a1", - "scope": 481, + "scope": 1509, "stateVariable": false, "storageLocation": "memory", "type": "struct Pairing.G1Point", @@ -20513,23 +20513,23 @@ "attributes": { "contractScope": null, "name": "G1Point", - "referencedDeclaration": 6, + "referencedDeclaration": 1034, "type": "struct Pairing.G1Point" }, - "id": 403, + "id": 1431, "name": "UserDefinedTypeName", - "src": "6017:7:0" + "src": "6017:7:4" } ], - "id": 404, + "id": 1432, "name": "VariableDeclaration", - "src": "6017:17:0" + "src": "6017:17:4" }, { "attributes": { "constant": false, "name": "a2", - "scope": 481, + "scope": 1509, "stateVariable": false, "storageLocation": "memory", "type": "struct Pairing.G2Point", @@ -20541,23 +20541,23 @@ "attributes": { "contractScope": null, "name": "G2Point", - "referencedDeclaration": 15, + "referencedDeclaration": 1043, "type": "struct Pairing.G2Point" }, - "id": 405, + "id": 1433, "name": "UserDefinedTypeName", - "src": "6036:7:0" + "src": "6036:7:4" } ], - "id": 406, + "id": 1434, "name": "VariableDeclaration", - "src": "6036:17:0" + "src": "6036:17:4" }, { "attributes": { "constant": false, "name": "b1", - "scope": 481, + "scope": 1509, "stateVariable": false, "storageLocation": "memory", "type": "struct Pairing.G1Point", @@ -20569,23 +20569,23 @@ "attributes": { "contractScope": null, "name": "G1Point", - "referencedDeclaration": 6, + "referencedDeclaration": 1034, "type": "struct Pairing.G1Point" }, - "id": 407, + "id": 1435, "name": "UserDefinedTypeName", - "src": "6067:7:0" + "src": "6067:7:4" } ], - "id": 408, + "id": 1436, "name": "VariableDeclaration", - "src": "6067:17:0" + "src": "6067:17:4" }, { "attributes": { "constant": false, "name": "b2", - "scope": 481, + "scope": 1509, "stateVariable": false, "storageLocation": "memory", "type": "struct Pairing.G2Point", @@ -20597,23 +20597,23 @@ "attributes": { "contractScope": null, "name": "G2Point", - "referencedDeclaration": 15, + "referencedDeclaration": 1043, "type": "struct Pairing.G2Point" }, - "id": 409, + "id": 1437, "name": "UserDefinedTypeName", - "src": "6086:7:0" + "src": "6086:7:4" } ], - "id": 410, + "id": 1438, "name": "VariableDeclaration", - "src": "6086:17:0" + "src": "6086:17:4" }, { "attributes": { "constant": false, "name": "c1", - "scope": 481, + "scope": 1509, "stateVariable": false, "storageLocation": "memory", "type": "struct Pairing.G1Point", @@ -20625,23 +20625,23 @@ "attributes": { "contractScope": null, "name": "G1Point", - "referencedDeclaration": 6, + "referencedDeclaration": 1034, "type": "struct Pairing.G1Point" }, - "id": 411, + "id": 1439, "name": "UserDefinedTypeName", - "src": "6117:7:0" + "src": "6117:7:4" } ], - "id": 412, + "id": 1440, "name": "VariableDeclaration", - "src": "6117:17:0" + "src": "6117:17:4" }, { "attributes": { "constant": false, "name": "c2", - "scope": 481, + "scope": 1509, "stateVariable": false, "storageLocation": "memory", "type": "struct Pairing.G2Point", @@ -20653,22 +20653,22 @@ "attributes": { "contractScope": null, "name": "G2Point", - "referencedDeclaration": 15, + "referencedDeclaration": 1043, "type": "struct Pairing.G2Point" }, - "id": 413, + "id": 1441, "name": "UserDefinedTypeName", - "src": "6136:7:0" + "src": "6136:7:4" } ], - "id": 414, + "id": 1442, "name": "VariableDeclaration", - "src": "6136:17:0" + "src": "6136:17:4" } ], - "id": 415, + "id": 1443, "name": "ParameterList", - "src": "6003:156:0" + "src": "6003:156:4" }, { "children": [ @@ -20676,7 +20676,7 @@ "attributes": { "constant": false, "name": "", - "scope": 481, + "scope": 1509, "stateVariable": false, "storageLocation": "default", "type": "bool", @@ -20689,26 +20689,26 @@ "name": "bool", "type": "bool" }, - "id": 416, + "id": 1444, "name": "ElementaryTypeName", - "src": "6183:4:0" + "src": "6183:4:4" } ], - "id": 417, + "id": 1445, "name": "VariableDeclaration", - "src": "6183:4:0" + "src": "6183:4:4" } ], - "id": 418, + "id": 1446, "name": "ParameterList", - "src": "6182:6:0" + "src": "6182:6:4" }, { "children": [ { "attributes": { "assignments": [ - 422 + 1450 ] }, "children": [ @@ -20716,7 +20716,7 @@ "attributes": { "constant": false, "name": "p1", - "scope": 480, + "scope": 1508, "stateVariable": false, "storageLocation": "memory", "type": "struct Pairing.G1Point[]", @@ -20734,22 +20734,22 @@ "attributes": { "contractScope": null, "name": "G1Point", - "referencedDeclaration": 6, + "referencedDeclaration": 1034, "type": "struct Pairing.G1Point" }, - "id": 420, + "id": 1448, "name": "UserDefinedTypeName", - "src": "6199:7:0" + "src": "6199:7:4" } ], - "id": 421, + "id": 1449, "name": "ArrayTypeName", - "src": "6199:9:0" + "src": "6199:9:4" } ], - "id": 422, + "id": 1450, "name": "VariableDeclaration", - "src": "6199:19:0" + "src": "6199:19:4" }, { "attributes": { @@ -20791,22 +20791,22 @@ "attributes": { "contractScope": null, "name": "G1Point", - "referencedDeclaration": 6, + "referencedDeclaration": 1034, "type": "struct Pairing.G1Point" }, - "id": 423, + "id": 1451, "name": "UserDefinedTypeName", - "src": "6225:7:0" + "src": "6225:7:4" } ], - "id": 424, + "id": 1452, "name": "ArrayTypeName", - "src": "6225:9:0" + "src": "6225:9:4" } ], - "id": 425, + "id": 1453, "name": "NewExpression", - "src": "6221:13:0" + "src": "6221:13:4" }, { "attributes": { @@ -20821,24 +20821,24 @@ "type": "int_const 3", "value": "3" }, - "id": 426, + "id": 1454, "name": "Literal", - "src": "6235:1:0" + "src": "6235:1:4" } ], - "id": 427, + "id": 1455, "name": "FunctionCall", - "src": "6221:16:0" + "src": "6221:16:4" } ], - "id": 428, + "id": 1456, "name": "VariableDeclarationStatement", - "src": "6199:38:0" + "src": "6199:38:4" }, { "attributes": { "assignments": [ - 432 + 1460 ] }, "children": [ @@ -20846,7 +20846,7 @@ "attributes": { "constant": false, "name": "p2", - "scope": 480, + "scope": 1508, "stateVariable": false, "storageLocation": "memory", "type": "struct Pairing.G2Point[]", @@ -20864,22 +20864,22 @@ "attributes": { "contractScope": null, "name": "G2Point", - "referencedDeclaration": 15, + "referencedDeclaration": 1043, "type": "struct Pairing.G2Point" }, - "id": 430, + "id": 1458, "name": "UserDefinedTypeName", - "src": "6247:7:0" + "src": "6247:7:4" } ], - "id": 431, + "id": 1459, "name": "ArrayTypeName", - "src": "6247:9:0" + "src": "6247:9:4" } ], - "id": 432, + "id": 1460, "name": "VariableDeclaration", - "src": "6247:19:0" + "src": "6247:19:4" }, { "attributes": { @@ -20921,22 +20921,22 @@ "attributes": { "contractScope": null, "name": "G2Point", - "referencedDeclaration": 15, + "referencedDeclaration": 1043, "type": "struct Pairing.G2Point" }, - "id": 433, + "id": 1461, "name": "UserDefinedTypeName", - "src": "6273:7:0" + "src": "6273:7:4" } ], - "id": 434, + "id": 1462, "name": "ArrayTypeName", - "src": "6273:9:0" + "src": "6273:9:4" } ], - "id": 435, + "id": 1463, "name": "NewExpression", - "src": "6269:13:0" + "src": "6269:13:4" }, { "attributes": { @@ -20951,19 +20951,19 @@ "type": "int_const 3", "value": "3" }, - "id": 436, + "id": 1464, "name": "Literal", - "src": "6283:1:0" + "src": "6283:1:4" } ], - "id": 437, + "id": 1465, "name": "FunctionCall", - "src": "6269:16:0" + "src": "6269:16:4" } ], - "id": 438, + "id": 1466, "name": "VariableDeclarationStatement", - "src": "6247:38:0" + "src": "6247:38:4" }, { "children": [ @@ -20994,13 +20994,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 422, + "referencedDeclaration": 1450, "type": "struct Pairing.G1Point memory[] memory", "value": "p1" }, - "id": 439, + "id": 1467, "name": "Identifier", - "src": "6295:2:0" + "src": "6295:2:4" }, { "attributes": { @@ -21015,14 +21015,14 @@ "type": "int_const 0", "value": "0" }, - "id": 440, + "id": 1468, "name": "Literal", - "src": "6298:1:0" + "src": "6298:1:4" } ], - "id": 441, + "id": 1469, "name": "IndexAccess", - "src": "6295:5:0" + "src": "6295:5:4" }, { "attributes": { @@ -21030,23 +21030,23 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 404, + "referencedDeclaration": 1432, "type": "struct Pairing.G1Point memory", "value": "a1" }, - "id": 442, + "id": 1470, "name": "Identifier", - "src": "6303:2:0" + "src": "6303:2:4" } ], - "id": 443, + "id": 1471, "name": "Assignment", - "src": "6295:10:0" + "src": "6295:10:4" } ], - "id": 444, + "id": 1472, "name": "ExpressionStatement", - "src": "6295:10:0" + "src": "6295:10:4" }, { "children": [ @@ -21077,13 +21077,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 422, + "referencedDeclaration": 1450, "type": "struct Pairing.G1Point memory[] memory", "value": "p1" }, - "id": 445, + "id": 1473, "name": "Identifier", - "src": "6315:2:0" + "src": "6315:2:4" }, { "attributes": { @@ -21098,14 +21098,14 @@ "type": "int_const 1", "value": "1" }, - "id": 446, + "id": 1474, "name": "Literal", - "src": "6318:1:0" + "src": "6318:1:4" } ], - "id": 447, + "id": 1475, "name": "IndexAccess", - "src": "6315:5:0" + "src": "6315:5:4" }, { "attributes": { @@ -21113,23 +21113,23 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 408, + "referencedDeclaration": 1436, "type": "struct Pairing.G1Point memory", "value": "b1" }, - "id": 448, + "id": 1476, "name": "Identifier", - "src": "6323:2:0" + "src": "6323:2:4" } ], - "id": 449, + "id": 1477, "name": "Assignment", - "src": "6315:10:0" + "src": "6315:10:4" } ], - "id": 450, + "id": 1478, "name": "ExpressionStatement", - "src": "6315:10:0" + "src": "6315:10:4" }, { "children": [ @@ -21160,13 +21160,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 422, + "referencedDeclaration": 1450, "type": "struct Pairing.G1Point memory[] memory", "value": "p1" }, - "id": 451, + "id": 1479, "name": "Identifier", - "src": "6335:2:0" + "src": "6335:2:4" }, { "attributes": { @@ -21181,14 +21181,14 @@ "type": "int_const 2", "value": "2" }, - "id": 452, + "id": 1480, "name": "Literal", - "src": "6338:1:0" + "src": "6338:1:4" } ], - "id": 453, + "id": 1481, "name": "IndexAccess", - "src": "6335:5:0" + "src": "6335:5:4" }, { "attributes": { @@ -21196,23 +21196,23 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 412, + "referencedDeclaration": 1440, "type": "struct Pairing.G1Point memory", "value": "c1" }, - "id": 454, + "id": 1482, "name": "Identifier", - "src": "6343:2:0" + "src": "6343:2:4" } ], - "id": 455, + "id": 1483, "name": "Assignment", - "src": "6335:10:0" + "src": "6335:10:4" } ], - "id": 456, + "id": 1484, "name": "ExpressionStatement", - "src": "6335:10:0" + "src": "6335:10:4" }, { "children": [ @@ -21243,13 +21243,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 432, + "referencedDeclaration": 1460, "type": "struct Pairing.G2Point memory[] memory", "value": "p2" }, - "id": 457, + "id": 1485, "name": "Identifier", - "src": "6355:2:0" + "src": "6355:2:4" }, { "attributes": { @@ -21264,14 +21264,14 @@ "type": "int_const 0", "value": "0" }, - "id": 458, + "id": 1486, "name": "Literal", - "src": "6358:1:0" + "src": "6358:1:4" } ], - "id": 459, + "id": 1487, "name": "IndexAccess", - "src": "6355:5:0" + "src": "6355:5:4" }, { "attributes": { @@ -21279,23 +21279,23 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 406, + "referencedDeclaration": 1434, "type": "struct Pairing.G2Point memory", "value": "a2" }, - "id": 460, + "id": 1488, "name": "Identifier", - "src": "6363:2:0" + "src": "6363:2:4" } ], - "id": 461, + "id": 1489, "name": "Assignment", - "src": "6355:10:0" + "src": "6355:10:4" } ], - "id": 462, + "id": 1490, "name": "ExpressionStatement", - "src": "6355:10:0" + "src": "6355:10:4" }, { "children": [ @@ -21326,13 +21326,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 432, + "referencedDeclaration": 1460, "type": "struct Pairing.G2Point memory[] memory", "value": "p2" }, - "id": 463, + "id": 1491, "name": "Identifier", - "src": "6375:2:0" + "src": "6375:2:4" }, { "attributes": { @@ -21347,14 +21347,14 @@ "type": "int_const 1", "value": "1" }, - "id": 464, + "id": 1492, "name": "Literal", - "src": "6378:1:0" + "src": "6378:1:4" } ], - "id": 465, + "id": 1493, "name": "IndexAccess", - "src": "6375:5:0" + "src": "6375:5:4" }, { "attributes": { @@ -21362,23 +21362,23 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 410, + "referencedDeclaration": 1438, "type": "struct Pairing.G2Point memory", "value": "b2" }, - "id": 466, + "id": 1494, "name": "Identifier", - "src": "6383:2:0" + "src": "6383:2:4" } ], - "id": 467, + "id": 1495, "name": "Assignment", - "src": "6375:10:0" + "src": "6375:10:4" } ], - "id": 468, + "id": 1496, "name": "ExpressionStatement", - "src": "6375:10:0" + "src": "6375:10:4" }, { "children": [ @@ -21409,13 +21409,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 432, + "referencedDeclaration": 1460, "type": "struct Pairing.G2Point memory[] memory", "value": "p2" }, - "id": 469, + "id": 1497, "name": "Identifier", - "src": "6395:2:0" + "src": "6395:2:4" }, { "attributes": { @@ -21430,14 +21430,14 @@ "type": "int_const 2", "value": "2" }, - "id": 470, + "id": 1498, "name": "Literal", - "src": "6398:1:0" + "src": "6398:1:4" } ], - "id": 471, + "id": 1499, "name": "IndexAccess", - "src": "6395:5:0" + "src": "6395:5:4" }, { "attributes": { @@ -21445,27 +21445,27 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 414, + "referencedDeclaration": 1442, "type": "struct Pairing.G2Point memory", "value": "c2" }, - "id": 472, + "id": 1500, "name": "Identifier", - "src": "6403:2:0" + "src": "6403:2:4" } ], - "id": 473, + "id": 1501, "name": "Assignment", - "src": "6395:10:0" + "src": "6395:10:4" } ], - "id": 474, + "id": 1502, "name": "ExpressionStatement", - "src": "6395:10:0" + "src": "6395:10:4" }, { "attributes": { - "functionReturnParameters": 418 + "functionReturnParameters": 1446 }, "children": [ { @@ -21487,24 +21487,24 @@ "attributes": { "argumentTypes": [ { - "typeIdentifier": "t_array$_t_struct$_G1Point_$6_memory_$dyn_memory_ptr", + "typeIdentifier": "t_array$_t_struct$_G1Point_$1034_memory_$dyn_memory_ptr", "typeString": "struct Pairing.G1Point memory[] memory" }, { - "typeIdentifier": "t_array$_t_struct$_G2Point_$15_memory_$dyn_memory_ptr", + "typeIdentifier": "t_array$_t_struct$_G2Point_$1043_memory_$dyn_memory_ptr", "typeString": "struct Pairing.G2Point memory[] memory" } ], "overloadedDeclarations": [ null ], - "referencedDeclaration": 339, + "referencedDeclaration": 1367, "type": "function (struct Pairing.G1Point memory[] memory,struct Pairing.G2Point memory[] memory) view returns (bool)", "value": "pairing" }, - "id": 475, + "id": 1503, "name": "Identifier", - "src": "6422:7:0" + "src": "6422:7:4" }, { "attributes": { @@ -21512,13 +21512,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 422, + "referencedDeclaration": 1450, "type": "struct Pairing.G1Point memory[] memory", "value": "p1" }, - "id": 476, + "id": 1504, "name": "Identifier", - "src": "6430:2:0" + "src": "6430:2:4" }, { "attributes": { @@ -21526,33 +21526,33 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 432, + "referencedDeclaration": 1460, "type": "struct Pairing.G2Point memory[] memory", "value": "p2" }, - "id": 477, + "id": 1505, "name": "Identifier", - "src": "6434:2:0" + "src": "6434:2:4" } ], - "id": 478, + "id": 1506, "name": "FunctionCall", - "src": "6422:15:0" + "src": "6422:15:4" } ], - "id": 479, + "id": 1507, "name": "Return", - "src": "6415:22:0" + "src": "6415:22:4" } ], - "id": 480, + "id": 1508, "name": "Block", - "src": "6189:255:0" + "src": "6189:255:4" } ], - "id": 481, + "id": 1509, "name": "FunctionDefinition", - "src": "5982:462:0" + "src": "5982:462:4" }, { "attributes": { @@ -21564,7 +21564,7 @@ null ], "name": "pairingProd4", - "scope": 577, + "scope": 1605, "stateMutability": "view", "superFunction": null, "visibility": "internal" @@ -21576,7 +21576,7 @@ "attributes": { "constant": false, "name": "a1", - "scope": 576, + "scope": 1604, "stateVariable": false, "storageLocation": "memory", "type": "struct Pairing.G1Point", @@ -21588,23 +21588,23 @@ "attributes": { "contractScope": null, "name": "G1Point", - "referencedDeclaration": 6, + "referencedDeclaration": 1034, "type": "struct Pairing.G1Point" }, - "id": 482, + "id": 1510, "name": "UserDefinedTypeName", - "src": "6547:7:0" + "src": "6547:7:4" } ], - "id": 483, + "id": 1511, "name": "VariableDeclaration", - "src": "6547:17:0" + "src": "6547:17:4" }, { "attributes": { "constant": false, "name": "a2", - "scope": 576, + "scope": 1604, "stateVariable": false, "storageLocation": "memory", "type": "struct Pairing.G2Point", @@ -21616,23 +21616,23 @@ "attributes": { "contractScope": null, "name": "G2Point", - "referencedDeclaration": 15, + "referencedDeclaration": 1043, "type": "struct Pairing.G2Point" }, - "id": 484, + "id": 1512, "name": "UserDefinedTypeName", - "src": "6566:7:0" + "src": "6566:7:4" } ], - "id": 485, + "id": 1513, "name": "VariableDeclaration", - "src": "6566:17:0" + "src": "6566:17:4" }, { "attributes": { "constant": false, "name": "b1", - "scope": 576, + "scope": 1604, "stateVariable": false, "storageLocation": "memory", "type": "struct Pairing.G1Point", @@ -21644,23 +21644,23 @@ "attributes": { "contractScope": null, "name": "G1Point", - "referencedDeclaration": 6, + "referencedDeclaration": 1034, "type": "struct Pairing.G1Point" }, - "id": 486, + "id": 1514, "name": "UserDefinedTypeName", - "src": "6597:7:0" + "src": "6597:7:4" } ], - "id": 487, + "id": 1515, "name": "VariableDeclaration", - "src": "6597:17:0" + "src": "6597:17:4" }, { "attributes": { "constant": false, "name": "b2", - "scope": 576, + "scope": 1604, "stateVariable": false, "storageLocation": "memory", "type": "struct Pairing.G2Point", @@ -21672,23 +21672,23 @@ "attributes": { "contractScope": null, "name": "G2Point", - "referencedDeclaration": 15, + "referencedDeclaration": 1043, "type": "struct Pairing.G2Point" }, - "id": 488, + "id": 1516, "name": "UserDefinedTypeName", - "src": "6616:7:0" + "src": "6616:7:4" } ], - "id": 489, + "id": 1517, "name": "VariableDeclaration", - "src": "6616:17:0" + "src": "6616:17:4" }, { "attributes": { "constant": false, "name": "c1", - "scope": 576, + "scope": 1604, "stateVariable": false, "storageLocation": "memory", "type": "struct Pairing.G1Point", @@ -21700,23 +21700,23 @@ "attributes": { "contractScope": null, "name": "G1Point", - "referencedDeclaration": 6, + "referencedDeclaration": 1034, "type": "struct Pairing.G1Point" }, - "id": 490, + "id": 1518, "name": "UserDefinedTypeName", - "src": "6647:7:0" + "src": "6647:7:4" } ], - "id": 491, + "id": 1519, "name": "VariableDeclaration", - "src": "6647:17:0" + "src": "6647:17:4" }, { "attributes": { "constant": false, "name": "c2", - "scope": 576, + "scope": 1604, "stateVariable": false, "storageLocation": "memory", "type": "struct Pairing.G2Point", @@ -21728,23 +21728,23 @@ "attributes": { "contractScope": null, "name": "G2Point", - "referencedDeclaration": 15, + "referencedDeclaration": 1043, "type": "struct Pairing.G2Point" }, - "id": 492, + "id": 1520, "name": "UserDefinedTypeName", - "src": "6666:7:0" + "src": "6666:7:4" } ], - "id": 493, + "id": 1521, "name": "VariableDeclaration", - "src": "6666:17:0" + "src": "6666:17:4" }, { "attributes": { "constant": false, "name": "d1", - "scope": 576, + "scope": 1604, "stateVariable": false, "storageLocation": "memory", "type": "struct Pairing.G1Point", @@ -21756,23 +21756,23 @@ "attributes": { "contractScope": null, "name": "G1Point", - "referencedDeclaration": 6, + "referencedDeclaration": 1034, "type": "struct Pairing.G1Point" }, - "id": 494, + "id": 1522, "name": "UserDefinedTypeName", - "src": "6697:7:0" + "src": "6697:7:4" } ], - "id": 495, + "id": 1523, "name": "VariableDeclaration", - "src": "6697:17:0" + "src": "6697:17:4" }, { "attributes": { "constant": false, "name": "d2", - "scope": 576, + "scope": 1604, "stateVariable": false, "storageLocation": "memory", "type": "struct Pairing.G2Point", @@ -21784,22 +21784,22 @@ "attributes": { "contractScope": null, "name": "G2Point", - "referencedDeclaration": 15, + "referencedDeclaration": 1043, "type": "struct Pairing.G2Point" }, - "id": 496, + "id": 1524, "name": "UserDefinedTypeName", - "src": "6716:7:0" + "src": "6716:7:4" } ], - "id": 497, + "id": 1525, "name": "VariableDeclaration", - "src": "6716:17:0" + "src": "6716:17:4" } ], - "id": 498, + "id": 1526, "name": "ParameterList", - "src": "6533:206:0" + "src": "6533:206:4" }, { "children": [ @@ -21807,7 +21807,7 @@ "attributes": { "constant": false, "name": "", - "scope": 576, + "scope": 1604, "stateVariable": false, "storageLocation": "default", "type": "bool", @@ -21820,26 +21820,26 @@ "name": "bool", "type": "bool" }, - "id": 499, + "id": 1527, "name": "ElementaryTypeName", - "src": "6763:4:0" + "src": "6763:4:4" } ], - "id": 500, + "id": 1528, "name": "VariableDeclaration", - "src": "6763:4:0" + "src": "6763:4:4" } ], - "id": 501, + "id": 1529, "name": "ParameterList", - "src": "6762:6:0" + "src": "6762:6:4" }, { "children": [ { "attributes": { "assignments": [ - 505 + 1533 ] }, "children": [ @@ -21847,7 +21847,7 @@ "attributes": { "constant": false, "name": "p1", - "scope": 575, + "scope": 1603, "stateVariable": false, "storageLocation": "memory", "type": "struct Pairing.G1Point[]", @@ -21865,22 +21865,22 @@ "attributes": { "contractScope": null, "name": "G1Point", - "referencedDeclaration": 6, + "referencedDeclaration": 1034, "type": "struct Pairing.G1Point" }, - "id": 503, + "id": 1531, "name": "UserDefinedTypeName", - "src": "6779:7:0" + "src": "6779:7:4" } ], - "id": 504, + "id": 1532, "name": "ArrayTypeName", - "src": "6779:9:0" + "src": "6779:9:4" } ], - "id": 505, + "id": 1533, "name": "VariableDeclaration", - "src": "6779:19:0" + "src": "6779:19:4" }, { "attributes": { @@ -21922,22 +21922,22 @@ "attributes": { "contractScope": null, "name": "G1Point", - "referencedDeclaration": 6, + "referencedDeclaration": 1034, "type": "struct Pairing.G1Point" }, - "id": 506, + "id": 1534, "name": "UserDefinedTypeName", - "src": "6805:7:0" + "src": "6805:7:4" } ], - "id": 507, + "id": 1535, "name": "ArrayTypeName", - "src": "6805:9:0" + "src": "6805:9:4" } ], - "id": 508, + "id": 1536, "name": "NewExpression", - "src": "6801:13:0" + "src": "6801:13:4" }, { "attributes": { @@ -21952,24 +21952,24 @@ "type": "int_const 4", "value": "4" }, - "id": 509, + "id": 1537, "name": "Literal", - "src": "6815:1:0" + "src": "6815:1:4" } ], - "id": 510, + "id": 1538, "name": "FunctionCall", - "src": "6801:16:0" + "src": "6801:16:4" } ], - "id": 511, + "id": 1539, "name": "VariableDeclarationStatement", - "src": "6779:38:0" + "src": "6779:38:4" }, { "attributes": { "assignments": [ - 515 + 1543 ] }, "children": [ @@ -21977,7 +21977,7 @@ "attributes": { "constant": false, "name": "p2", - "scope": 575, + "scope": 1603, "stateVariable": false, "storageLocation": "memory", "type": "struct Pairing.G2Point[]", @@ -21995,22 +21995,22 @@ "attributes": { "contractScope": null, "name": "G2Point", - "referencedDeclaration": 15, + "referencedDeclaration": 1043, "type": "struct Pairing.G2Point" }, - "id": 513, + "id": 1541, "name": "UserDefinedTypeName", - "src": "6827:7:0" + "src": "6827:7:4" } ], - "id": 514, + "id": 1542, "name": "ArrayTypeName", - "src": "6827:9:0" + "src": "6827:9:4" } ], - "id": 515, + "id": 1543, "name": "VariableDeclaration", - "src": "6827:19:0" + "src": "6827:19:4" }, { "attributes": { @@ -22052,22 +22052,22 @@ "attributes": { "contractScope": null, "name": "G2Point", - "referencedDeclaration": 15, + "referencedDeclaration": 1043, "type": "struct Pairing.G2Point" }, - "id": 516, + "id": 1544, "name": "UserDefinedTypeName", - "src": "6853:7:0" + "src": "6853:7:4" } ], - "id": 517, + "id": 1545, "name": "ArrayTypeName", - "src": "6853:9:0" + "src": "6853:9:4" } ], - "id": 518, + "id": 1546, "name": "NewExpression", - "src": "6849:13:0" + "src": "6849:13:4" }, { "attributes": { @@ -22082,19 +22082,19 @@ "type": "int_const 4", "value": "4" }, - "id": 519, + "id": 1547, "name": "Literal", - "src": "6863:1:0" + "src": "6863:1:4" } ], - "id": 520, + "id": 1548, "name": "FunctionCall", - "src": "6849:16:0" + "src": "6849:16:4" } ], - "id": 521, + "id": 1549, "name": "VariableDeclarationStatement", - "src": "6827:38:0" + "src": "6827:38:4" }, { "children": [ @@ -22125,13 +22125,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 505, + "referencedDeclaration": 1533, "type": "struct Pairing.G1Point memory[] memory", "value": "p1" }, - "id": 522, + "id": 1550, "name": "Identifier", - "src": "6875:2:0" + "src": "6875:2:4" }, { "attributes": { @@ -22146,14 +22146,14 @@ "type": "int_const 0", "value": "0" }, - "id": 523, + "id": 1551, "name": "Literal", - "src": "6878:1:0" + "src": "6878:1:4" } ], - "id": 524, + "id": 1552, "name": "IndexAccess", - "src": "6875:5:0" + "src": "6875:5:4" }, { "attributes": { @@ -22161,23 +22161,23 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 483, + "referencedDeclaration": 1511, "type": "struct Pairing.G1Point memory", "value": "a1" }, - "id": 525, + "id": 1553, "name": "Identifier", - "src": "6883:2:0" + "src": "6883:2:4" } ], - "id": 526, + "id": 1554, "name": "Assignment", - "src": "6875:10:0" + "src": "6875:10:4" } ], - "id": 527, + "id": 1555, "name": "ExpressionStatement", - "src": "6875:10:0" + "src": "6875:10:4" }, { "children": [ @@ -22208,13 +22208,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 505, + "referencedDeclaration": 1533, "type": "struct Pairing.G1Point memory[] memory", "value": "p1" }, - "id": 528, + "id": 1556, "name": "Identifier", - "src": "6895:2:0" + "src": "6895:2:4" }, { "attributes": { @@ -22229,14 +22229,14 @@ "type": "int_const 1", "value": "1" }, - "id": 529, + "id": 1557, "name": "Literal", - "src": "6898:1:0" + "src": "6898:1:4" } ], - "id": 530, + "id": 1558, "name": "IndexAccess", - "src": "6895:5:0" + "src": "6895:5:4" }, { "attributes": { @@ -22244,23 +22244,23 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 487, + "referencedDeclaration": 1515, "type": "struct Pairing.G1Point memory", "value": "b1" }, - "id": 531, + "id": 1559, "name": "Identifier", - "src": "6903:2:0" + "src": "6903:2:4" } ], - "id": 532, + "id": 1560, "name": "Assignment", - "src": "6895:10:0" + "src": "6895:10:4" } ], - "id": 533, + "id": 1561, "name": "ExpressionStatement", - "src": "6895:10:0" + "src": "6895:10:4" }, { "children": [ @@ -22291,13 +22291,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 505, + "referencedDeclaration": 1533, "type": "struct Pairing.G1Point memory[] memory", "value": "p1" }, - "id": 534, + "id": 1562, "name": "Identifier", - "src": "6915:2:0" + "src": "6915:2:4" }, { "attributes": { @@ -22312,14 +22312,14 @@ "type": "int_const 2", "value": "2" }, - "id": 535, + "id": 1563, "name": "Literal", - "src": "6918:1:0" + "src": "6918:1:4" } ], - "id": 536, + "id": 1564, "name": "IndexAccess", - "src": "6915:5:0" + "src": "6915:5:4" }, { "attributes": { @@ -22327,23 +22327,23 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 491, + "referencedDeclaration": 1519, "type": "struct Pairing.G1Point memory", "value": "c1" }, - "id": 537, + "id": 1565, "name": "Identifier", - "src": "6923:2:0" + "src": "6923:2:4" } ], - "id": 538, + "id": 1566, "name": "Assignment", - "src": "6915:10:0" + "src": "6915:10:4" } ], - "id": 539, + "id": 1567, "name": "ExpressionStatement", - "src": "6915:10:0" + "src": "6915:10:4" }, { "children": [ @@ -22374,13 +22374,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 505, + "referencedDeclaration": 1533, "type": "struct Pairing.G1Point memory[] memory", "value": "p1" }, - "id": 540, + "id": 1568, "name": "Identifier", - "src": "6935:2:0" + "src": "6935:2:4" }, { "attributes": { @@ -22395,14 +22395,14 @@ "type": "int_const 3", "value": "3" }, - "id": 541, + "id": 1569, "name": "Literal", - "src": "6938:1:0" + "src": "6938:1:4" } ], - "id": 542, + "id": 1570, "name": "IndexAccess", - "src": "6935:5:0" + "src": "6935:5:4" }, { "attributes": { @@ -22410,23 +22410,23 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 495, + "referencedDeclaration": 1523, "type": "struct Pairing.G1Point memory", "value": "d1" }, - "id": 543, + "id": 1571, "name": "Identifier", - "src": "6943:2:0" + "src": "6943:2:4" } ], - "id": 544, + "id": 1572, "name": "Assignment", - "src": "6935:10:0" + "src": "6935:10:4" } ], - "id": 545, + "id": 1573, "name": "ExpressionStatement", - "src": "6935:10:0" + "src": "6935:10:4" }, { "children": [ @@ -22457,13 +22457,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 515, + "referencedDeclaration": 1543, "type": "struct Pairing.G2Point memory[] memory", "value": "p2" }, - "id": 546, + "id": 1574, "name": "Identifier", - "src": "6955:2:0" + "src": "6955:2:4" }, { "attributes": { @@ -22478,14 +22478,14 @@ "type": "int_const 0", "value": "0" }, - "id": 547, + "id": 1575, "name": "Literal", - "src": "6958:1:0" + "src": "6958:1:4" } ], - "id": 548, + "id": 1576, "name": "IndexAccess", - "src": "6955:5:0" + "src": "6955:5:4" }, { "attributes": { @@ -22493,23 +22493,23 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 485, + "referencedDeclaration": 1513, "type": "struct Pairing.G2Point memory", "value": "a2" }, - "id": 549, + "id": 1577, "name": "Identifier", - "src": "6963:2:0" + "src": "6963:2:4" } ], - "id": 550, + "id": 1578, "name": "Assignment", - "src": "6955:10:0" + "src": "6955:10:4" } ], - "id": 551, + "id": 1579, "name": "ExpressionStatement", - "src": "6955:10:0" + "src": "6955:10:4" }, { "children": [ @@ -22540,13 +22540,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 515, + "referencedDeclaration": 1543, "type": "struct Pairing.G2Point memory[] memory", "value": "p2" }, - "id": 552, + "id": 1580, "name": "Identifier", - "src": "6975:2:0" + "src": "6975:2:4" }, { "attributes": { @@ -22561,14 +22561,14 @@ "type": "int_const 1", "value": "1" }, - "id": 553, + "id": 1581, "name": "Literal", - "src": "6978:1:0" + "src": "6978:1:4" } ], - "id": 554, + "id": 1582, "name": "IndexAccess", - "src": "6975:5:0" + "src": "6975:5:4" }, { "attributes": { @@ -22576,23 +22576,23 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 489, + "referencedDeclaration": 1517, "type": "struct Pairing.G2Point memory", "value": "b2" }, - "id": 555, + "id": 1583, "name": "Identifier", - "src": "6983:2:0" + "src": "6983:2:4" } ], - "id": 556, + "id": 1584, "name": "Assignment", - "src": "6975:10:0" + "src": "6975:10:4" } ], - "id": 557, + "id": 1585, "name": "ExpressionStatement", - "src": "6975:10:0" + "src": "6975:10:4" }, { "children": [ @@ -22623,13 +22623,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 515, + "referencedDeclaration": 1543, "type": "struct Pairing.G2Point memory[] memory", "value": "p2" }, - "id": 558, + "id": 1586, "name": "Identifier", - "src": "6995:2:0" + "src": "6995:2:4" }, { "attributes": { @@ -22644,14 +22644,14 @@ "type": "int_const 2", "value": "2" }, - "id": 559, + "id": 1587, "name": "Literal", - "src": "6998:1:0" + "src": "6998:1:4" } ], - "id": 560, + "id": 1588, "name": "IndexAccess", - "src": "6995:5:0" + "src": "6995:5:4" }, { "attributes": { @@ -22659,23 +22659,23 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 493, + "referencedDeclaration": 1521, "type": "struct Pairing.G2Point memory", "value": "c2" }, - "id": 561, + "id": 1589, "name": "Identifier", - "src": "7003:2:0" + "src": "7003:2:4" } ], - "id": 562, + "id": 1590, "name": "Assignment", - "src": "6995:10:0" + "src": "6995:10:4" } ], - "id": 563, + "id": 1591, "name": "ExpressionStatement", - "src": "6995:10:0" + "src": "6995:10:4" }, { "children": [ @@ -22706,13 +22706,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 515, + "referencedDeclaration": 1543, "type": "struct Pairing.G2Point memory[] memory", "value": "p2" }, - "id": 564, + "id": 1592, "name": "Identifier", - "src": "7015:2:0" + "src": "7015:2:4" }, { "attributes": { @@ -22727,14 +22727,14 @@ "type": "int_const 3", "value": "3" }, - "id": 565, + "id": 1593, "name": "Literal", - "src": "7018:1:0" + "src": "7018:1:4" } ], - "id": 566, + "id": 1594, "name": "IndexAccess", - "src": "7015:5:0" + "src": "7015:5:4" }, { "attributes": { @@ -22742,27 +22742,27 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 497, + "referencedDeclaration": 1525, "type": "struct Pairing.G2Point memory", "value": "d2" }, - "id": 567, + "id": 1595, "name": "Identifier", - "src": "7023:2:0" + "src": "7023:2:4" } ], - "id": 568, + "id": 1596, "name": "Assignment", - "src": "7015:10:0" + "src": "7015:10:4" } ], - "id": 569, + "id": 1597, "name": "ExpressionStatement", - "src": "7015:10:0" + "src": "7015:10:4" }, { "attributes": { - "functionReturnParameters": 501 + "functionReturnParameters": 1529 }, "children": [ { @@ -22784,24 +22784,24 @@ "attributes": { "argumentTypes": [ { - "typeIdentifier": "t_array$_t_struct$_G1Point_$6_memory_$dyn_memory_ptr", + "typeIdentifier": "t_array$_t_struct$_G1Point_$1034_memory_$dyn_memory_ptr", "typeString": "struct Pairing.G1Point memory[] memory" }, { - "typeIdentifier": "t_array$_t_struct$_G2Point_$15_memory_$dyn_memory_ptr", + "typeIdentifier": "t_array$_t_struct$_G2Point_$1043_memory_$dyn_memory_ptr", "typeString": "struct Pairing.G2Point memory[] memory" } ], "overloadedDeclarations": [ null ], - "referencedDeclaration": 339, + "referencedDeclaration": 1367, "type": "function (struct Pairing.G1Point memory[] memory,struct Pairing.G2Point memory[] memory) view returns (bool)", "value": "pairing" }, - "id": 570, + "id": 1598, "name": "Identifier", - "src": "7042:7:0" + "src": "7042:7:4" }, { "attributes": { @@ -22809,13 +22809,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 505, + "referencedDeclaration": 1533, "type": "struct Pairing.G1Point memory[] memory", "value": "p1" }, - "id": 571, + "id": 1599, "name": "Identifier", - "src": "7050:2:0" + "src": "7050:2:4" }, { "attributes": { @@ -22823,38 +22823,38 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 515, + "referencedDeclaration": 1543, "type": "struct Pairing.G2Point memory[] memory", "value": "p2" }, - "id": 572, + "id": 1600, "name": "Identifier", - "src": "7054:2:0" + "src": "7054:2:4" } ], - "id": 573, + "id": 1601, "name": "FunctionCall", - "src": "7042:15:0" + "src": "7042:15:4" } ], - "id": 574, + "id": 1602, "name": "Return", - "src": "7035:22:0" + "src": "7035:22:4" } ], - "id": 575, + "id": 1603, "name": "Block", - "src": "6769:295:0" + "src": "6769:295:4" } ], - "id": 576, + "id": 1604, "name": "FunctionDefinition", - "src": "6512:552:0" + "src": "6512:552:4" } ], - "id": 577, + "id": 1605, "name": "ContractDefinition", - "src": "1217:5849:0" + "src": "1217:5849:4" }, { "attributes": { @@ -22868,10 +22868,10 @@ "documentation": null, "fullyImplemented": true, "linearizedBaseContracts": [ - 1058 + 2086 ], "name": "Verifier", - "scope": 1059 + "scope": 2087 }, "children": [ { @@ -22883,23 +22883,23 @@ "attributes": { "contractScope": null, "name": "Pairing", - "referencedDeclaration": 577, + "referencedDeclaration": 1605, "type": "library Pairing" }, - "id": 578, + "id": 1606, "name": "UserDefinedTypeName", - "src": "7097:7:0" + "src": "7097:7:4" } ], - "id": 579, + "id": 1607, "name": "UsingForDirective", - "src": "7091:20:0" + "src": "7091:20:4" }, { "attributes": { "canonicalName": "Verifier.VerifyingKey", "name": "VerifyingKey", - "scope": 1058, + "scope": 2086, "visibility": "public" }, "children": [ @@ -22907,7 +22907,7 @@ "attributes": { "constant": false, "name": "alfa1", - "scope": 591, + "scope": 1619, "stateVariable": false, "storageLocation": "default", "type": "struct Pairing.G1Point", @@ -22919,23 +22919,23 @@ "attributes": { "contractScope": null, "name": "Pairing.G1Point", - "referencedDeclaration": 6, + "referencedDeclaration": 1034, "type": "struct Pairing.G1Point" }, - "id": 580, + "id": 1608, "name": "UserDefinedTypeName", - "src": "7146:15:0" + "src": "7146:15:4" } ], - "id": 581, + "id": 1609, "name": "VariableDeclaration", - "src": "7146:21:0" + "src": "7146:21:4" }, { "attributes": { "constant": false, "name": "beta2", - "scope": 591, + "scope": 1619, "stateVariable": false, "storageLocation": "default", "type": "struct Pairing.G2Point", @@ -22947,23 +22947,23 @@ "attributes": { "contractScope": null, "name": "Pairing.G2Point", - "referencedDeclaration": 15, + "referencedDeclaration": 1043, "type": "struct Pairing.G2Point" }, - "id": 582, + "id": 1610, "name": "UserDefinedTypeName", - "src": "7177:15:0" + "src": "7177:15:4" } ], - "id": 583, + "id": 1611, "name": "VariableDeclaration", - "src": "7177:21:0" + "src": "7177:21:4" }, { "attributes": { "constant": false, "name": "gamma2", - "scope": 591, + "scope": 1619, "stateVariable": false, "storageLocation": "default", "type": "struct Pairing.G2Point", @@ -22975,23 +22975,23 @@ "attributes": { "contractScope": null, "name": "Pairing.G2Point", - "referencedDeclaration": 15, + "referencedDeclaration": 1043, "type": "struct Pairing.G2Point" }, - "id": 584, + "id": 1612, "name": "UserDefinedTypeName", - "src": "7208:15:0" + "src": "7208:15:4" } ], - "id": 585, + "id": 1613, "name": "VariableDeclaration", - "src": "7208:22:0" + "src": "7208:22:4" }, { "attributes": { "constant": false, "name": "delta2", - "scope": 591, + "scope": 1619, "stateVariable": false, "storageLocation": "default", "type": "struct Pairing.G2Point", @@ -23003,23 +23003,23 @@ "attributes": { "contractScope": null, "name": "Pairing.G2Point", - "referencedDeclaration": 15, + "referencedDeclaration": 1043, "type": "struct Pairing.G2Point" }, - "id": 586, + "id": 1614, "name": "UserDefinedTypeName", - "src": "7240:15:0" + "src": "7240:15:4" } ], - "id": 587, + "id": 1615, "name": "VariableDeclaration", - "src": "7240:22:0" + "src": "7240:22:4" }, { "attributes": { "constant": false, "name": "IC", - "scope": 591, + "scope": 1619, "stateVariable": false, "storageLocation": "default", "type": "struct Pairing.G1Point[]", @@ -23037,33 +23037,33 @@ "attributes": { "contractScope": null, "name": "Pairing.G1Point", - "referencedDeclaration": 6, + "referencedDeclaration": 1034, "type": "struct Pairing.G1Point" }, - "id": 588, + "id": 1616, "name": "UserDefinedTypeName", - "src": "7272:15:0" + "src": "7272:15:4" } ], - "id": 589, + "id": 1617, "name": "ArrayTypeName", - "src": "7272:17:0" + "src": "7272:17:4" } ], - "id": 590, + "id": 1618, "name": "VariableDeclaration", - "src": "7272:20:0" + "src": "7272:20:4" } ], - "id": 591, + "id": 1619, "name": "StructDefinition", - "src": "7116:183:0" + "src": "7116:183:4" }, { "attributes": { "canonicalName": "Verifier.Proof", "name": "Proof", - "scope": 1058, + "scope": 2086, "visibility": "public" }, "children": [ @@ -23071,7 +23071,7 @@ "attributes": { "constant": false, "name": "A", - "scope": 598, + "scope": 1626, "stateVariable": false, "storageLocation": "default", "type": "struct Pairing.G1Point", @@ -23083,23 +23083,23 @@ "attributes": { "contractScope": null, "name": "Pairing.G1Point", - "referencedDeclaration": 6, + "referencedDeclaration": 1034, "type": "struct Pairing.G1Point" }, - "id": 592, + "id": 1620, "name": "UserDefinedTypeName", - "src": "7327:15:0" + "src": "7327:15:4" } ], - "id": 593, + "id": 1621, "name": "VariableDeclaration", - "src": "7327:17:0" + "src": "7327:17:4" }, { "attributes": { "constant": false, "name": "B", - "scope": 598, + "scope": 1626, "stateVariable": false, "storageLocation": "default", "type": "struct Pairing.G2Point", @@ -23111,23 +23111,23 @@ "attributes": { "contractScope": null, "name": "Pairing.G2Point", - "referencedDeclaration": 15, + "referencedDeclaration": 1043, "type": "struct Pairing.G2Point" }, - "id": 594, + "id": 1622, "name": "UserDefinedTypeName", - "src": "7354:15:0" + "src": "7354:15:4" } ], - "id": 595, + "id": 1623, "name": "VariableDeclaration", - "src": "7354:17:0" + "src": "7354:17:4" }, { "attributes": { "constant": false, "name": "C", - "scope": 598, + "scope": 1626, "stateVariable": false, "storageLocation": "default", "type": "struct Pairing.G1Point", @@ -23139,22 +23139,22 @@ "attributes": { "contractScope": null, "name": "Pairing.G1Point", - "referencedDeclaration": 6, + "referencedDeclaration": 1034, "type": "struct Pairing.G1Point" }, - "id": 596, + "id": 1624, "name": "UserDefinedTypeName", - "src": "7381:15:0" + "src": "7381:15:4" } ], - "id": 597, + "id": 1625, "name": "VariableDeclaration", - "src": "7381:17:0" + "src": "7381:17:4" } ], - "id": 598, + "id": 1626, "name": "StructDefinition", - "src": "7304:101:0" + "src": "7304:101:4" }, { "attributes": { @@ -23166,7 +23166,7 @@ null ], "name": "verifyingKey", - "scope": 1058, + "scope": 2086, "stateMutability": "pure", "superFunction": null, "visibility": "internal" @@ -23179,9 +23179,9 @@ ] }, "children": [], - "id": 599, + "id": 1627, "name": "ParameterList", - "src": "7431:2:0" + "src": "7431:2:4" }, { "children": [ @@ -23189,7 +23189,7 @@ "attributes": { "constant": false, "name": "vk", - "scope": 750, + "scope": 1778, "stateVariable": false, "storageLocation": "memory", "type": "struct Verifier.VerifyingKey", @@ -23201,22 +23201,22 @@ "attributes": { "contractScope": null, "name": "VerifyingKey", - "referencedDeclaration": 591, + "referencedDeclaration": 1619, "type": "struct Verifier.VerifyingKey" }, - "id": 600, + "id": 1628, "name": "UserDefinedTypeName", - "src": "7457:12:0" + "src": "7457:12:4" } ], - "id": 601, + "id": 1629, "name": "VariableDeclaration", - "src": "7457:22:0" + "src": "7457:22:4" } ], - "id": 602, + "id": 1630, "name": "ParameterList", - "src": "7456:24:0" + "src": "7456:24:4" }, { "children": [ @@ -23241,7 +23241,7 @@ "isPure": false, "lValueRequested": true, "member_name": "alfa1", - "referencedDeclaration": 581, + "referencedDeclaration": 1609, "type": "struct Pairing.G1Point memory" }, "children": [ @@ -23251,18 +23251,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 601, + "referencedDeclaration": 1629, "type": "struct Verifier.VerifyingKey memory", "value": "vk" }, - "id": 603, + "id": 1631, "name": "Identifier", - "src": "7491:2:0" + "src": "7491:2:4" } ], - "id": 605, + "id": 1633, "name": "MemberAccess", - "src": "7491:8:0" + "src": "7491:8:4" }, { "attributes": { @@ -23283,12 +23283,12 @@ "attributes": { "argumentTypes": [ { - "typeIdentifier": "t_rational_7151775474753074349603912814830808112682320561937812962620439914534956067331_by_1", - "typeString": "int_const 7151...(68 digits omitted)...7331" + "typeIdentifier": "t_rational_12460490708279467301202778391127510537683948258096796922127174268009168016746_by_1", + "typeString": "int_const 1246...(69 digits omitted)...6746" }, { - "typeIdentifier": "t_rational_682377702098595391270027270967757538763707619874081511951624062082325519674_by_1", - "typeString": "int_const 6823...(67 digits omitted)...9674" + "typeIdentifier": "t_rational_2044073673724661651577421329709273081857081212805872863635504960509226496242_by_1", + "typeString": "int_const 2044...(68 digits omitted)...6242" } ], "isConstant": false, @@ -23296,7 +23296,7 @@ "isPure": false, "lValueRequested": false, "member_name": "G1Point", - "referencedDeclaration": 6, + "referencedDeclaration": 1034, "type": "type(struct Pairing.G1Point storage pointer)" }, "children": [ @@ -23306,67 +23306,67 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 577, + "referencedDeclaration": 1605, "type": "type(library Pairing)", "value": "Pairing" }, - "id": 606, + "id": 1634, "name": "Identifier", - "src": "7502:7:0" + "src": "7502:7:4" } ], - "id": 607, + "id": 1635, "name": "MemberAccess", - "src": "7502:15:0" + "src": "7502:15:4" }, { "attributes": { "argumentTypes": null, - "hexvalue": "37313531373735343734373533303734333439363033393132383134383330383038313132363832333230353631393337383132393632363230343339393134353334393536303637333331", + "hexvalue": "3132343630343930373038323739343637333031323032373738333931313237353130353337363833393438323538303936373936393232313237313734323638303039313638303136373436", "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "subdenomination": null, "token": "number", - "type": "int_const 7151...(68 digits omitted)...7331", - "value": "7151775474753074349603912814830808112682320561937812962620439914534956067331" + "type": "int_const 1246...(69 digits omitted)...6746", + "value": "12460490708279467301202778391127510537683948258096796922127174268009168016746" }, - "id": 608, + "id": 1636, "name": "Literal", - "src": "7518:76:0" + "src": "7518:77:4" }, { "attributes": { "argumentTypes": null, - "hexvalue": "363832333737373032303938353935333931323730303237323730393637373537353338373633373037363139383734303831353131393531363234303632303832333235353139363734", + "hexvalue": "32303434303733363733373234363631363531353737343231333239373039323733303831383537303831323132383035383732383633363335353034393630353039323236343936323432", "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "subdenomination": null, "token": "number", - "type": "int_const 6823...(67 digits omitted)...9674", - "value": "682377702098595391270027270967757538763707619874081511951624062082325519674" + "type": "int_const 2044...(68 digits omitted)...6242", + "value": "2044073673724661651577421329709273081857081212805872863635504960509226496242" }, - "id": 609, + "id": 1637, "name": "Literal", - "src": "7595:75:0" + "src": "7596:76:4" } ], - "id": 610, + "id": 1638, "name": "FunctionCall", - "src": "7502:169:0" + "src": "7502:171:4" } ], - "id": 611, + "id": 1639, "name": "Assignment", - "src": "7491:180:0" + "src": "7491:182:4" } ], - "id": 612, + "id": 1640, "name": "ExpressionStatement", - "src": "7491:180:0" + "src": "7491:182:4" }, { "children": [ @@ -23389,7 +23389,7 @@ "isPure": false, "lValueRequested": true, "member_name": "beta2", - "referencedDeclaration": 583, + "referencedDeclaration": 1611, "type": "struct Pairing.G2Point memory" }, "children": [ @@ -23399,18 +23399,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 601, + "referencedDeclaration": 1629, "type": "struct Verifier.VerifyingKey memory", "value": "vk" }, - "id": 613, + "id": 1641, "name": "Identifier", - "src": "7681:2:0" + "src": "7683:2:4" } ], - "id": 615, + "id": 1643, "name": "MemberAccess", - "src": "7681:8:0" + "src": "7683:8:4" }, { "attributes": { @@ -23444,7 +23444,7 @@ "isPure": false, "lValueRequested": false, "member_name": "G2Point", - "referencedDeclaration": 15, + "referencedDeclaration": 1043, "type": "type(struct Pairing.G2Point storage pointer)" }, "children": [ @@ -23454,18 +23454,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 577, + "referencedDeclaration": 1605, "type": "type(library Pairing)", "value": "Pairing" }, - "id": 616, + "id": 1644, "name": "Identifier", - "src": "7692:7:0" + "src": "7694:7:4" } ], - "id": 617, + "id": 1645, "name": "MemberAccess", - "src": "7692:15:0" + "src": "7694:15:4" }, { "attributes": { @@ -23481,41 +23481,41 @@ { "attributes": { "argumentTypes": null, - "hexvalue": "3230343734323732343536313130313932343936343930383235373630343836353434313039333537313234373231353331343435383733393339313435333133343333373333383234323230", + "hexvalue": "3136303837343930313933383736313631363337343438303435373034383837393233333934303730373439333031373239343031303432353238323037373830333037333533313438373534", "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "subdenomination": null, "token": "number", - "type": "int_const 2047...(69 digits omitted)...4220", - "value": "20474272456110192496490825760486544109357124721531445873939145313433733824220" + "type": "int_const 1608...(69 digits omitted)...8754", + "value": "16087490193876161637448045704887923394070749301729401042528207780307353148754" }, - "id": 618, + "id": 1646, "name": "Literal", - "src": "7709:77:0" + "src": "7711:77:4" }, { "attributes": { "argumentTypes": null, - "hexvalue": "3133323532383838383936303835353632373734383637363735323239313134373837383931363331363433373730343234343030333234323436323437303736323239333836303439353031", + "hexvalue": "34303437333135353438323330373136363730373932373131333634313439343830363238303436353434363338373339343331393436313130383337343130343033393232393533333032", "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "subdenomination": null, "token": "number", - "type": "int_const 1325...(69 digits omitted)...9501", - "value": "13252888896085562774867675229114787891631643770424400324246247076229386049501" + "type": "int_const 4047...(68 digits omitted)...3302", + "value": "4047315548230716670792711364149480628046544638739431946110837410403922953302" }, - "id": 619, + "id": 1647, "name": "Literal", - "src": "7787:77:0" + "src": "7789:76:4" } ], - "id": 620, + "id": 1648, "name": "TupleExpression", - "src": "7708:157:0" + "src": "7710:156:4" }, { "attributes": { @@ -23531,56 +23531,56 @@ { "attributes": { "argumentTypes": null, - "hexvalue": "3134373834333739363130303334363334313837323034343233373138333536363933303930303731363839333736363838353834363234323830323931303137313634333739303036323333", + "hexvalue": "3134323633313537353839393235353033303235353238373932353232343434313030303538373731343134363933323733393435313439303332383839393230373735353938323431353138", "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "subdenomination": null, "token": "number", - "type": "int_const 1478...(69 digits omitted)...6233", - "value": "14784379610034634187204423718356693090071689376688584624280291017164379006233" + "type": "int_const 1426...(69 digits omitted)...1518", + "value": "14263157589925503025528792522444100058771414693273945149032889920775598241518" }, - "id": 621, + "id": 1649, "name": "Literal", - "src": "7868:77:0" + "src": "7869:77:4" }, { "attributes": { "argumentTypes": null, - "hexvalue": "3133303436353931323232343534333035383837313336373135313937323733373539333931353334323836303635383631343634343637393436303631393933363833383637323536343334", + "hexvalue": "32343033303839383232303531383538363434393835383038313639343634373537333735323530333032373535353932393934303039323934313130323337363136353532353935373538", "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "subdenomination": null, "token": "number", - "type": "int_const 1304...(69 digits omitted)...6434", - "value": "13046591222454305887136715197273759391534286065861464467946061993683867256434" + "type": "int_const 2403...(68 digits omitted)...5758", + "value": "2403089822051858644985808169464757375250302755592994009294110237616552595758" }, - "id": 622, + "id": 1650, "name": "Literal", - "src": "7946:77:0" + "src": "7947:76:4" } ], - "id": 623, + "id": 1651, "name": "TupleExpression", - "src": "7867:157:0" + "src": "7868:156:4" } ], - "id": 624, + "id": 1652, "name": "FunctionCall", - "src": "7692:333:0" + "src": "7694:331:4" } ], - "id": 625, + "id": 1653, "name": "Assignment", - "src": "7681:344:0" + "src": "7683:342:4" } ], - "id": 626, + "id": 1654, "name": "ExpressionStatement", - "src": "7681:344:0" + "src": "7683:342:4" }, { "children": [ @@ -23603,7 +23603,7 @@ "isPure": false, "lValueRequested": true, "member_name": "gamma2", - "referencedDeclaration": 585, + "referencedDeclaration": 1613, "type": "struct Pairing.G2Point memory" }, "children": [ @@ -23613,18 +23613,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 601, + "referencedDeclaration": 1629, "type": "struct Verifier.VerifyingKey memory", "value": "vk" }, - "id": 627, + "id": 1655, "name": "Identifier", - "src": "8035:2:0" + "src": "8035:2:4" } ], - "id": 629, + "id": 1657, "name": "MemberAccess", - "src": "8035:9:0" + "src": "8035:9:4" }, { "attributes": { @@ -23658,7 +23658,7 @@ "isPure": false, "lValueRequested": false, "member_name": "G2Point", - "referencedDeclaration": 15, + "referencedDeclaration": 1043, "type": "type(struct Pairing.G2Point storage pointer)" }, "children": [ @@ -23668,18 +23668,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 577, + "referencedDeclaration": 1605, "type": "type(library Pairing)", "value": "Pairing" }, - "id": 630, + "id": 1658, "name": "Identifier", - "src": "8047:7:0" + "src": "8047:7:4" } ], - "id": 631, + "id": 1659, "name": "MemberAccess", - "src": "8047:15:0" + "src": "8047:15:4" }, { "attributes": { @@ -23695,41 +23695,41 @@ { "attributes": { "argumentTypes": null, - "hexvalue": "3231303432373935333335333631343335393232333334393130393332363032363033323739323834303338353139383439333238383234313632313138373839343936323039323430363432", + "hexvalue": "3138313233323736333034313237313630343338333933383031303838373137333138373831313938313332393631333938373933373630383132373439323537313836303633303134333337", "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "subdenomination": null, "token": "number", - "type": "int_const 2104...(69 digits omitted)...0642", - "value": "21042795335361435922334910932602603279284038519849328824162118789496209240642" + "type": "int_const 1812...(69 digits omitted)...4337", + "value": "18123276304127160438393801088717318781198132961398793760812749257186063014337" }, - "id": 632, + "id": 1660, "name": "Literal", - "src": "8064:77:0" + "src": "8064:77:4" }, { "attributes": { "argumentTypes": null, - "hexvalue": "3139393038323532333531353437393538353637353439363939363230303230383531313638393636303738393831313230393232313030313838393031393335343238323334333335323434", + "hexvalue": "3137363037343233313035333133333335353235343332383639363637363739333532363234393234303636353935373537303332373137373832333939383232323537303230353033313337", "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "subdenomination": null, "token": "number", - "type": "int_const 1990...(69 digits omitted)...5244", - "value": "19908252351547958567549699620020851168966078981120922100188901935428234335244" + "type": "int_const 1760...(69 digits omitted)...3137", + "value": "17607423105313335525432869667679352624924066595757032717782399822257020503137" }, - "id": 633, + "id": 1661, "name": "Literal", - "src": "8142:77:0" + "src": "8142:77:4" } ], - "id": 634, + "id": 1662, "name": "TupleExpression", - "src": "8063:157:0" + "src": "8063:157:4" }, { "attributes": { @@ -23745,56 +23745,56 @@ { "attributes": { "argumentTypes": null, - "hexvalue": "3132333735333538323031393239363739393430303535303935313531343639383231383739393838303838393637383938343732353435343335323138363834323033343231333738353131", + "hexvalue": "3131303235353831333239363530303437363531363739373537303836333838373234313637343735323139343036393133313134323730343938343330383838343833353236303130363834", "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "subdenomination": null, "token": "number", - "type": "int_const 1237...(69 digits omitted)...8511", - "value": "12375358201929679940055095151469821879988088967898472545435218684203421378511" + "type": "int_const 1102...(69 digits omitted)...0684", + "value": "11025581329650047651679757086388724167475219406913114270498430888483526010684" }, - "id": 635, + "id": 1663, "name": "Literal", - "src": "8223:77:0" + "src": "8223:77:4" }, { "attributes": { "argumentTypes": null, - "hexvalue": "3132323233363934373138363731353631393038333035343236363234343435373435343937383930303935363433363839313630303330343731323338393636303533343639313430343735", + "hexvalue": "3137323233303432313133303632303330353536323738383136363934363631393730333331363937323334393232363936303132303133313737313934373233353439353238343734323031", "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "subdenomination": null, "token": "number", - "type": "int_const 1222...(69 digits omitted)...0475", - "value": "12223694718671561908305426624445745497890095643689160030471238966053469140475" + "type": "int_const 1722...(69 digits omitted)...4201", + "value": "17223042113062030556278816694661970331697234922696012013177194723549528474201" }, - "id": 636, + "id": 1664, "name": "Literal", - "src": "8301:77:0" + "src": "8301:77:4" } ], - "id": 637, + "id": 1665, "name": "TupleExpression", - "src": "8222:157:0" + "src": "8222:157:4" } ], - "id": 638, + "id": 1666, "name": "FunctionCall", - "src": "8047:333:0" + "src": "8047:333:4" } ], - "id": 639, + "id": 1667, "name": "Assignment", - "src": "8035:345:0" + "src": "8035:345:4" } ], - "id": 640, + "id": 1668, "name": "ExpressionStatement", - "src": "8035:345:0" + "src": "8035:345:4" }, { "children": [ @@ -23817,7 +23817,7 @@ "isPure": false, "lValueRequested": true, "member_name": "delta2", - "referencedDeclaration": 587, + "referencedDeclaration": 1615, "type": "struct Pairing.G2Point memory" }, "children": [ @@ -23827,18 +23827,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 601, + "referencedDeclaration": 1629, "type": "struct Verifier.VerifyingKey memory", "value": "vk" }, - "id": 641, + "id": 1669, "name": "Identifier", - "src": "8390:2:0" + "src": "8390:2:4" } ], - "id": 643, + "id": 1671, "name": "MemberAccess", - "src": "8390:9:0" + "src": "8390:9:4" }, { "attributes": { @@ -23872,7 +23872,7 @@ "isPure": false, "lValueRequested": false, "member_name": "G2Point", - "referencedDeclaration": 15, + "referencedDeclaration": 1043, "type": "type(struct Pairing.G2Point storage pointer)" }, "children": [ @@ -23882,18 +23882,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 577, + "referencedDeclaration": 1605, "type": "type(library Pairing)", "value": "Pairing" }, - "id": 644, + "id": 1672, "name": "Identifier", - "src": "8402:7:0" + "src": "8402:7:4" } ], - "id": 645, + "id": 1673, "name": "MemberAccess", - "src": "8402:15:0" + "src": "8402:15:4" }, { "attributes": { @@ -23909,41 +23909,41 @@ { "attributes": { "argumentTypes": null, - "hexvalue": "33383836343431383434333033353433373831313234373037313534383530353734303932363034303130353836333239363931363330373635353637313033373639343132353137393331", + "hexvalue": "36303337363233343438353132313638393837323630353636323031363838313232323435373931333731353235303238303938353035393532323539313634343331383437373735343931", "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "subdenomination": null, "token": "number", - "type": "int_const 3886...(68 digits omitted)...7931", - "value": "3886441844303543781124707154850574092604010586329691630765567103769412517931" + "type": "int_const 6037...(68 digits omitted)...5491", + "value": "6037623448512168987260566201688122245791371525028098505952259164431847775491" }, - "id": 646, + "id": 1674, "name": "Literal", - "src": "8419:76:0" + "src": "8419:76:4" }, { "attributes": { "argumentTypes": null, - "hexvalue": "32363332373534363539393334353537373535353531393539383234363534353430323539393435363633363432363339333632333039373337383233323838333739303737383034333332", + "hexvalue": "343538333336353735343333393938353036303136343538303137323138313131383632383739313836313339333034363534363036333831333732353833393134343436393539363137", "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "subdenomination": null, "token": "number", - "type": "int_const 2632...(68 digits omitted)...4332", - "value": "2632754659934557755551959824654540259945663642639362309737823288379077804332" + "type": "int_const 4583...(67 digits omitted)...9617", + "value": "458336575433998506016458017218111862879186139304654606381372583914446959617" }, - "id": 647, + "id": 1675, "name": "Literal", - "src": "8496:76:0" + "src": "8496:75:4" } ], - "id": 648, + "id": 1676, "name": "TupleExpression", - "src": "8418:155:0" + "src": "8418:154:4" }, { "attributes": { @@ -23959,56 +23959,56 @@ { "attributes": { "argumentTypes": null, - "hexvalue": "38393931353039363335383036303539323231393035303038373737353937373934333339373930363730303630313733323538303839343433393039323738393832333936343930353737", + "hexvalue": "3135303734373437333331343536383439313231303431343737393938303638373935333431333536353034313634353534333632393232383835383632323839303237393430393030343830", "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "subdenomination": null, "token": "number", - "type": "int_const 8991...(68 digits omitted)...0577", - "value": "8991509635806059221905008777597794339790670060173258089443909278982396490577" + "type": "int_const 1507...(69 digits omitted)...0480", + "value": "15074747331456849121041477998068795341356504164554362922885862289027940900480" }, - "id": 649, + "id": 1677, "name": "Literal", - "src": "8576:76:0" + "src": "8575:77:4" }, { "attributes": { "argumentTypes": null, - "hexvalue": "34363931313731303731393937393139373937313332303237323031383333303733303638353134393134353032333335363439393937353131383330363133393239313236363630313238", + "hexvalue": "34353531373137333338363135373631373236383834353535373239383135373337323430393437323334323632303338363737393835393536383434313839323430393038363935363536", "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "subdenomination": null, "token": "number", - "type": "int_const 4691...(68 digits omitted)...0128", - "value": "4691171071997919797132027201833073068514914502335649997511830613929126660128" + "type": "int_const 4551...(68 digits omitted)...5656", + "value": "4551717338615761726884555729815737240947234262038677985956844189240908695656" }, - "id": 650, + "id": 1678, "name": "Literal", - "src": "8653:76:0" + "src": "8653:76:4" } ], - "id": 651, + "id": 1679, "name": "TupleExpression", - "src": "8575:155:0" + "src": "8574:156:4" } ], - "id": 652, + "id": 1680, "name": "FunctionCall", - "src": "8402:329:0" + "src": "8402:329:4" } ], - "id": 653, + "id": 1681, "name": "Assignment", - "src": "8390:341:0" + "src": "8390:341:4" } ], - "id": 654, + "id": 1682, "name": "ExpressionStatement", - "src": "8390:341:0" + "src": "8390:341:4" }, { "children": [ @@ -24031,7 +24031,7 @@ "isPure": false, "lValueRequested": true, "member_name": "IC", - "referencedDeclaration": 590, + "referencedDeclaration": 1618, "type": "struct Pairing.G1Point memory[] memory" }, "children": [ @@ -24041,18 +24041,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 601, + "referencedDeclaration": 1629, "type": "struct Verifier.VerifyingKey memory", "value": "vk" }, - "id": 655, + "id": 1683, "name": "Identifier", - "src": "8741:2:0" + "src": "8741:2:4" } ], - "id": 657, + "id": 1685, "name": "MemberAccess", - "src": "8741:5:0" + "src": "8741:5:4" }, { "attributes": { @@ -24094,22 +24094,22 @@ "attributes": { "contractScope": null, "name": "Pairing.G1Point", - "referencedDeclaration": 6, + "referencedDeclaration": 1034, "type": "struct Pairing.G1Point" }, - "id": 658, + "id": 1686, "name": "UserDefinedTypeName", - "src": "8753:15:0" + "src": "8753:15:4" } ], - "id": 659, + "id": 1687, "name": "ArrayTypeName", - "src": "8753:17:0" + "src": "8753:17:4" } ], - "id": 660, + "id": 1688, "name": "NewExpression", - "src": "8749:21:0" + "src": "8749:21:4" }, { "attributes": { @@ -24124,24 +24124,24 @@ "type": "int_const 7", "value": "7" }, - "id": 661, + "id": 1689, "name": "Literal", - "src": "8771:1:0" + "src": "8771:1:4" } ], - "id": 662, + "id": 1690, "name": "FunctionCall", - "src": "8749:24:0" + "src": "8749:24:4" } ], - "id": 663, + "id": 1691, "name": "Assignment", - "src": "8741:32:0" + "src": "8741:32:4" } ], - "id": 664, + "id": 1692, "name": "ExpressionStatement", - "src": "8741:32:0" + "src": "8741:32:4" }, { "children": [ @@ -24174,7 +24174,7 @@ "isPure": false, "lValueRequested": false, "member_name": "IC", - "referencedDeclaration": 590, + "referencedDeclaration": 1618, "type": "struct Pairing.G1Point memory[] memory" }, "children": [ @@ -24184,18 +24184,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 601, + "referencedDeclaration": 1629, "type": "struct Verifier.VerifyingKey memory", "value": "vk" }, - "id": 665, + "id": 1693, "name": "Identifier", - "src": "8783:2:0" + "src": "8783:2:4" } ], - "id": 668, + "id": 1696, "name": "MemberAccess", - "src": "8783:5:0" + "src": "8783:5:4" }, { "attributes": { @@ -24210,14 +24210,14 @@ "type": "int_const 0", "value": "0" }, - "id": 667, + "id": 1695, "name": "Literal", - "src": "8789:1:0" + "src": "8789:1:4" } ], - "id": 669, + "id": 1697, "name": "IndexAccess", - "src": "8783:8:0" + "src": "8783:8:4" }, { "attributes": { @@ -24238,12 +24238,12 @@ "attributes": { "argumentTypes": [ { - "typeIdentifier": "t_rational_15493342410434936755631579473464409083923770306563815758480953489390186887772_by_1", - "typeString": "int_const 1549...(69 digits omitted)...7772" + "typeIdentifier": "t_rational_3280151354857701104805815107342927006881561188181486049350149056802788902277_by_1", + "typeString": "int_const 3280...(68 digits omitted)...2277" }, { - "typeIdentifier": "t_rational_7753995649714900666208266146509870606782015660111458217253018284907299910898_by_1", - "typeString": "int_const 7753...(68 digits omitted)...0898" + "typeIdentifier": "t_rational_4096205864284246892786942491620896521544938058951378408773174891322097316913_by_1", + "typeString": "int_const 4096...(68 digits omitted)...6913" } ], "isConstant": false, @@ -24251,7 +24251,7 @@ "isPure": false, "lValueRequested": false, "member_name": "G1Point", - "referencedDeclaration": 6, + "referencedDeclaration": 1034, "type": "type(struct Pairing.G1Point storage pointer)" }, "children": [ @@ -24261,67 +24261,67 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 577, + "referencedDeclaration": 1605, "type": "type(library Pairing)", "value": "Pairing" }, - "id": 670, + "id": 1698, "name": "Identifier", - "src": "8794:7:0" + "src": "8794:7:4" } ], - "id": 671, + "id": 1699, "name": "MemberAccess", - "src": "8794:15:0" + "src": "8794:15:4" }, { "attributes": { "argumentTypes": null, - "hexvalue": "3135343933333432343130343334393336373535363331353739343733343634343039303833393233373730333036353633383135373538343830393533343839333930313836383837373732", + "hexvalue": "33323830313531333534383537373031313034383035383135313037333432393237303036383831353631313838313831343836303439333530313439303536383032373838393032323737", "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "subdenomination": null, "token": "number", - "type": "int_const 1549...(69 digits omitted)...7772", - "value": "15493342410434936755631579473464409083923770306563815758480953489390186887772" + "type": "int_const 3280...(68 digits omitted)...2277", + "value": "3280151354857701104805815107342927006881561188181486049350149056802788902277" }, - "id": 672, + "id": 1700, "name": "Literal", - "src": "8810:77:0" + "src": "8810:76:4" }, { "attributes": { "argumentTypes": null, - "hexvalue": "37373533393935363439373134393030363636323038323636313436353039383730363036373832303135363630313131343538323137323533303138323834393037323939393130383938", + "hexvalue": "34303936323035383634323834323436383932373836393432343931363230383936353231353434393338303538393531333738343038373733313734383931333232303937333136393133", "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "subdenomination": null, "token": "number", - "type": "int_const 7753...(68 digits omitted)...0898", - "value": "7753995649714900666208266146509870606782015660111458217253018284907299910898" + "type": "int_const 4096...(68 digits omitted)...6913", + "value": "4096205864284246892786942491620896521544938058951378408773174891322097316913" }, - "id": 673, + "id": 1701, "name": "Literal", - "src": "8888:76:0" + "src": "8887:76:4" } ], - "id": 674, + "id": 1702, "name": "FunctionCall", - "src": "8794:171:0" + "src": "8794:170:4" } ], - "id": 675, + "id": 1703, "name": "Assignment", - "src": "8783:182:0" + "src": "8783:181:4" } ], - "id": 676, + "id": 1704, "name": "ExpressionStatement", - "src": "8783:182:0" + "src": "8783:181:4" }, { "children": [ @@ -24354,7 +24354,7 @@ "isPure": false, "lValueRequested": false, "member_name": "IC", - "referencedDeclaration": 590, + "referencedDeclaration": 1618, "type": "struct Pairing.G1Point memory[] memory" }, "children": [ @@ -24364,18 +24364,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 601, + "referencedDeclaration": 1629, "type": "struct Verifier.VerifyingKey memory", "value": "vk" }, - "id": 677, + "id": 1705, "name": "Identifier", - "src": "8975:2:0" + "src": "8974:2:4" } ], - "id": 680, + "id": 1708, "name": "MemberAccess", - "src": "8975:5:0" + "src": "8974:5:4" }, { "attributes": { @@ -24390,14 +24390,14 @@ "type": "int_const 1", "value": "1" }, - "id": 679, + "id": 1707, "name": "Literal", - "src": "8981:1:0" + "src": "8980:1:4" } ], - "id": 681, + "id": 1709, "name": "IndexAccess", - "src": "8975:8:0" + "src": "8974:8:4" }, { "attributes": { @@ -24418,12 +24418,12 @@ "attributes": { "argumentTypes": [ { - "typeIdentifier": "t_rational_19296011005264714033718351493537172463570687861720373272007918735071429075746_by_1", - "typeString": "int_const 1929...(69 digits omitted)...5746" + "typeIdentifier": "t_rational_886075252733300330869950498066252804027245332188737089899561929180698930798_by_1", + "typeString": "int_const 8860...(67 digits omitted)...0798" }, { - "typeIdentifier": "t_rational_16204599863540013761774674626905638065591212224511845646247942294147714652783_by_1", - "typeString": "int_const 1620...(69 digits omitted)...2783" + "typeIdentifier": "t_rational_15570234229151758134113005312914035073446975470656183090215346868677091213005_by_1", + "typeString": "int_const 1557...(69 digits omitted)...3005" } ], "isConstant": false, @@ -24431,7 +24431,7 @@ "isPure": false, "lValueRequested": false, "member_name": "G1Point", - "referencedDeclaration": 6, + "referencedDeclaration": 1034, "type": "type(struct Pairing.G1Point storage pointer)" }, "children": [ @@ -24441,67 +24441,67 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 577, + "referencedDeclaration": 1605, "type": "type(library Pairing)", "value": "Pairing" }, - "id": 682, + "id": 1710, "name": "Identifier", - "src": "8986:7:0" + "src": "8985:7:4" } ], - "id": 683, + "id": 1711, "name": "MemberAccess", - "src": "8986:15:0" + "src": "8985:15:4" }, { "attributes": { "argumentTypes": null, - "hexvalue": "3139323936303131303035323634373134303333373138333531343933353337313732343633353730363837383631373230333733323732303037393138373335303731343239303735373436", + "hexvalue": "383836303735323532373333333030333330383639393530343938303636323532383034303237323435333332313838373337303839383939353631393239313830363938393330373938", "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "subdenomination": null, "token": "number", - "type": "int_const 1929...(69 digits omitted)...5746", - "value": "19296011005264714033718351493537172463570687861720373272007918735071429075746" + "type": "int_const 8860...(67 digits omitted)...0798", + "value": "886075252733300330869950498066252804027245332188737089899561929180698930798" }, - "id": 684, + "id": 1712, "name": "Literal", - "src": "9002:77:0" + "src": "9001:75:4" }, { "attributes": { "argumentTypes": null, - "hexvalue": "3136323034353939383633353430303133373631373734363734363236393035363338303635353931323132323234353131383435363436323437393432323934313437373134363532373833", + "hexvalue": "3135353730323334323239313531373538313334313133303035333132393134303335303733343436393735343730363536313833303930323135333436383638363737303931323133303035", "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "subdenomination": null, "token": "number", - "type": "int_const 1620...(69 digits omitted)...2783", - "value": "16204599863540013761774674626905638065591212224511845646247942294147714652783" + "type": "int_const 1557...(69 digits omitted)...3005", + "value": "15570234229151758134113005312914035073446975470656183090215346868677091213005" }, - "id": 685, + "id": 1713, "name": "Literal", - "src": "9080:77:0" + "src": "9077:77:4" } ], - "id": 686, + "id": 1714, "name": "FunctionCall", - "src": "8986:172:0" + "src": "8985:170:4" } ], - "id": 687, + "id": 1715, "name": "Assignment", - "src": "8975:183:0" + "src": "8974:181:4" } ], - "id": 688, + "id": 1716, "name": "ExpressionStatement", - "src": "8975:183:0" + "src": "8974:181:4" }, { "children": [ @@ -24534,7 +24534,7 @@ "isPure": false, "lValueRequested": false, "member_name": "IC", - "referencedDeclaration": 590, + "referencedDeclaration": 1618, "type": "struct Pairing.G1Point memory[] memory" }, "children": [ @@ -24544,18 +24544,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 601, + "referencedDeclaration": 1629, "type": "struct Verifier.VerifyingKey memory", "value": "vk" }, - "id": 689, + "id": 1717, "name": "Identifier", - "src": "9168:2:0" + "src": "9165:2:4" } ], - "id": 692, + "id": 1720, "name": "MemberAccess", - "src": "9168:5:0" + "src": "9165:5:4" }, { "attributes": { @@ -24570,14 +24570,14 @@ "type": "int_const 2", "value": "2" }, - "id": 691, + "id": 1719, "name": "Literal", - "src": "9174:1:0" + "src": "9171:1:4" } ], - "id": 693, + "id": 1721, "name": "IndexAccess", - "src": "9168:8:0" + "src": "9165:8:4" }, { "attributes": { @@ -24598,12 +24598,12 @@ "attributes": { "argumentTypes": [ { - "typeIdentifier": "t_rational_6800131163095851761624472656381537016631915980579513643476302966123639982936_by_1", - "typeString": "int_const 6800...(68 digits omitted)...2936" + "typeIdentifier": "t_rational_4803911529229921243819115938814624698011704327571816657368259655263810910424_by_1", + "typeString": "int_const 4803...(68 digits omitted)...0424" }, { - "typeIdentifier": "t_rational_6187553643615591777064477778372210442801186703705175334343813412283817723258_by_1", - "typeString": "int_const 6187...(68 digits omitted)...3258" + "typeIdentifier": "t_rational_9421521138574274245916449596797669329387046444348355383899676800456202039055_by_1", + "typeString": "int_const 9421...(68 digits omitted)...9055" } ], "isConstant": false, @@ -24611,7 +24611,7 @@ "isPure": false, "lValueRequested": false, "member_name": "G1Point", - "referencedDeclaration": 6, + "referencedDeclaration": 1034, "type": "type(struct Pairing.G1Point storage pointer)" }, "children": [ @@ -24621,67 +24621,67 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 577, + "referencedDeclaration": 1605, "type": "type(library Pairing)", "value": "Pairing" }, - "id": 694, + "id": 1722, "name": "Identifier", - "src": "9179:7:0" + "src": "9176:7:4" } ], - "id": 695, + "id": 1723, "name": "MemberAccess", - "src": "9179:15:0" + "src": "9176:15:4" }, { "attributes": { "argumentTypes": null, - "hexvalue": "36383030313331313633303935383531373631363234343732363536333831353337303136363331393135393830353739353133363433343736333032393636313233363339393832393336", + "hexvalue": "34383033393131353239323239393231323433383139313135393338383134363234363938303131373034333237353731383136363537333638323539363535323633383130393130343234", "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "subdenomination": null, "token": "number", - "type": "int_const 6800...(68 digits omitted)...2936", - "value": "6800131163095851761624472656381537016631915980579513643476302966123639982936" + "type": "int_const 4803...(68 digits omitted)...0424", + "value": "4803911529229921243819115938814624698011704327571816657368259655263810910424" }, - "id": 696, + "id": 1724, "name": "Literal", - "src": "9195:76:0" + "src": "9192:76:4" }, { "attributes": { "argumentTypes": null, - "hexvalue": "36313837353533363433363135353931373737303634343737373738333732323130343432383031313836373033373035313735333334333433383133343132323833383137373233323538", + "hexvalue": "39343231353231313338353734323734323435393136343439353936373937363639333239333837303436343434333438333535333833383939363736383030343536323032303339303535", "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "subdenomination": null, "token": "number", - "type": "int_const 6187...(68 digits omitted)...3258", - "value": "6187553643615591777064477778372210442801186703705175334343813412283817723258" + "type": "int_const 9421...(68 digits omitted)...9055", + "value": "9421521138574274245916449596797669329387046444348355383899676800456202039055" }, - "id": 697, + "id": 1725, "name": "Literal", - "src": "9272:76:0" + "src": "9269:76:4" } ], - "id": 698, + "id": 1726, "name": "FunctionCall", - "src": "9179:170:0" + "src": "9176:170:4" } ], - "id": 699, + "id": 1727, "name": "Assignment", - "src": "9168:181:0" + "src": "9165:181:4" } ], - "id": 700, + "id": 1728, "name": "ExpressionStatement", - "src": "9168:181:0" + "src": "9165:181:4" }, { "children": [ @@ -24714,7 +24714,7 @@ "isPure": false, "lValueRequested": false, "member_name": "IC", - "referencedDeclaration": 590, + "referencedDeclaration": 1618, "type": "struct Pairing.G1Point memory[] memory" }, "children": [ @@ -24724,18 +24724,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 601, + "referencedDeclaration": 1629, "type": "struct Verifier.VerifyingKey memory", "value": "vk" }, - "id": 701, + "id": 1729, "name": "Identifier", - "src": "9359:2:0" + "src": "9356:2:4" } ], - "id": 704, + "id": 1732, "name": "MemberAccess", - "src": "9359:5:0" + "src": "9356:5:4" }, { "attributes": { @@ -24750,14 +24750,14 @@ "type": "int_const 3", "value": "3" }, - "id": 703, + "id": 1731, "name": "Literal", - "src": "9365:1:0" + "src": "9362:1:4" } ], - "id": 705, + "id": 1733, "name": "IndexAccess", - "src": "9359:8:0" + "src": "9356:8:4" }, { "attributes": { @@ -24778,12 +24778,12 @@ "attributes": { "argumentTypes": [ { - "typeIdentifier": "t_rational_4587236276877759665317431125194154795602571890982244289024831299326384396122_by_1", - "typeString": "int_const 4587...(68 digits omitted)...6122" + "typeIdentifier": "t_rational_8556536154095961870679484985871880561903552891231663801453118433906208208634_by_1", + "typeString": "int_const 8556...(68 digits omitted)...8634" }, { - "typeIdentifier": "t_rational_11965403480957802226918942425420027101347015982012757991262803217462830457988_by_1", - "typeString": "int_const 1196...(69 digits omitted)...7988" + "typeIdentifier": "t_rational_3050601476829943501968050336923012297384352890508269063303888737139486918441_by_1", + "typeString": "int_const 3050...(68 digits omitted)...8441" } ], "isConstant": false, @@ -24791,7 +24791,7 @@ "isPure": false, "lValueRequested": false, "member_name": "G1Point", - "referencedDeclaration": 6, + "referencedDeclaration": 1034, "type": "type(struct Pairing.G1Point storage pointer)" }, "children": [ @@ -24801,67 +24801,67 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 577, + "referencedDeclaration": 1605, "type": "type(library Pairing)", "value": "Pairing" }, - "id": 706, + "id": 1734, "name": "Identifier", - "src": "9370:7:0" + "src": "9367:7:4" } ], - "id": 707, + "id": 1735, "name": "MemberAccess", - "src": "9370:15:0" + "src": "9367:15:4" }, { "attributes": { "argumentTypes": null, - "hexvalue": "34353837323336323736383737373539363635333137343331313235313934313534373935363032353731383930393832323434323839303234383331323939333236333834333936313232", + "hexvalue": "38353536353336313534303935393631383730363739343834393835383731383830353631393033353532383931323331363633383031343533313138343333393036323038323038363334", "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "subdenomination": null, "token": "number", - "type": "int_const 4587...(68 digits omitted)...6122", - "value": "4587236276877759665317431125194154795602571890982244289024831299326384396122" + "type": "int_const 8556...(68 digits omitted)...8634", + "value": "8556536154095961870679484985871880561903552891231663801453118433906208208634" }, - "id": 708, + "id": 1736, "name": "Literal", - "src": "9386:76:0" + "src": "9383:76:4" }, { "attributes": { "argumentTypes": null, - "hexvalue": "3131393635343033343830393537383032323236393138393432343235343230303237313031333437303135393832303132373537393931323632383033323137343632383330343537393838", + "hexvalue": "33303530363031343736383239393433353031393638303530333336393233303132323937333834333532383930353038323639303633333033383838373337313339343836393138343431", "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "subdenomination": null, "token": "number", - "type": "int_const 1196...(69 digits omitted)...7988", - "value": "11965403480957802226918942425420027101347015982012757991262803217462830457988" + "type": "int_const 3050...(68 digits omitted)...8441", + "value": "3050601476829943501968050336923012297384352890508269063303888737139486918441" }, - "id": 709, + "id": 1737, "name": "Literal", - "src": "9463:77:0" + "src": "9460:76:4" } ], - "id": 710, + "id": 1738, "name": "FunctionCall", - "src": "9370:171:0" + "src": "9367:170:4" } ], - "id": 711, + "id": 1739, "name": "Assignment", - "src": "9359:182:0" + "src": "9356:181:4" } ], - "id": 712, + "id": 1740, "name": "ExpressionStatement", - "src": "9359:182:0" + "src": "9356:181:4" }, { "children": [ @@ -24894,7 +24894,7 @@ "isPure": false, "lValueRequested": false, "member_name": "IC", - "referencedDeclaration": 590, + "referencedDeclaration": 1618, "type": "struct Pairing.G1Point memory[] memory" }, "children": [ @@ -24904,18 +24904,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 601, + "referencedDeclaration": 1629, "type": "struct Verifier.VerifyingKey memory", "value": "vk" }, - "id": 713, + "id": 1741, "name": "Identifier", - "src": "9551:2:0" + "src": "9547:2:4" } ], - "id": 716, + "id": 1744, "name": "MemberAccess", - "src": "9551:5:0" + "src": "9547:5:4" }, { "attributes": { @@ -24930,14 +24930,14 @@ "type": "int_const 4", "value": "4" }, - "id": 715, + "id": 1743, "name": "Literal", - "src": "9557:1:0" + "src": "9553:1:4" } ], - "id": 717, + "id": 1745, "name": "IndexAccess", - "src": "9551:8:0" + "src": "9547:8:4" }, { "attributes": { @@ -24958,12 +24958,12 @@ "attributes": { "argumentTypes": [ { - "typeIdentifier": "t_rational_6424577348595355116274404126261845824928373631359383206779835056684747287432_by_1", - "typeString": "int_const 6424...(68 digits omitted)...7432" + "typeIdentifier": "t_rational_300970557484518070492531175714788912131243344262805477266806064126958929035_by_1", + "typeString": "int_const 3009...(67 digits omitted)...9035" }, { - "typeIdentifier": "t_rational_5068925343739685487841387431671860275036721147250958866048951387840854681489_by_1", - "typeString": "int_const 5068...(68 digits omitted)...1489" + "typeIdentifier": "t_rational_7398530781379870905922247634738956356372326243016843550426084862881205863447_by_1", + "typeString": "int_const 7398...(68 digits omitted)...3447" } ], "isConstant": false, @@ -24971,7 +24971,7 @@ "isPure": false, "lValueRequested": false, "member_name": "G1Point", - "referencedDeclaration": 6, + "referencedDeclaration": 1034, "type": "type(struct Pairing.G1Point storage pointer)" }, "children": [ @@ -24981,67 +24981,67 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 577, + "referencedDeclaration": 1605, "type": "type(library Pairing)", "value": "Pairing" }, - "id": 718, + "id": 1746, "name": "Identifier", - "src": "9562:7:0" + "src": "9558:7:4" } ], - "id": 719, + "id": 1747, "name": "MemberAccess", - "src": "9562:15:0" + "src": "9558:15:4" }, { "attributes": { "argumentTypes": null, - "hexvalue": "36343234353737333438353935333535313136323734343034313236323631383435383234393238333733363331333539333833323036373739383335303536363834373437323837343332", + "hexvalue": "333030393730353537343834353138303730343932353331313735373134373838393132313331323433333434323632383035343737323636383036303634313236393538393239303335", "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "subdenomination": null, "token": "number", - "type": "int_const 6424...(68 digits omitted)...7432", - "value": "6424577348595355116274404126261845824928373631359383206779835056684747287432" + "type": "int_const 3009...(67 digits omitted)...9035", + "value": "300970557484518070492531175714788912131243344262805477266806064126958929035" }, - "id": 720, + "id": 1748, "name": "Literal", - "src": "9578:76:0" + "src": "9574:75:4" }, { "attributes": { "argumentTypes": null, - "hexvalue": "35303638393235333433373339363835343837383431333837343331363731383630323735303336373231313437323530393538383636303438393531333837383430383534363831343839", + "hexvalue": "37333938353330373831333739383730393035393232323437363334373338393536333536333732333236323433303136383433353530343236303834383632383831323035383633343437", "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "subdenomination": null, "token": "number", - "type": "int_const 5068...(68 digits omitted)...1489", - "value": "5068925343739685487841387431671860275036721147250958866048951387840854681489" + "type": "int_const 7398...(68 digits omitted)...3447", + "value": "7398530781379870905922247634738956356372326243016843550426084862881205863447" }, - "id": 721, + "id": 1749, "name": "Literal", - "src": "9655:76:0" + "src": "9650:76:4" } ], - "id": 722, + "id": 1750, "name": "FunctionCall", - "src": "9562:170:0" + "src": "9558:169:4" } ], - "id": 723, + "id": 1751, "name": "Assignment", - "src": "9551:181:0" + "src": "9547:180:4" } ], - "id": 724, + "id": 1752, "name": "ExpressionStatement", - "src": "9551:181:0" + "src": "9547:180:4" }, { "children": [ @@ -25074,7 +25074,7 @@ "isPure": false, "lValueRequested": false, "member_name": "IC", - "referencedDeclaration": 590, + "referencedDeclaration": 1618, "type": "struct Pairing.G1Point memory[] memory" }, "children": [ @@ -25084,18 +25084,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 601, + "referencedDeclaration": 1629, "type": "struct Verifier.VerifyingKey memory", "value": "vk" }, - "id": 725, + "id": 1753, "name": "Identifier", - "src": "9742:2:0" + "src": "9737:2:4" } ], - "id": 728, + "id": 1756, "name": "MemberAccess", - "src": "9742:5:0" + "src": "9737:5:4" }, { "attributes": { @@ -25110,14 +25110,14 @@ "type": "int_const 5", "value": "5" }, - "id": 727, + "id": 1755, "name": "Literal", - "src": "9748:1:0" + "src": "9743:1:4" } ], - "id": 729, + "id": 1757, "name": "IndexAccess", - "src": "9742:8:0" + "src": "9737:8:4" }, { "attributes": { @@ -25138,12 +25138,12 @@ "attributes": { "argumentTypes": [ { - "typeIdentifier": "t_rational_3415843548574565829319442408676813522319941059565646881086034695645515873064_by_1", - "typeString": "int_const 3415...(68 digits omitted)...3064" + "typeIdentifier": "t_rational_19920099237792867409693124415022100529487012962841642820676567509262507193107_by_1", + "typeString": "int_const 1992...(69 digits omitted)...3107" }, { - "typeIdentifier": "t_rational_5883489158379442339980761211460192605180893997876253461080527033851992047395_by_1", - "typeString": "int_const 5883...(68 digits omitted)...7395" + "typeIdentifier": "t_rational_20219544009593389298713776672148908906084007300789292168389787721741450912038_by_1", + "typeString": "int_const 2021...(69 digits omitted)...2038" } ], "isConstant": false, @@ -25151,7 +25151,7 @@ "isPure": false, "lValueRequested": false, "member_name": "G1Point", - "referencedDeclaration": 6, + "referencedDeclaration": 1034, "type": "type(struct Pairing.G1Point storage pointer)" }, "children": [ @@ -25161,67 +25161,67 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 577, + "referencedDeclaration": 1605, "type": "type(library Pairing)", "value": "Pairing" }, - "id": 730, + "id": 1758, "name": "Identifier", - "src": "9753:7:0" + "src": "9748:7:4" } ], - "id": 731, + "id": 1759, "name": "MemberAccess", - "src": "9753:15:0" + "src": "9748:15:4" }, { "attributes": { "argumentTypes": null, - "hexvalue": "33343135383433353438353734353635383239333139343432343038363736383133353232333139393431303539353635363436383831303836303334363935363435353135383733303634", + "hexvalue": "3139393230303939323337373932383637343039363933313234343135303232313030353239343837303132393632383431363432383230363736353637353039323632353037313933313037", "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "subdenomination": null, "token": "number", - "type": "int_const 3415...(68 digits omitted)...3064", - "value": "3415843548574565829319442408676813522319941059565646881086034695645515873064" + "type": "int_const 1992...(69 digits omitted)...3107", + "value": "19920099237792867409693124415022100529487012962841642820676567509262507193107" }, - "id": 732, + "id": 1760, "name": "Literal", - "src": "9769:76:0" + "src": "9764:77:4" }, { "attributes": { "argumentTypes": null, - "hexvalue": "35383833343839313538333739343432333339393830373631323131343630313932363035313830383933393937383736323533343631303830353237303333383531393932303437333935", + "hexvalue": "3230323139353434303039353933333839323938373133373736363732313438393038393036303834303037333030373839323932313638333839373837373231373431343530393132303338", "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "subdenomination": null, "token": "number", - "type": "int_const 5883...(68 digits omitted)...7395", - "value": "5883489158379442339980761211460192605180893997876253461080527033851992047395" + "type": "int_const 2021...(69 digits omitted)...2038", + "value": "20219544009593389298713776672148908906084007300789292168389787721741450912038" }, - "id": 733, + "id": 1761, "name": "Literal", - "src": "9846:76:0" + "src": "9842:77:4" } ], - "id": 734, + "id": 1762, "name": "FunctionCall", - "src": "9753:170:0" + "src": "9748:172:4" } ], - "id": 735, + "id": 1763, "name": "Assignment", - "src": "9742:181:0" + "src": "9737:183:4" } ], - "id": 736, + "id": 1764, "name": "ExpressionStatement", - "src": "9742:181:0" + "src": "9737:183:4" }, { "children": [ @@ -25254,7 +25254,7 @@ "isPure": false, "lValueRequested": false, "member_name": "IC", - "referencedDeclaration": 590, + "referencedDeclaration": 1618, "type": "struct Pairing.G1Point memory[] memory" }, "children": [ @@ -25264,18 +25264,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 601, + "referencedDeclaration": 1629, "type": "struct Verifier.VerifyingKey memory", "value": "vk" }, - "id": 737, + "id": 1765, "name": "Identifier", - "src": "9933:2:0" + "src": "9930:2:4" } ], - "id": 740, + "id": 1768, "name": "MemberAccess", - "src": "9933:5:0" + "src": "9930:5:4" }, { "attributes": { @@ -25290,14 +25290,14 @@ "type": "int_const 6", "value": "6" }, - "id": 739, + "id": 1767, "name": "Literal", - "src": "9939:1:0" + "src": "9936:1:4" } ], - "id": 741, + "id": 1769, "name": "IndexAccess", - "src": "9933:8:0" + "src": "9930:8:4" }, { "attributes": { @@ -25318,12 +25318,12 @@ "attributes": { "argumentTypes": [ { - "typeIdentifier": "t_rational_20644165802587991582826647132535920964743533681089204673978388434999038955024_by_1", - "typeString": "int_const 2064...(69 digits omitted)...5024" + "typeIdentifier": "t_rational_19738468465658587453371819831578835676337686216736310076443477948701915541203_by_1", + "typeString": "int_const 1973...(69 digits omitted)...1203" }, { - "typeIdentifier": "t_rational_8998916039073087523772804621208137737037769156523190942078025903730975741357_by_1", - "typeString": "int_const 8998...(68 digits omitted)...1357" + "typeIdentifier": "t_rational_17051611336678940832594719954268295083764993921610290255520015002513439413943_by_1", + "typeString": "int_const 1705...(69 digits omitted)...3943" } ], "isConstant": false, @@ -25331,7 +25331,7 @@ "isPure": false, "lValueRequested": false, "member_name": "G1Point", - "referencedDeclaration": 6, + "referencedDeclaration": 1034, "type": "type(struct Pairing.G1Point storage pointer)" }, "children": [ @@ -25341,77 +25341,77 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 577, + "referencedDeclaration": 1605, "type": "type(library Pairing)", "value": "Pairing" }, - "id": 742, + "id": 1770, "name": "Identifier", - "src": "9944:7:0" + "src": "9941:7:4" } ], - "id": 743, + "id": 1771, "name": "MemberAccess", - "src": "9944:15:0" + "src": "9941:15:4" }, { "attributes": { "argumentTypes": null, - "hexvalue": "3230363434313635383032353837393931353832383236363437313332353335393230393634373433353333363831303839323034363733393738333838343334393939303338393535303234", + "hexvalue": "3139373338343638343635363538353837343533333731383139383331353738383335363736333337363836323136373336333130303736343433343737393438373031393135353431323033", "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "subdenomination": null, "token": "number", - "type": "int_const 2064...(69 digits omitted)...5024", - "value": "20644165802587991582826647132535920964743533681089204673978388434999038955024" + "type": "int_const 1973...(69 digits omitted)...1203", + "value": "19738468465658587453371819831578835676337686216736310076443477948701915541203" }, - "id": 744, + "id": 1772, "name": "Literal", - "src": "9960:77:0" + "src": "9957:77:4" }, { "attributes": { "argumentTypes": null, - "hexvalue": "38393938393136303339303733303837353233373732383034363231323038313337373337303337373639313536353233313930393432303738303235393033373330393735373431333537", + "hexvalue": "3137303531363131333336363738393430383332353934373139393534323638323935303833373634393933393231363130323930323535353230303135303032353133343339343133393433", "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "subdenomination": null, "token": "number", - "type": "int_const 8998...(68 digits omitted)...1357", - "value": "8998916039073087523772804621208137737037769156523190942078025903730975741357" + "type": "int_const 1705...(69 digits omitted)...3943", + "value": "17051611336678940832594719954268295083764993921610290255520015002513439413943" }, - "id": 745, + "id": 1773, "name": "Literal", - "src": "10038:76:0" + "src": "10035:77:4" } ], - "id": 746, + "id": 1774, "name": "FunctionCall", - "src": "9944:171:0" + "src": "9941:172:4" } ], - "id": 747, + "id": 1775, "name": "Assignment", - "src": "9933:182:0" + "src": "9930:183:4" } ], - "id": 748, + "id": 1776, "name": "ExpressionStatement", - "src": "9933:182:0" + "src": "9930:183:4" } ], - "id": 749, + "id": 1777, "name": "Block", - "src": "7481:2642:0" + "src": "7481:2640:4" } ], - "id": 750, + "id": 1778, "name": "FunctionDefinition", - "src": "7410:2713:0" + "src": "7410:2711:4" }, { "attributes": { @@ -25423,7 +25423,7 @@ null ], "name": "verify", - "scope": 1058, + "scope": 2086, "stateMutability": "view", "superFunction": null, "visibility": "internal" @@ -25435,7 +25435,7 @@ "attributes": { "constant": false, "name": "input", - "scope": 871, + "scope": 1899, "stateVariable": false, "storageLocation": "memory", "type": "uint256[]", @@ -25454,25 +25454,25 @@ "name": "uint", "type": "uint256" }, - "id": 751, + "id": 1779, "name": "ElementaryTypeName", - "src": "10144:4:0" + "src": "10142:4:4" } ], - "id": 752, + "id": 1780, "name": "ArrayTypeName", - "src": "10144:6:0" + "src": "10142:6:4" } ], - "id": 753, + "id": 1781, "name": "VariableDeclaration", - "src": "10144:19:0" + "src": "10142:19:4" }, { "attributes": { "constant": false, "name": "proof", - "scope": 871, + "scope": 1899, "stateVariable": false, "storageLocation": "memory", "type": "struct Verifier.Proof", @@ -25484,22 +25484,22 @@ "attributes": { "contractScope": null, "name": "Proof", - "referencedDeclaration": 598, + "referencedDeclaration": 1626, "type": "struct Verifier.Proof" }, - "id": 754, + "id": 1782, "name": "UserDefinedTypeName", - "src": "10165:5:0" + "src": "10163:5:4" } ], - "id": 755, + "id": 1783, "name": "VariableDeclaration", - "src": "10165:18:0" + "src": "10163:18:4" } ], - "id": 756, + "id": 1784, "name": "ParameterList", - "src": "10143:41:0" + "src": "10141:41:4" }, { "children": [ @@ -25507,7 +25507,7 @@ "attributes": { "constant": false, "name": "", - "scope": 871, + "scope": 1899, "stateVariable": false, "storageLocation": "default", "type": "uint256", @@ -25520,26 +25520,26 @@ "name": "uint", "type": "uint256" }, - "id": 757, + "id": 1785, "name": "ElementaryTypeName", - "src": "10208:4:0" + "src": "10206:4:4" } ], - "id": 758, + "id": 1786, "name": "VariableDeclaration", - "src": "10208:4:0" + "src": "10206:4:4" } ], - "id": 759, + "id": 1787, "name": "ParameterList", - "src": "10207:6:0" + "src": "10205:6:4" }, { "children": [ { "attributes": { "assignments": [ - 761 + 1789 ] }, "children": [ @@ -25547,7 +25547,7 @@ "attributes": { "constant": false, "name": "snark_scalar_field", - "scope": 870, + "scope": 1898, "stateVariable": false, "storageLocation": "default", "type": "uint256", @@ -25560,14 +25560,14 @@ "name": "uint256", "type": "uint256" }, - "id": 760, + "id": 1788, "name": "ElementaryTypeName", - "src": "10224:7:0" + "src": "10222:7:4" } ], - "id": 761, + "id": 1789, "name": "VariableDeclaration", - "src": "10224:26:0" + "src": "10222:26:4" }, { "attributes": { @@ -25582,19 +25582,19 @@ "type": "int_const 2188...(69 digits omitted)...5617", "value": "21888242871839275222246405745257275088548364400416034343698204186575808495617" }, - "id": 762, + "id": 1790, "name": "Literal", - "src": "10253:77:0" + "src": "10251:77:4" } ], - "id": 763, + "id": 1791, "name": "VariableDeclarationStatement", - "src": "10224:106:0" + "src": "10222:106:4" }, { "attributes": { "assignments": [ - 765 + 1793 ] }, "children": [ @@ -25602,7 +25602,7 @@ "attributes": { "constant": false, "name": "vk", - "scope": 870, + "scope": 1898, "stateVariable": false, "storageLocation": "memory", "type": "struct Verifier.VerifyingKey", @@ -25614,17 +25614,17 @@ "attributes": { "contractScope": null, "name": "VerifyingKey", - "referencedDeclaration": 591, + "referencedDeclaration": 1619, "type": "struct Verifier.VerifyingKey" }, - "id": 764, + "id": 1792, "name": "UserDefinedTypeName", - "src": "10340:12:0" + "src": "10338:12:4" } ], - "id": 765, + "id": 1793, "name": "VariableDeclaration", - "src": "10340:22:0" + "src": "10338:22:4" }, { "attributes": { @@ -25652,23 +25652,23 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 750, + "referencedDeclaration": 1778, "type": "function () pure returns (struct Verifier.VerifyingKey memory)", "value": "verifyingKey" }, - "id": 766, + "id": 1794, "name": "Identifier", - "src": "10365:12:0" + "src": "10363:12:4" } ], - "id": 767, + "id": 1795, "name": "FunctionCall", - "src": "10365:14:0" + "src": "10363:14:4" } ], - "id": 768, + "id": 1796, "name": "VariableDeclarationStatement", - "src": "10340:39:0" + "src": "10338:39:4" }, { "children": [ @@ -25700,16 +25700,16 @@ } ], "overloadedDeclarations": [ - 1076, - 1077 + 2134, + 2135 ], - "referencedDeclaration": 1077, + "referencedDeclaration": 2135, "type": "function (bool,string memory) pure", "value": "require" }, - "id": 769, + "id": 1797, "name": "Identifier", - "src": "10389:7:0" + "src": "10387:7:4" }, { "attributes": { @@ -25759,18 +25759,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 753, + "referencedDeclaration": 1781, "type": "uint256[] memory", "value": "input" }, - "id": 770, + "id": 1798, "name": "Identifier", - "src": "10397:5:0" + "src": "10395:5:4" } ], - "id": 771, + "id": 1799, "name": "MemberAccess", - "src": "10397:12:0" + "src": "10395:12:4" }, { "attributes": { @@ -25785,14 +25785,14 @@ "type": "int_const 1", "value": "1" }, - "id": 772, + "id": 1800, "name": "Literal", - "src": "10412:1:0" + "src": "10410:1:4" } ], - "id": 773, + "id": 1801, "name": "BinaryOperation", - "src": "10397:16:0" + "src": "10395:16:4" }, { "attributes": { @@ -25814,7 +25814,7 @@ "isPure": false, "lValueRequested": false, "member_name": "IC", - "referencedDeclaration": 590, + "referencedDeclaration": 1618, "type": "struct Pairing.G1Point memory[] memory" }, "children": [ @@ -25824,28 +25824,28 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 765, + "referencedDeclaration": 1793, "type": "struct Verifier.VerifyingKey memory", "value": "vk" }, - "id": 774, + "id": 1802, "name": "Identifier", - "src": "10417:2:0" + "src": "10415:2:4" } ], - "id": 775, + "id": 1803, "name": "MemberAccess", - "src": "10417:5:0" + "src": "10415:5:4" } ], - "id": 776, + "id": 1804, "name": "MemberAccess", - "src": "10417:12:0" + "src": "10415:12:4" } ], - "id": 777, + "id": 1805, "name": "BinaryOperation", - "src": "10397:32:0" + "src": "10395:32:4" }, { "attributes": { @@ -25860,24 +25860,24 @@ "type": "literal_string \"verifier-bad-input\"", "value": "verifier-bad-input" }, - "id": 778, + "id": 1806, "name": "Literal", - "src": "10430:20:0" + "src": "10428:20:4" } ], - "id": 779, + "id": 1807, "name": "FunctionCall", - "src": "10389:62:0" + "src": "10387:62:4" } ], - "id": 780, + "id": 1808, "name": "ExpressionStatement", - "src": "10389:62:0" + "src": "10387:62:4" }, { "attributes": { "assignments": [ - 784 + 1812 ] }, "children": [ @@ -25885,7 +25885,7 @@ "attributes": { "constant": false, "name": "vk_x", - "scope": 870, + "scope": 1898, "stateVariable": false, "storageLocation": "memory", "type": "struct Pairing.G1Point", @@ -25897,17 +25897,17 @@ "attributes": { "contractScope": null, "name": "Pairing.G1Point", - "referencedDeclaration": 6, + "referencedDeclaration": 1034, "type": "struct Pairing.G1Point" }, - "id": 783, + "id": 1811, "name": "UserDefinedTypeName", - "src": "10508:15:0" + "src": "10506:15:4" } ], - "id": 784, + "id": 1812, "name": "VariableDeclaration", - "src": "10508:27:0" + "src": "10506:27:4" }, { "attributes": { @@ -25941,7 +25941,7 @@ "isPure": false, "lValueRequested": false, "member_name": "G1Point", - "referencedDeclaration": 6, + "referencedDeclaration": 1034, "type": "type(struct Pairing.G1Point storage pointer)" }, "children": [ @@ -25951,18 +25951,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 577, + "referencedDeclaration": 1605, "type": "type(library Pairing)", "value": "Pairing" }, - "id": 785, + "id": 1813, "name": "Identifier", - "src": "10538:7:0" + "src": "10536:7:4" } ], - "id": 786, + "id": 1814, "name": "MemberAccess", - "src": "10538:15:0" + "src": "10536:15:4" }, { "attributes": { @@ -25977,9 +25977,9 @@ "type": "int_const 0", "value": "0" }, - "id": 787, + "id": 1815, "name": "Literal", - "src": "10554:1:0" + "src": "10552:1:4" }, { "attributes": { @@ -25994,26 +25994,26 @@ "type": "int_const 0", "value": "0" }, - "id": 788, + "id": 1816, "name": "Literal", - "src": "10557:1:0" + "src": "10555:1:4" } ], - "id": 789, + "id": 1817, "name": "FunctionCall", - "src": "10538:21:0" + "src": "10536:21:4" } ], - "id": 790, + "id": 1818, "name": "VariableDeclarationStatement", - "src": "10508:51:0" + "src": "10506:51:4" }, { "children": [ { "attributes": { "assignments": [ - 792 + 1820 ] }, "children": [ @@ -26021,7 +26021,7 @@ "attributes": { "constant": false, "name": "i", - "scope": 831, + "scope": 1859, "stateVariable": false, "storageLocation": "default", "type": "uint256", @@ -26034,14 +26034,14 @@ "name": "uint", "type": "uint256" }, - "id": 791, + "id": 1819, "name": "ElementaryTypeName", - "src": "10574:4:0" + "src": "10572:4:4" } ], - "id": 792, + "id": 1820, "name": "VariableDeclaration", - "src": "10574:6:0" + "src": "10572:6:4" }, { "attributes": { @@ -26056,14 +26056,14 @@ "type": "int_const 0", "value": "0" }, - "id": 793, + "id": 1821, "name": "Literal", - "src": "10583:1:0" + "src": "10581:1:4" } ], - "id": 794, + "id": 1822, "name": "VariableDeclarationStatement", - "src": "10574:10:0" + "src": "10572:10:4" }, { "attributes": { @@ -26086,13 +26086,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 792, + "referencedDeclaration": 1820, "type": "uint256", "value": "i" }, - "id": 795, + "id": 1823, "name": "Identifier", - "src": "10586:1:0" + "src": "10584:1:4" }, { "attributes": { @@ -26112,23 +26112,23 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 753, + "referencedDeclaration": 1781, "type": "uint256[] memory", "value": "input" }, - "id": 796, + "id": 1824, "name": "Identifier", - "src": "10590:5:0" + "src": "10588:5:4" } ], - "id": 797, + "id": 1825, "name": "MemberAccess", - "src": "10590:12:0" + "src": "10588:12:4" } ], - "id": 798, + "id": 1826, "name": "BinaryOperation", - "src": "10586:16:0" + "src": "10584:16:4" }, { "children": [ @@ -26150,23 +26150,23 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 792, + "referencedDeclaration": 1820, "type": "uint256", "value": "i" }, - "id": 799, + "id": 1827, "name": "Identifier", - "src": "10604:1:0" + "src": "10602:1:4" } ], - "id": 800, + "id": 1828, "name": "UnaryOperation", - "src": "10604:3:0" + "src": "10602:3:4" } ], - "id": 801, + "id": 1829, "name": "ExpressionStatement", - "src": "10604:3:0" + "src": "10602:3:4" }, { "children": [ @@ -26200,16 +26200,16 @@ } ], "overloadedDeclarations": [ - 1076, - 1077 + 2134, + 2135 ], - "referencedDeclaration": 1077, + "referencedDeclaration": 2135, "type": "function (bool,string memory) pure", "value": "require" }, - "id": 802, + "id": 1830, "name": "Identifier", - "src": "10623:7:0" + "src": "10621:7:4" }, { "attributes": { @@ -26242,13 +26242,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 753, + "referencedDeclaration": 1781, "type": "uint256[] memory", "value": "input" }, - "id": 803, + "id": 1831, "name": "Identifier", - "src": "10631:5:0" + "src": "10629:5:4" }, { "attributes": { @@ -26256,18 +26256,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 792, + "referencedDeclaration": 1820, "type": "uint256", "value": "i" }, - "id": 804, + "id": 1832, "name": "Identifier", - "src": "10637:1:0" + "src": "10635:1:4" } ], - "id": 805, + "id": 1833, "name": "IndexAccess", - "src": "10631:8:0" + "src": "10629:8:4" }, { "attributes": { @@ -26275,18 +26275,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 761, + "referencedDeclaration": 1789, "type": "uint256", "value": "snark_scalar_field" }, - "id": 806, + "id": 1834, "name": "Identifier", - "src": "10642:18:0" + "src": "10640:18:4" } ], - "id": 807, + "id": 1835, "name": "BinaryOperation", - "src": "10631:29:0" + "src": "10629:29:4" }, { "attributes": { @@ -26301,19 +26301,19 @@ "type": "literal_string \"verifier-gte-snark-scalar-field\"", "value": "verifier-gte-snark-scalar-field" }, - "id": 808, + "id": 1836, "name": "Literal", - "src": "10661:33:0" + "src": "10659:33:4" } ], - "id": 809, + "id": 1837, "name": "FunctionCall", - "src": "10623:72:0" + "src": "10621:72:4" } ], - "id": 810, + "id": 1838, "name": "ExpressionStatement", - "src": "10623:72:0" + "src": "10621:72:4" }, { "children": [ @@ -26334,13 +26334,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 784, + "referencedDeclaration": 1812, "type": "struct Pairing.G1Point memory", "value": "vk_x" }, - "id": 811, + "id": 1839, "name": "Identifier", - "src": "10709:4:0" + "src": "10707:4:4" }, { "attributes": { @@ -26361,11 +26361,11 @@ "attributes": { "argumentTypes": [ { - "typeIdentifier": "t_struct$_G1Point_$6_memory_ptr", + "typeIdentifier": "t_struct$_G1Point_$1034_memory_ptr", "typeString": "struct Pairing.G1Point memory" }, { - "typeIdentifier": "t_struct$_G1Point_$6_memory_ptr", + "typeIdentifier": "t_struct$_G1Point_$1034_memory_ptr", "typeString": "struct Pairing.G1Point memory" } ], @@ -26374,7 +26374,7 @@ "isPure": false, "lValueRequested": false, "member_name": "addition", - "referencedDeclaration": 133, + "referencedDeclaration": 1161, "type": "function (struct Pairing.G1Point memory,struct Pairing.G1Point memory) view returns (struct Pairing.G1Point memory)" }, "children": [ @@ -26384,18 +26384,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 577, + "referencedDeclaration": 1605, "type": "type(library Pairing)", "value": "Pairing" }, - "id": 812, + "id": 1840, "name": "Identifier", - "src": "10716:7:0" + "src": "10714:7:4" } ], - "id": 813, + "id": 1841, "name": "MemberAccess", - "src": "10716:16:0" + "src": "10714:16:4" }, { "attributes": { @@ -26403,13 +26403,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 784, + "referencedDeclaration": 1812, "type": "struct Pairing.G1Point memory", "value": "vk_x" }, - "id": 814, + "id": 1842, "name": "Identifier", - "src": "10733:4:0" + "src": "10731:4:4" }, { "attributes": { @@ -26430,7 +26430,7 @@ "attributes": { "argumentTypes": [ { - "typeIdentifier": "t_struct$_G1Point_$6_memory", + "typeIdentifier": "t_struct$_G1Point_$1034_memory", "typeString": "struct Pairing.G1Point memory" }, { @@ -26443,7 +26443,7 @@ "isPure": false, "lValueRequested": false, "member_name": "scalar_mul", - "referencedDeclaration": 178, + "referencedDeclaration": 1206, "type": "function (struct Pairing.G1Point memory,uint256) view returns (struct Pairing.G1Point memory)" }, "children": [ @@ -26453,18 +26453,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 577, + "referencedDeclaration": 1605, "type": "type(library Pairing)", "value": "Pairing" }, - "id": 815, + "id": 1843, "name": "Identifier", - "src": "10739:7:0" + "src": "10737:7:4" } ], - "id": 816, + "id": 1844, "name": "MemberAccess", - "src": "10739:18:0" + "src": "10737:18:4" }, { "attributes": { @@ -26484,7 +26484,7 @@ "isPure": false, "lValueRequested": false, "member_name": "IC", - "referencedDeclaration": 590, + "referencedDeclaration": 1618, "type": "struct Pairing.G1Point memory[] memory" }, "children": [ @@ -26494,18 +26494,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 765, + "referencedDeclaration": 1793, "type": "struct Verifier.VerifyingKey memory", "value": "vk" }, - "id": 817, + "id": 1845, "name": "Identifier", - "src": "10758:2:0" + "src": "10756:2:4" } ], - "id": 818, + "id": 1846, "name": "MemberAccess", - "src": "10758:5:0" + "src": "10756:5:4" }, { "attributes": { @@ -26528,13 +26528,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 792, + "referencedDeclaration": 1820, "type": "uint256", "value": "i" }, - "id": 819, + "id": 1847, "name": "Identifier", - "src": "10764:1:0" + "src": "10762:1:4" }, { "attributes": { @@ -26549,19 +26549,19 @@ "type": "int_const 1", "value": "1" }, - "id": 820, + "id": 1848, "name": "Literal", - "src": "10768:1:0" + "src": "10766:1:4" } ], - "id": 821, + "id": 1849, "name": "BinaryOperation", - "src": "10764:5:0" + "src": "10762:5:4" } ], - "id": 822, + "id": 1850, "name": "IndexAccess", - "src": "10758:12:0" + "src": "10756:12:4" }, { "attributes": { @@ -26579,13 +26579,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 753, + "referencedDeclaration": 1781, "type": "uint256[] memory", "value": "input" }, - "id": 823, + "id": 1851, "name": "Identifier", - "src": "10772:5:0" + "src": "10770:5:4" }, { "attributes": { @@ -26593,48 +26593,48 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 792, + "referencedDeclaration": 1820, "type": "uint256", "value": "i" }, - "id": 824, + "id": 1852, "name": "Identifier", - "src": "10778:1:0" + "src": "10776:1:4" } ], - "id": 825, + "id": 1853, "name": "IndexAccess", - "src": "10772:8:0" + "src": "10770:8:4" } ], - "id": 826, + "id": 1854, "name": "FunctionCall", - "src": "10739:42:0" + "src": "10737:42:4" } ], - "id": 827, + "id": 1855, "name": "FunctionCall", - "src": "10716:66:0" + "src": "10714:66:4" } ], - "id": 828, + "id": 1856, "name": "Assignment", - "src": "10709:73:0" + "src": "10707:73:4" } ], - "id": 829, + "id": 1857, "name": "ExpressionStatement", - "src": "10709:73:0" + "src": "10707:73:4" } ], - "id": 830, + "id": 1858, "name": "Block", - "src": "10609:184:0" + "src": "10607:184:4" } ], - "id": 831, + "id": 1859, "name": "ForStatement", - "src": "10569:224:0" + "src": "10567:224:4" }, { "children": [ @@ -26655,13 +26655,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 784, + "referencedDeclaration": 1812, "type": "struct Pairing.G1Point memory", "value": "vk_x" }, - "id": 832, + "id": 1860, "name": "Identifier", - "src": "10802:4:0" + "src": "10800:4:4" }, { "attributes": { @@ -26682,11 +26682,11 @@ "attributes": { "argumentTypes": [ { - "typeIdentifier": "t_struct$_G1Point_$6_memory_ptr", + "typeIdentifier": "t_struct$_G1Point_$1034_memory_ptr", "typeString": "struct Pairing.G1Point memory" }, { - "typeIdentifier": "t_struct$_G1Point_$6_memory", + "typeIdentifier": "t_struct$_G1Point_$1034_memory", "typeString": "struct Pairing.G1Point memory" } ], @@ -26695,7 +26695,7 @@ "isPure": false, "lValueRequested": false, "member_name": "addition", - "referencedDeclaration": 133, + "referencedDeclaration": 1161, "type": "function (struct Pairing.G1Point memory,struct Pairing.G1Point memory) view returns (struct Pairing.G1Point memory)" }, "children": [ @@ -26705,18 +26705,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 577, + "referencedDeclaration": 1605, "type": "type(library Pairing)", "value": "Pairing" }, - "id": 833, + "id": 1861, "name": "Identifier", - "src": "10809:7:0" + "src": "10807:7:4" } ], - "id": 834, + "id": 1862, "name": "MemberAccess", - "src": "10809:16:0" + "src": "10807:16:4" }, { "attributes": { @@ -26724,13 +26724,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 784, + "referencedDeclaration": 1812, "type": "struct Pairing.G1Point memory", "value": "vk_x" }, - "id": 835, + "id": 1863, "name": "Identifier", - "src": "10826:4:0" + "src": "10824:4:4" }, { "attributes": { @@ -26750,7 +26750,7 @@ "isPure": false, "lValueRequested": false, "member_name": "IC", - "referencedDeclaration": 590, + "referencedDeclaration": 1618, "type": "struct Pairing.G1Point memory[] memory" }, "children": [ @@ -26760,18 +26760,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 765, + "referencedDeclaration": 1793, "type": "struct Verifier.VerifyingKey memory", "value": "vk" }, - "id": 836, + "id": 1864, "name": "Identifier", - "src": "10832:2:0" + "src": "10830:2:4" } ], - "id": 837, + "id": 1865, "name": "MemberAccess", - "src": "10832:5:0" + "src": "10830:5:4" }, { "attributes": { @@ -26786,29 +26786,29 @@ "type": "int_const 0", "value": "0" }, - "id": 838, + "id": 1866, "name": "Literal", - "src": "10838:1:0" + "src": "10836:1:4" } ], - "id": 839, + "id": 1867, "name": "IndexAccess", - "src": "10832:8:0" + "src": "10830:8:4" } ], - "id": 840, + "id": 1868, "name": "FunctionCall", - "src": "10809:32:0" + "src": "10807:32:4" } ], - "id": 841, + "id": 1869, "name": "Assignment", - "src": "10802:39:0" + "src": "10800:39:4" } ], - "id": 842, + "id": 1870, "name": "ExpressionStatement", - "src": "10802:39:0" + "src": "10800:39:4" }, { "attributes": { @@ -26846,35 +26846,35 @@ "attributes": { "argumentTypes": [ { - "typeIdentifier": "t_struct$_G1Point_$6_memory_ptr", + "typeIdentifier": "t_struct$_G1Point_$1034_memory_ptr", "typeString": "struct Pairing.G1Point memory" }, { - "typeIdentifier": "t_struct$_G2Point_$15_memory", + "typeIdentifier": "t_struct$_G2Point_$1043_memory", "typeString": "struct Pairing.G2Point memory" }, { - "typeIdentifier": "t_struct$_G1Point_$6_memory", + "typeIdentifier": "t_struct$_G1Point_$1034_memory", "typeString": "struct Pairing.G1Point memory" }, { - "typeIdentifier": "t_struct$_G2Point_$15_memory", + "typeIdentifier": "t_struct$_G2Point_$1043_memory", "typeString": "struct Pairing.G2Point memory" }, { - "typeIdentifier": "t_struct$_G1Point_$6_memory_ptr", + "typeIdentifier": "t_struct$_G1Point_$1034_memory_ptr", "typeString": "struct Pairing.G1Point memory" }, { - "typeIdentifier": "t_struct$_G2Point_$15_memory", + "typeIdentifier": "t_struct$_G2Point_$1043_memory", "typeString": "struct Pairing.G2Point memory" }, { - "typeIdentifier": "t_struct$_G1Point_$6_memory", + "typeIdentifier": "t_struct$_G1Point_$1034_memory", "typeString": "struct Pairing.G1Point memory" }, { - "typeIdentifier": "t_struct$_G2Point_$15_memory", + "typeIdentifier": "t_struct$_G2Point_$1043_memory", "typeString": "struct Pairing.G2Point memory" } ], @@ -26883,7 +26883,7 @@ "isPure": false, "lValueRequested": false, "member_name": "pairingProd4", - "referencedDeclaration": 576, + "referencedDeclaration": 1604, "type": "function (struct Pairing.G1Point memory,struct Pairing.G2Point memory,struct Pairing.G1Point memory,struct Pairing.G2Point memory,struct Pairing.G1Point memory,struct Pairing.G2Point memory,struct Pairing.G1Point memory,struct Pairing.G2Point memory) view returns (bool)" }, "children": [ @@ -26893,18 +26893,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 577, + "referencedDeclaration": 1605, "type": "type(library Pairing)", "value": "Pairing" }, - "id": 843, + "id": 1871, "name": "Identifier", - "src": "10856:7:0" + "src": "10854:7:4" } ], - "id": 844, + "id": 1872, "name": "MemberAccess", - "src": "10856:20:0" + "src": "10854:20:4" }, { "attributes": { @@ -26925,7 +26925,7 @@ "attributes": { "argumentTypes": [ { - "typeIdentifier": "t_struct$_G1Point_$6_memory", + "typeIdentifier": "t_struct$_G1Point_$1034_memory", "typeString": "struct Pairing.G1Point memory" } ], @@ -26934,7 +26934,7 @@ "isPure": false, "lValueRequested": false, "member_name": "negate", - "referencedDeclaration": 80, + "referencedDeclaration": 1108, "type": "function (struct Pairing.G1Point memory) pure returns (struct Pairing.G1Point memory)" }, "children": [ @@ -26944,18 +26944,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 577, + "referencedDeclaration": 1605, "type": "type(library Pairing)", "value": "Pairing" }, - "id": 845, + "id": 1873, "name": "Identifier", - "src": "10890:7:0" + "src": "10888:7:4" } ], - "id": 846, + "id": 1874, "name": "MemberAccess", - "src": "10890:14:0" + "src": "10888:14:4" }, { "attributes": { @@ -26965,7 +26965,7 @@ "isPure": false, "lValueRequested": false, "member_name": "A", - "referencedDeclaration": 593, + "referencedDeclaration": 1621, "type": "struct Pairing.G1Point memory" }, "children": [ @@ -26975,23 +26975,23 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 755, + "referencedDeclaration": 1783, "type": "struct Verifier.Proof memory", "value": "proof" }, - "id": 847, + "id": 1875, "name": "Identifier", - "src": "10905:5:0" + "src": "10903:5:4" } ], - "id": 848, + "id": 1876, "name": "MemberAccess", - "src": "10905:7:0" + "src": "10903:7:4" } ], - "id": 849, + "id": 1877, "name": "FunctionCall", - "src": "10890:23:0" + "src": "10888:23:4" }, { "attributes": { @@ -27001,7 +27001,7 @@ "isPure": false, "lValueRequested": false, "member_name": "B", - "referencedDeclaration": 595, + "referencedDeclaration": 1623, "type": "struct Pairing.G2Point memory" }, "children": [ @@ -27011,18 +27011,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 755, + "referencedDeclaration": 1783, "type": "struct Verifier.Proof memory", "value": "proof" }, - "id": 850, + "id": 1878, "name": "Identifier", - "src": "10915:5:0" + "src": "10913:5:4" } ], - "id": 851, + "id": 1879, "name": "MemberAccess", - "src": "10915:7:0" + "src": "10913:7:4" }, { "attributes": { @@ -27032,7 +27032,7 @@ "isPure": false, "lValueRequested": false, "member_name": "alfa1", - "referencedDeclaration": 581, + "referencedDeclaration": 1609, "type": "struct Pairing.G1Point memory" }, "children": [ @@ -27042,18 +27042,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 765, + "referencedDeclaration": 1793, "type": "struct Verifier.VerifyingKey memory", "value": "vk" }, - "id": 852, + "id": 1880, "name": "Identifier", - "src": "10936:2:0" + "src": "10934:2:4" } ], - "id": 853, + "id": 1881, "name": "MemberAccess", - "src": "10936:8:0" + "src": "10934:8:4" }, { "attributes": { @@ -27063,7 +27063,7 @@ "isPure": false, "lValueRequested": false, "member_name": "beta2", - "referencedDeclaration": 583, + "referencedDeclaration": 1611, "type": "struct Pairing.G2Point memory" }, "children": [ @@ -27073,18 +27073,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 765, + "referencedDeclaration": 1793, "type": "struct Verifier.VerifyingKey memory", "value": "vk" }, - "id": 854, + "id": 1882, "name": "Identifier", - "src": "10946:2:0" + "src": "10944:2:4" } ], - "id": 855, + "id": 1883, "name": "MemberAccess", - "src": "10946:8:0" + "src": "10944:8:4" }, { "attributes": { @@ -27092,13 +27092,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 784, + "referencedDeclaration": 1812, "type": "struct Pairing.G1Point memory", "value": "vk_x" }, - "id": 856, + "id": 1884, "name": "Identifier", - "src": "10968:4:0" + "src": "10966:4:4" }, { "attributes": { @@ -27108,7 +27108,7 @@ "isPure": false, "lValueRequested": false, "member_name": "gamma2", - "referencedDeclaration": 585, + "referencedDeclaration": 1613, "type": "struct Pairing.G2Point memory" }, "children": [ @@ -27118,18 +27118,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 765, + "referencedDeclaration": 1793, "type": "struct Verifier.VerifyingKey memory", "value": "vk" }, - "id": 857, + "id": 1885, "name": "Identifier", - "src": "10974:2:0" + "src": "10972:2:4" } ], - "id": 858, + "id": 1886, "name": "MemberAccess", - "src": "10974:9:0" + "src": "10972:9:4" }, { "attributes": { @@ -27139,7 +27139,7 @@ "isPure": false, "lValueRequested": false, "member_name": "C", - "referencedDeclaration": 597, + "referencedDeclaration": 1625, "type": "struct Pairing.G1Point memory" }, "children": [ @@ -27149,18 +27149,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 755, + "referencedDeclaration": 1783, "type": "struct Verifier.Proof memory", "value": "proof" }, - "id": 859, + "id": 1887, "name": "Identifier", - "src": "10997:5:0" + "src": "10995:5:4" } ], - "id": 860, + "id": 1888, "name": "MemberAccess", - "src": "10997:7:0" + "src": "10995:7:4" }, { "attributes": { @@ -27170,7 +27170,7 @@ "isPure": false, "lValueRequested": false, "member_name": "delta2", - "referencedDeclaration": 587, + "referencedDeclaration": 1615, "type": "struct Pairing.G2Point memory" }, "children": [ @@ -27180,32 +27180,32 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 765, + "referencedDeclaration": 1793, "type": "struct Verifier.VerifyingKey memory", "value": "vk" }, - "id": 861, + "id": 1889, "name": "Identifier", - "src": "11006:2:0" + "src": "11004:2:4" } ], - "id": 862, + "id": 1890, "name": "MemberAccess", - "src": "11006:9:0" + "src": "11004:9:4" } ], - "id": 863, + "id": 1891, "name": "FunctionCall", - "src": "10856:169:0" + "src": "10854:169:4" } ], - "id": 864, + "id": 1892, "name": "UnaryOperation", - "src": "10855:170:0" + "src": "10853:170:4" }, { "attributes": { - "functionReturnParameters": 759 + "functionReturnParameters": 1787 }, "children": [ { @@ -27221,23 +27221,23 @@ "type": "int_const 1", "value": "1" }, - "id": 865, + "id": 1893, "name": "Literal", - "src": "11034:1:0" + "src": "11032:1:4" } ], - "id": 866, + "id": 1894, "name": "Return", - "src": "11027:8:0" + "src": "11025:8:4" } ], - "id": 867, + "id": 1895, "name": "IfStatement", - "src": "10851:184:0" + "src": "10849:184:4" }, { "attributes": { - "functionReturnParameters": 759 + "functionReturnParameters": 1787 }, "children": [ { @@ -27253,24 +27253,24 @@ "type": "int_const 0", "value": "0" }, - "id": 868, + "id": 1896, "name": "Literal", - "src": "11052:1:0" + "src": "11050:1:4" } ], - "id": 869, + "id": 1897, "name": "Return", - "src": "11045:8:0" + "src": "11043:8:4" } ], - "id": 870, + "id": 1898, "name": "Block", - "src": "10214:846:0" + "src": "10212:846:4" } ], - "id": 871, + "id": 1899, "name": "FunctionDefinition", - "src": "10128:932:0" + "src": "10126:932:4" }, { "attributes": { @@ -27282,7 +27282,7 @@ null ], "name": "verifyProof", - "scope": 1058, + "scope": 2086, "stateMutability": "view", "superFunction": null, "visibility": "public" @@ -27294,7 +27294,7 @@ "attributes": { "constant": false, "name": "a", - "scope": 1001, + "scope": 2029, "stateVariable": false, "storageLocation": "memory", "type": "uint256[2]", @@ -27312,9 +27312,9 @@ "name": "uint", "type": "uint256" }, - "id": 872, + "id": 1900, "name": "ElementaryTypeName", - "src": "11099:4:0" + "src": "11097:4:4" }, { "attributes": { @@ -27329,25 +27329,25 @@ "type": "int_const 2", "value": "2" }, - "id": 873, + "id": 1901, "name": "Literal", - "src": "11104:1:0" + "src": "11102:1:4" } ], - "id": 874, + "id": 1902, "name": "ArrayTypeName", - "src": "11099:7:0" + "src": "11097:7:4" } ], - "id": 875, + "id": 1903, "name": "VariableDeclaration", - "src": "11099:16:0" + "src": "11097:16:4" }, { "attributes": { "constant": false, "name": "b", - "scope": 1001, + "scope": 2029, "stateVariable": false, "storageLocation": "memory", "type": "uint256[2][2]", @@ -27370,9 +27370,9 @@ "name": "uint", "type": "uint256" }, - "id": 876, + "id": 1904, "name": "ElementaryTypeName", - "src": "11129:4:0" + "src": "11127:4:4" }, { "attributes": { @@ -27387,14 +27387,14 @@ "type": "int_const 2", "value": "2" }, - "id": 877, + "id": 1905, "name": "Literal", - "src": "11134:1:0" + "src": "11132:1:4" } ], - "id": 878, + "id": 1906, "name": "ArrayTypeName", - "src": "11129:7:0" + "src": "11127:7:4" }, { "attributes": { @@ -27409,25 +27409,25 @@ "type": "int_const 2", "value": "2" }, - "id": 879, + "id": 1907, "name": "Literal", - "src": "11137:1:0" + "src": "11135:1:4" } ], - "id": 880, + "id": 1908, "name": "ArrayTypeName", - "src": "11129:10:0" + "src": "11127:10:4" } ], - "id": 881, + "id": 1909, "name": "VariableDeclaration", - "src": "11129:19:0" + "src": "11127:19:4" }, { "attributes": { "constant": false, "name": "c", - "scope": 1001, + "scope": 2029, "stateVariable": false, "storageLocation": "memory", "type": "uint256[2]", @@ -27445,9 +27445,9 @@ "name": "uint", "type": "uint256" }, - "id": 882, + "id": 1910, "name": "ElementaryTypeName", - "src": "11162:4:0" + "src": "11160:4:4" }, { "attributes": { @@ -27462,25 +27462,25 @@ "type": "int_const 2", "value": "2" }, - "id": 883, + "id": 1911, "name": "Literal", - "src": "11167:1:0" + "src": "11165:1:4" } ], - "id": 884, + "id": 1912, "name": "ArrayTypeName", - "src": "11162:7:0" + "src": "11160:7:4" } ], - "id": 885, + "id": 1913, "name": "VariableDeclaration", - "src": "11162:16:0" + "src": "11160:16:4" }, { "attributes": { "constant": false, "name": "input", - "scope": 1001, + "scope": 2029, "stateVariable": false, "storageLocation": "memory", "type": "uint256[6]", @@ -27498,9 +27498,9 @@ "name": "uint", "type": "uint256" }, - "id": 886, + "id": 1914, "name": "ElementaryTypeName", - "src": "11192:4:0" + "src": "11190:4:4" }, { "attributes": { @@ -27515,24 +27515,24 @@ "type": "int_const 6", "value": "6" }, - "id": 887, + "id": 1915, "name": "Literal", - "src": "11197:1:0" + "src": "11195:1:4" } ], - "id": 888, + "id": 1916, "name": "ArrayTypeName", - "src": "11192:7:0" + "src": "11190:7:4" } ], - "id": 889, + "id": 1917, "name": "VariableDeclaration", - "src": "11192:20:0" + "src": "11190:20:4" } ], - "id": 890, + "id": 1918, "name": "ParameterList", - "src": "11085:137:0" + "src": "11083:137:4" }, { "children": [ @@ -27540,7 +27540,7 @@ "attributes": { "constant": false, "name": "r", - "scope": 1001, + "scope": 2029, "stateVariable": false, "storageLocation": "default", "type": "bool", @@ -27553,26 +27553,26 @@ "name": "bool", "type": "bool" }, - "id": 891, + "id": 1919, "name": "ElementaryTypeName", - "src": "11244:4:0" + "src": "11242:4:4" } ], - "id": 892, + "id": 1920, "name": "VariableDeclaration", - "src": "11244:6:0" + "src": "11242:6:4" } ], - "id": 893, + "id": 1921, "name": "ParameterList", - "src": "11243:8:0" + "src": "11241:8:4" }, { "children": [ { "attributes": { "assignments": [ - 895 + 1923 ], "initialValue": null }, @@ -27581,7 +27581,7 @@ "attributes": { "constant": false, "name": "proof", - "scope": 1000, + "scope": 2028, "stateVariable": false, "storageLocation": "memory", "type": "struct Verifier.Proof", @@ -27593,22 +27593,22 @@ "attributes": { "contractScope": null, "name": "Proof", - "referencedDeclaration": 598, + "referencedDeclaration": 1626, "type": "struct Verifier.Proof" }, - "id": 894, + "id": 1922, "name": "UserDefinedTypeName", - "src": "11262:5:0" + "src": "11260:5:4" } ], - "id": 895, + "id": 1923, "name": "VariableDeclaration", - "src": "11262:18:0" + "src": "11260:18:4" } ], - "id": 896, + "id": 1924, "name": "VariableDeclarationStatement", - "src": "11262:18:0" + "src": "11260:18:4" }, { "children": [ @@ -27631,7 +27631,7 @@ "isPure": false, "lValueRequested": true, "member_name": "A", - "referencedDeclaration": 593, + "referencedDeclaration": 1621, "type": "struct Pairing.G1Point memory" }, "children": [ @@ -27641,18 +27641,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 895, + "referencedDeclaration": 1923, "type": "struct Verifier.Proof memory", "value": "proof" }, - "id": 897, + "id": 1925, "name": "Identifier", - "src": "11290:5:0" + "src": "11288:5:4" } ], - "id": 899, + "id": 1927, "name": "MemberAccess", - "src": "11290:7:0" + "src": "11288:7:4" }, { "attributes": { @@ -27686,7 +27686,7 @@ "isPure": false, "lValueRequested": false, "member_name": "G1Point", - "referencedDeclaration": 6, + "referencedDeclaration": 1034, "type": "type(struct Pairing.G1Point storage pointer)" }, "children": [ @@ -27696,18 +27696,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 577, + "referencedDeclaration": 1605, "type": "type(library Pairing)", "value": "Pairing" }, - "id": 900, + "id": 1928, "name": "Identifier", - "src": "11300:7:0" + "src": "11298:7:4" } ], - "id": 901, + "id": 1929, "name": "MemberAccess", - "src": "11300:15:0" + "src": "11298:15:4" }, { "attributes": { @@ -27725,13 +27725,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 875, + "referencedDeclaration": 1903, "type": "uint256[2] memory", "value": "a" }, - "id": 902, + "id": 1930, "name": "Identifier", - "src": "11316:1:0" + "src": "11314:1:4" }, { "attributes": { @@ -27746,14 +27746,14 @@ "type": "int_const 0", "value": "0" }, - "id": 903, + "id": 1931, "name": "Literal", - "src": "11318:1:0" + "src": "11316:1:4" } ], - "id": 904, + "id": 1932, "name": "IndexAccess", - "src": "11316:4:0" + "src": "11314:4:4" }, { "attributes": { @@ -27771,13 +27771,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 875, + "referencedDeclaration": 1903, "type": "uint256[2] memory", "value": "a" }, - "id": 905, + "id": 1933, "name": "Identifier", - "src": "11322:1:0" + "src": "11320:1:4" }, { "attributes": { @@ -27792,29 +27792,29 @@ "type": "int_const 1", "value": "1" }, - "id": 906, + "id": 1934, "name": "Literal", - "src": "11324:1:0" + "src": "11322:1:4" } ], - "id": 907, + "id": 1935, "name": "IndexAccess", - "src": "11322:4:0" + "src": "11320:4:4" } ], - "id": 908, + "id": 1936, "name": "FunctionCall", - "src": "11300:27:0" + "src": "11298:27:4" } ], - "id": 909, + "id": 1937, "name": "Assignment", - "src": "11290:37:0" + "src": "11288:37:4" } ], - "id": 910, + "id": 1938, "name": "ExpressionStatement", - "src": "11290:37:0" + "src": "11288:37:4" }, { "children": [ @@ -27837,7 +27837,7 @@ "isPure": false, "lValueRequested": true, "member_name": "B", - "referencedDeclaration": 595, + "referencedDeclaration": 1623, "type": "struct Pairing.G2Point memory" }, "children": [ @@ -27847,18 +27847,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 895, + "referencedDeclaration": 1923, "type": "struct Verifier.Proof memory", "value": "proof" }, - "id": 911, + "id": 1939, "name": "Identifier", - "src": "11337:5:0" + "src": "11335:5:4" } ], - "id": 913, + "id": 1941, "name": "MemberAccess", - "src": "11337:7:0" + "src": "11335:7:4" }, { "attributes": { @@ -27892,7 +27892,7 @@ "isPure": false, "lValueRequested": false, "member_name": "G2Point", - "referencedDeclaration": 15, + "referencedDeclaration": 1043, "type": "type(struct Pairing.G2Point storage pointer)" }, "children": [ @@ -27902,18 +27902,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 577, + "referencedDeclaration": 1605, "type": "type(library Pairing)", "value": "Pairing" }, - "id": 914, + "id": 1942, "name": "Identifier", - "src": "11347:7:0" + "src": "11345:7:4" } ], - "id": 915, + "id": 1943, "name": "MemberAccess", - "src": "11347:15:0" + "src": "11345:15:4" }, { "attributes": { @@ -27952,13 +27952,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 881, + "referencedDeclaration": 1909, "type": "uint256[2] memory[2] memory", "value": "b" }, - "id": 916, + "id": 1944, "name": "Identifier", - "src": "11364:1:0" + "src": "11362:1:4" }, { "attributes": { @@ -27973,14 +27973,14 @@ "type": "int_const 0", "value": "0" }, - "id": 917, + "id": 1945, "name": "Literal", - "src": "11366:1:0" + "src": "11364:1:4" } ], - "id": 918, + "id": 1946, "name": "IndexAccess", - "src": "11364:4:0" + "src": "11362:4:4" }, { "attributes": { @@ -27995,14 +27995,14 @@ "type": "int_const 0", "value": "0" }, - "id": 919, + "id": 1947, "name": "Literal", - "src": "11369:1:0" + "src": "11367:1:4" } ], - "id": 920, + "id": 1948, "name": "IndexAccess", - "src": "11364:7:0" + "src": "11362:7:4" }, { "attributes": { @@ -28030,13 +28030,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 881, + "referencedDeclaration": 1909, "type": "uint256[2] memory[2] memory", "value": "b" }, - "id": 921, + "id": 1949, "name": "Identifier", - "src": "11373:1:0" + "src": "11371:1:4" }, { "attributes": { @@ -28051,14 +28051,14 @@ "type": "int_const 0", "value": "0" }, - "id": 922, + "id": 1950, "name": "Literal", - "src": "11375:1:0" + "src": "11373:1:4" } ], - "id": 923, + "id": 1951, "name": "IndexAccess", - "src": "11373:4:0" + "src": "11371:4:4" }, { "attributes": { @@ -28073,19 +28073,19 @@ "type": "int_const 1", "value": "1" }, - "id": 924, + "id": 1952, "name": "Literal", - "src": "11378:1:0" + "src": "11376:1:4" } ], - "id": 925, + "id": 1953, "name": "IndexAccess", - "src": "11373:7:0" + "src": "11371:7:4" } ], - "id": 926, + "id": 1954, "name": "TupleExpression", - "src": "11363:18:0" + "src": "11361:18:4" }, { "attributes": { @@ -28124,13 +28124,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 881, + "referencedDeclaration": 1909, "type": "uint256[2] memory[2] memory", "value": "b" }, - "id": 927, + "id": 1955, "name": "Identifier", - "src": "11384:1:0" + "src": "11382:1:4" }, { "attributes": { @@ -28145,14 +28145,14 @@ "type": "int_const 1", "value": "1" }, - "id": 928, + "id": 1956, "name": "Literal", - "src": "11386:1:0" + "src": "11384:1:4" } ], - "id": 929, + "id": 1957, "name": "IndexAccess", - "src": "11384:4:0" + "src": "11382:4:4" }, { "attributes": { @@ -28167,14 +28167,14 @@ "type": "int_const 0", "value": "0" }, - "id": 930, + "id": 1958, "name": "Literal", - "src": "11389:1:0" + "src": "11387:1:4" } ], - "id": 931, + "id": 1959, "name": "IndexAccess", - "src": "11384:7:0" + "src": "11382:7:4" }, { "attributes": { @@ -28202,13 +28202,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 881, + "referencedDeclaration": 1909, "type": "uint256[2] memory[2] memory", "value": "b" }, - "id": 932, + "id": 1960, "name": "Identifier", - "src": "11393:1:0" + "src": "11391:1:4" }, { "attributes": { @@ -28223,14 +28223,14 @@ "type": "int_const 1", "value": "1" }, - "id": 933, + "id": 1961, "name": "Literal", - "src": "11395:1:0" + "src": "11393:1:4" } ], - "id": 934, + "id": 1962, "name": "IndexAccess", - "src": "11393:4:0" + "src": "11391:4:4" }, { "attributes": { @@ -28245,34 +28245,34 @@ "type": "int_const 1", "value": "1" }, - "id": 935, + "id": 1963, "name": "Literal", - "src": "11398:1:0" + "src": "11396:1:4" } ], - "id": 936, + "id": 1964, "name": "IndexAccess", - "src": "11393:7:0" + "src": "11391:7:4" } ], - "id": 937, + "id": 1965, "name": "TupleExpression", - "src": "11383:18:0" + "src": "11381:18:4" } ], - "id": 938, + "id": 1966, "name": "FunctionCall", - "src": "11347:55:0" + "src": "11345:55:4" } ], - "id": 939, + "id": 1967, "name": "Assignment", - "src": "11337:65:0" + "src": "11335:65:4" } ], - "id": 940, + "id": 1968, "name": "ExpressionStatement", - "src": "11337:65:0" + "src": "11335:65:4" }, { "children": [ @@ -28295,7 +28295,7 @@ "isPure": false, "lValueRequested": true, "member_name": "C", - "referencedDeclaration": 597, + "referencedDeclaration": 1625, "type": "struct Pairing.G1Point memory" }, "children": [ @@ -28305,18 +28305,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 895, + "referencedDeclaration": 1923, "type": "struct Verifier.Proof memory", "value": "proof" }, - "id": 941, + "id": 1969, "name": "Identifier", - "src": "11412:5:0" + "src": "11410:5:4" } ], - "id": 943, + "id": 1971, "name": "MemberAccess", - "src": "11412:7:0" + "src": "11410:7:4" }, { "attributes": { @@ -28350,7 +28350,7 @@ "isPure": false, "lValueRequested": false, "member_name": "G1Point", - "referencedDeclaration": 6, + "referencedDeclaration": 1034, "type": "type(struct Pairing.G1Point storage pointer)" }, "children": [ @@ -28360,18 +28360,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 577, + "referencedDeclaration": 1605, "type": "type(library Pairing)", "value": "Pairing" }, - "id": 944, + "id": 1972, "name": "Identifier", - "src": "11422:7:0" + "src": "11420:7:4" } ], - "id": 945, + "id": 1973, "name": "MemberAccess", - "src": "11422:15:0" + "src": "11420:15:4" }, { "attributes": { @@ -28389,13 +28389,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 885, + "referencedDeclaration": 1913, "type": "uint256[2] memory", "value": "c" }, - "id": 946, + "id": 1974, "name": "Identifier", - "src": "11438:1:0" + "src": "11436:1:4" }, { "attributes": { @@ -28410,14 +28410,14 @@ "type": "int_const 0", "value": "0" }, - "id": 947, + "id": 1975, "name": "Literal", - "src": "11440:1:0" + "src": "11438:1:4" } ], - "id": 948, + "id": 1976, "name": "IndexAccess", - "src": "11438:4:0" + "src": "11436:4:4" }, { "attributes": { @@ -28435,13 +28435,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 885, + "referencedDeclaration": 1913, "type": "uint256[2] memory", "value": "c" }, - "id": 949, + "id": 1977, "name": "Identifier", - "src": "11444:1:0" + "src": "11442:1:4" }, { "attributes": { @@ -28456,34 +28456,34 @@ "type": "int_const 1", "value": "1" }, - "id": 950, + "id": 1978, "name": "Literal", - "src": "11446:1:0" + "src": "11444:1:4" } ], - "id": 951, + "id": 1979, "name": "IndexAccess", - "src": "11444:4:0" + "src": "11442:4:4" } ], - "id": 952, + "id": 1980, "name": "FunctionCall", - "src": "11422:27:0" + "src": "11420:27:4" } ], - "id": 953, + "id": 1981, "name": "Assignment", - "src": "11412:37:0" + "src": "11410:37:4" } ], - "id": 954, + "id": 1982, "name": "ExpressionStatement", - "src": "11412:37:0" + "src": "11410:37:4" }, { "attributes": { "assignments": [ - 958 + 1986 ] }, "children": [ @@ -28491,7 +28491,7 @@ "attributes": { "constant": false, "name": "inputValues", - "scope": 1000, + "scope": 2028, "stateVariable": false, "storageLocation": "memory", "type": "uint256[]", @@ -28510,19 +28510,19 @@ "name": "uint", "type": "uint256" }, - "id": 956, + "id": 1984, "name": "ElementaryTypeName", - "src": "11459:4:0" + "src": "11457:4:4" } ], - "id": 957, + "id": 1985, "name": "ArrayTypeName", - "src": "11459:6:0" + "src": "11457:6:4" } ], - "id": 958, + "id": 1986, "name": "VariableDeclaration", - "src": "11459:25:0" + "src": "11457:25:4" }, { "attributes": { @@ -28565,19 +28565,19 @@ "name": "uint", "type": "uint256" }, - "id": 959, + "id": 1987, "name": "ElementaryTypeName", - "src": "11491:4:0" + "src": "11489:4:4" } ], - "id": 960, + "id": 1988, "name": "ArrayTypeName", - "src": "11491:6:0" + "src": "11489:6:4" } ], - "id": 961, + "id": 1989, "name": "NewExpression", - "src": "11487:10:0" + "src": "11485:10:4" }, { "attributes": { @@ -28597,35 +28597,35 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 889, + "referencedDeclaration": 1917, "type": "uint256[6] memory", "value": "input" }, - "id": 962, + "id": 1990, "name": "Identifier", - "src": "11498:5:0" + "src": "11496:5:4" } ], - "id": 963, + "id": 1991, "name": "MemberAccess", - "src": "11498:12:0" + "src": "11496:12:4" } ], - "id": 964, + "id": 1992, "name": "FunctionCall", - "src": "11487:24:0" + "src": "11485:24:4" } ], - "id": 965, + "id": 1993, "name": "VariableDeclarationStatement", - "src": "11459:52:0" + "src": "11457:52:4" }, { "children": [ { "attributes": { "assignments": [ - 967 + 1995 ] }, "children": [ @@ -28633,7 +28633,7 @@ "attributes": { "constant": false, "name": "i", - "scope": 986, + "scope": 2014, "stateVariable": false, "storageLocation": "default", "type": "uint256", @@ -28646,14 +28646,14 @@ "name": "uint", "type": "uint256" }, - "id": 966, + "id": 1994, "name": "ElementaryTypeName", - "src": "11525:4:0" + "src": "11523:4:4" } ], - "id": 967, + "id": 1995, "name": "VariableDeclaration", - "src": "11525:6:0" + "src": "11523:6:4" }, { "attributes": { @@ -28668,14 +28668,14 @@ "type": "int_const 0", "value": "0" }, - "id": 968, + "id": 1996, "name": "Literal", - "src": "11534:1:0" + "src": "11532:1:4" } ], - "id": 969, + "id": 1997, "name": "VariableDeclarationStatement", - "src": "11525:10:0" + "src": "11523:10:4" }, { "attributes": { @@ -28698,13 +28698,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 967, + "referencedDeclaration": 1995, "type": "uint256", "value": "i" }, - "id": 970, + "id": 1998, "name": "Identifier", - "src": "11537:1:0" + "src": "11535:1:4" }, { "attributes": { @@ -28724,23 +28724,23 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 889, + "referencedDeclaration": 1917, "type": "uint256[6] memory", "value": "input" }, - "id": 971, + "id": 1999, "name": "Identifier", - "src": "11541:5:0" + "src": "11539:5:4" } ], - "id": 972, + "id": 2000, "name": "MemberAccess", - "src": "11541:12:0" + "src": "11539:12:4" } ], - "id": 973, + "id": 2001, "name": "BinaryOperation", - "src": "11537:16:0" + "src": "11535:16:4" }, { "children": [ @@ -28762,23 +28762,23 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 967, + "referencedDeclaration": 1995, "type": "uint256", "value": "i" }, - "id": 974, + "id": 2002, "name": "Identifier", - "src": "11555:1:0" + "src": "11553:1:4" } ], - "id": 975, + "id": 2003, "name": "UnaryOperation", - "src": "11555:3:0" + "src": "11553:3:4" } ], - "id": 976, + "id": 2004, "name": "ExpressionStatement", - "src": "11555:3:0" + "src": "11553:3:4" }, { "children": [ @@ -28811,13 +28811,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 958, + "referencedDeclaration": 1986, "type": "uint256[] memory", "value": "inputValues" }, - "id": 977, + "id": 2005, "name": "Identifier", - "src": "11573:11:0" + "src": "11571:11:4" }, { "attributes": { @@ -28825,18 +28825,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 967, + "referencedDeclaration": 1995, "type": "uint256", "value": "i" }, - "id": 978, + "id": 2006, "name": "Identifier", - "src": "11585:1:0" + "src": "11583:1:4" } ], - "id": 979, + "id": 2007, "name": "IndexAccess", - "src": "11573:14:0" + "src": "11571:14:4" }, { "attributes": { @@ -28854,13 +28854,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 889, + "referencedDeclaration": 1917, "type": "uint256[6] memory", "value": "input" }, - "id": 980, + "id": 2008, "name": "Identifier", - "src": "11590:5:0" + "src": "11588:5:4" }, { "attributes": { @@ -28868,38 +28868,38 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 967, + "referencedDeclaration": 1995, "type": "uint256", "value": "i" }, - "id": 981, + "id": 2009, "name": "Identifier", - "src": "11596:1:0" + "src": "11594:1:4" } ], - "id": 982, + "id": 2010, "name": "IndexAccess", - "src": "11590:8:0" + "src": "11588:8:4" } ], - "id": 983, + "id": 2011, "name": "Assignment", - "src": "11573:25:0" + "src": "11571:25:4" } ], - "id": 984, + "id": 2012, "name": "ExpressionStatement", - "src": "11573:25:0" + "src": "11571:25:4" } ], - "id": 985, + "id": 2013, "name": "Block", - "src": "11559:50:0" + "src": "11557:50:4" } ], - "id": 986, + "id": 2014, "name": "ForStatement", - "src": "11521:88:0" + "src": "11519:88:4" }, { "children": [ @@ -28941,20 +28941,20 @@ "typeString": "uint256[] memory" }, { - "typeIdentifier": "t_struct$_Proof_$598_memory_ptr", + "typeIdentifier": "t_struct$_Proof_$1626_memory_ptr", "typeString": "struct Verifier.Proof memory" } ], "overloadedDeclarations": [ null ], - "referencedDeclaration": 871, + "referencedDeclaration": 1899, "type": "function (uint256[] memory,struct Verifier.Proof memory) view returns (uint256)", "value": "verify" }, - "id": 987, + "id": 2015, "name": "Identifier", - "src": "11622:6:0" + "src": "11620:6:4" }, { "attributes": { @@ -28962,13 +28962,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 958, + "referencedDeclaration": 1986, "type": "uint256[] memory", "value": "inputValues" }, - "id": 988, + "id": 2016, "name": "Identifier", - "src": "11629:11:0" + "src": "11627:11:4" }, { "attributes": { @@ -28976,18 +28976,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 895, + "referencedDeclaration": 1923, "type": "struct Verifier.Proof memory", "value": "proof" }, - "id": 989, + "id": 2017, "name": "Identifier", - "src": "11642:5:0" + "src": "11640:5:4" } ], - "id": 990, + "id": 2018, "name": "FunctionCall", - "src": "11622:26:0" + "src": "11620:26:4" }, { "attributes": { @@ -29002,20 +29002,20 @@ "type": "int_const 0", "value": "0" }, - "id": 991, + "id": 2019, "name": "Literal", - "src": "11652:1:0" + "src": "11650:1:4" } ], - "id": 992, + "id": 2020, "name": "BinaryOperation", - "src": "11622:31:0" + "src": "11620:31:4" }, { "children": [ { "attributes": { - "functionReturnParameters": 893 + "functionReturnParameters": 1921 }, "children": [ { @@ -29031,25 +29031,25 @@ "type": "bool", "value": "true" }, - "id": 993, + "id": 2021, "name": "Literal", - "src": "11676:4:0" + "src": "11674:4:4" } ], - "id": 994, + "id": 2022, "name": "Return", - "src": "11669:11:0" + "src": "11667:11:4" } ], - "id": 995, + "id": 2023, "name": "Block", - "src": "11655:36:0" + "src": "11653:36:4" }, { "children": [ { "attributes": { - "functionReturnParameters": 893 + "functionReturnParameters": 1921 }, "children": [ { @@ -29065,34 +29065,34 @@ "type": "bool", "value": "false" }, - "id": 996, + "id": 2024, "name": "Literal", - "src": "11718:5:0" + "src": "11716:5:4" } ], - "id": 997, + "id": 2025, "name": "Return", - "src": "11711:12:0" + "src": "11709:12:4" } ], - "id": 998, + "id": 2026, "name": "Block", - "src": "11697:37:0" + "src": "11695:37:4" } ], - "id": 999, + "id": 2027, "name": "IfStatement", - "src": "11618:116:0" + "src": "11616:116:4" } ], - "id": 1000, + "id": 2028, "name": "Block", - "src": "11252:488:0" + "src": "11250:488:4" } ], - "id": 1001, + "id": 2029, "name": "FunctionDefinition", - "src": "11065:675:0" + "src": "11063:675:4" }, { "attributes": { @@ -29104,7 +29104,7 @@ null ], "name": "verifyProof", - "scope": 1058, + "scope": 2086, "stateMutability": "view", "superFunction": null, "visibility": "external" @@ -29116,7 +29116,7 @@ "attributes": { "constant": false, "name": "proof", - "scope": 1057, + "scope": 2085, "stateVariable": false, "storageLocation": "calldata", "type": "bytes", @@ -29129,20 +29129,20 @@ "name": "bytes", "type": "bytes" }, - "id": 1002, + "id": 2030, "name": "ElementaryTypeName", - "src": "11766:5:0" + "src": "11764:5:4" } ], - "id": 1003, + "id": 2031, "name": "VariableDeclaration", - "src": "11766:20:0" + "src": "11764:20:4" }, { "attributes": { "constant": false, "name": "inputs", - "scope": 1057, + "scope": 2085, "stateVariable": false, "storageLocation": "calldata", "type": "uint256[6]", @@ -29160,9 +29160,9 @@ "name": "uint", "type": "uint256" }, - "id": 1004, + "id": 2032, "name": "ElementaryTypeName", - "src": "11788:4:0" + "src": "11786:4:4" }, { "attributes": { @@ -29177,24 +29177,24 @@ "type": "int_const 6", "value": "6" }, - "id": 1005, + "id": 2033, "name": "Literal", - "src": "11793:1:0" + "src": "11791:1:4" } ], - "id": 1006, + "id": 2034, "name": "ArrayTypeName", - "src": "11788:7:0" + "src": "11786:7:4" } ], - "id": 1007, + "id": 2035, "name": "VariableDeclaration", - "src": "11788:23:0" + "src": "11786:23:4" } ], - "id": 1008, + "id": 2036, "name": "ParameterList", - "src": "11765:47:0" + "src": "11763:47:4" }, { "children": [ @@ -29202,7 +29202,7 @@ "attributes": { "constant": false, "name": "r", - "scope": 1057, + "scope": 2085, "stateVariable": false, "storageLocation": "default", "type": "bool", @@ -29215,29 +29215,29 @@ "name": "bool", "type": "bool" }, - "id": 1009, + "id": 2037, "name": "ElementaryTypeName", - "src": "11836:4:0" + "src": "11834:4:4" } ], - "id": 1010, + "id": 2038, "name": "VariableDeclaration", - "src": "11836:6:0" + "src": "11834:6:4" } ], - "id": 1011, + "id": 2039, "name": "ParameterList", - "src": "11835:8:0" + "src": "11833:8:4" }, { "children": [ { "attributes": { "assignments": [ - 1016, - 1020, - 1024, - 1028 + 2044, + 2048, + 2052, + 2056 ] }, "children": [ @@ -29245,7 +29245,7 @@ "attributes": { "constant": false, "name": "a", - "scope": 1056, + "scope": 2084, "stateVariable": false, "storageLocation": "memory", "type": "uint256[2]", @@ -29263,9 +29263,9 @@ "name": "uint", "type": "uint256" }, - "id": 1014, + "id": 2042, "name": "ElementaryTypeName", - "src": "11916:4:0" + "src": "11914:4:4" }, { "attributes": { @@ -29280,25 +29280,25 @@ "type": "int_const 2", "value": "2" }, - "id": 1013, + "id": 2041, "name": "Literal", - "src": "11921:1:0" + "src": "11919:1:4" } ], - "id": 1015, + "id": 2043, "name": "ArrayTypeName", - "src": "11916:7:0" + "src": "11914:7:4" } ], - "id": 1016, + "id": 2044, "name": "VariableDeclaration", - "src": "11916:16:0" + "src": "11914:16:4" }, { "attributes": { "constant": false, "name": "b1", - "scope": 1056, + "scope": 2084, "stateVariable": false, "storageLocation": "memory", "type": "uint256[2]", @@ -29316,9 +29316,9 @@ "name": "uint", "type": "uint256" }, - "id": 1017, + "id": 2045, "name": "ElementaryTypeName", - "src": "11934:4:0" + "src": "11932:4:4" }, { "attributes": { @@ -29333,25 +29333,25 @@ "type": "int_const 2", "value": "2" }, - "id": 1018, + "id": 2046, "name": "Literal", - "src": "11939:1:0" + "src": "11937:1:4" } ], - "id": 1019, + "id": 2047, "name": "ArrayTypeName", - "src": "11934:7:0" + "src": "11932:7:4" } ], - "id": 1020, + "id": 2048, "name": "VariableDeclaration", - "src": "11934:17:0" + "src": "11932:17:4" }, { "attributes": { "constant": false, "name": "b2", - "scope": 1056, + "scope": 2084, "stateVariable": false, "storageLocation": "memory", "type": "uint256[2]", @@ -29369,9 +29369,9 @@ "name": "uint", "type": "uint256" }, - "id": 1021, + "id": 2049, "name": "ElementaryTypeName", - "src": "11953:4:0" + "src": "11951:4:4" }, { "attributes": { @@ -29386,25 +29386,25 @@ "type": "int_const 2", "value": "2" }, - "id": 1022, + "id": 2050, "name": "Literal", - "src": "11958:1:0" + "src": "11956:1:4" } ], - "id": 1023, + "id": 2051, "name": "ArrayTypeName", - "src": "11953:7:0" + "src": "11951:7:4" } ], - "id": 1024, + "id": 2052, "name": "VariableDeclaration", - "src": "11953:17:0" + "src": "11951:17:4" }, { "attributes": { "constant": false, "name": "c", - "scope": 1056, + "scope": 2084, "stateVariable": false, "storageLocation": "memory", "type": "uint256[2]", @@ -29422,9 +29422,9 @@ "name": "uint", "type": "uint256" }, - "id": 1025, + "id": 2053, "name": "ElementaryTypeName", - "src": "11972:4:0" + "src": "11970:4:4" }, { "attributes": { @@ -29439,19 +29439,19 @@ "type": "int_const 2", "value": "2" }, - "id": 1026, + "id": 2054, "name": "Literal", - "src": "11977:1:0" + "src": "11975:1:4" } ], - "id": 1027, + "id": 2055, "name": "ArrayTypeName", - "src": "11972:7:0" + "src": "11970:7:4" } ], - "id": 1028, + "id": 2056, "name": "VariableDeclaration", - "src": "11972:16:0" + "src": "11970:16:4" }, { "attributes": { @@ -29495,18 +29495,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1060, + "referencedDeclaration": 2118, "type": "abi", "value": "abi" }, - "id": 1029, + "id": 2057, "name": "Identifier", - "src": "11992:3:0" + "src": "11990:3:4" } ], - "id": 1030, + "id": 2058, "name": "MemberAccess", - "src": "11992:10:0" + "src": "11990:10:4" }, { "attributes": { @@ -29514,13 +29514,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1003, + "referencedDeclaration": 2031, "type": "bytes calldata", "value": "proof" }, - "id": 1031, + "id": 2059, "name": "Identifier", - "src": "12003:5:0" + "src": "12001:5:4" }, { "attributes": { @@ -29553,9 +29553,9 @@ "type": "type(uint256)", "value": "uint" }, - "id": 1032, + "id": 2060, "name": "ElementaryTypeNameExpression", - "src": "12011:4:0" + "src": "12009:4:4" }, { "attributes": { @@ -29570,14 +29570,14 @@ "type": "int_const 2", "value": "2" }, - "id": 1033, + "id": 2061, "name": "Literal", - "src": "12016:1:0" + "src": "12014:1:4" } ], - "id": 1034, + "id": 2062, "name": "IndexAccess", - "src": "12011:7:0" + "src": "12009:7:4" }, { "attributes": { @@ -29599,9 +29599,9 @@ "type": "type(uint256)", "value": "uint" }, - "id": 1035, + "id": 2063, "name": "ElementaryTypeNameExpression", - "src": "12020:4:0" + "src": "12018:4:4" }, { "attributes": { @@ -29616,14 +29616,14 @@ "type": "int_const 2", "value": "2" }, - "id": 1036, + "id": 2064, "name": "Literal", - "src": "12025:1:0" + "src": "12023:1:4" } ], - "id": 1037, + "id": 2065, "name": "IndexAccess", - "src": "12020:7:0" + "src": "12018:7:4" }, { "attributes": { @@ -29645,9 +29645,9 @@ "type": "type(uint256)", "value": "uint" }, - "id": 1038, + "id": 2066, "name": "ElementaryTypeNameExpression", - "src": "12029:4:0" + "src": "12027:4:4" }, { "attributes": { @@ -29662,14 +29662,14 @@ "type": "int_const 2", "value": "2" }, - "id": 1039, + "id": 2067, "name": "Literal", - "src": "12034:1:0" + "src": "12032:1:4" } ], - "id": 1040, + "id": 2068, "name": "IndexAccess", - "src": "12029:7:0" + "src": "12027:7:4" }, { "attributes": { @@ -29691,9 +29691,9 @@ "type": "type(uint256)", "value": "uint" }, - "id": 1041, + "id": 2069, "name": "ElementaryTypeNameExpression", - "src": "12038:4:0" + "src": "12036:4:4" }, { "attributes": { @@ -29708,33 +29708,33 @@ "type": "int_const 2", "value": "2" }, - "id": 1042, + "id": 2070, "name": "Literal", - "src": "12043:1:0" + "src": "12041:1:4" } ], - "id": 1043, + "id": 2071, "name": "IndexAccess", - "src": "12038:7:0" + "src": "12036:7:4" } ], - "id": 1044, + "id": 2072, "name": "TupleExpression", - "src": "12010:36:0" + "src": "12008:36:4" } ], - "id": 1045, + "id": 2073, "name": "FunctionCall", - "src": "11992:55:0" + "src": "11990:55:4" } ], - "id": 1046, + "id": 2074, "name": "VariableDeclarationStatement", - "src": "11915:132:0" + "src": "11913:132:4" }, { "attributes": { - "functionReturnParameters": 1011 + "functionReturnParameters": 2039 }, "children": [ { @@ -29775,13 +29775,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1001, + "referencedDeclaration": 2029, "type": "function (uint256[2] memory,uint256[2] memory[2] memory,uint256[2] memory,uint256[6] memory) view returns (bool)", "value": "verifyProof" }, - "id": 1047, + "id": 2075, "name": "Identifier", - "src": "12064:11:0" + "src": "12062:11:4" }, { "attributes": { @@ -29789,13 +29789,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1016, + "referencedDeclaration": 2044, "type": "uint256[2] memory", "value": "a" }, - "id": 1048, + "id": 2076, "name": "Identifier", - "src": "12076:1:0" + "src": "12074:1:4" }, { "attributes": { @@ -29814,13 +29814,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1020, + "referencedDeclaration": 2048, "type": "uint256[2] memory", "value": "b1" }, - "id": 1049, + "id": 2077, "name": "Identifier", - "src": "12080:2:0" + "src": "12078:2:4" }, { "attributes": { @@ -29828,18 +29828,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1024, + "referencedDeclaration": 2052, "type": "uint256[2] memory", "value": "b2" }, - "id": 1050, + "id": 2078, "name": "Identifier", - "src": "12084:2:0" + "src": "12082:2:4" } ], - "id": 1051, + "id": 2079, "name": "TupleExpression", - "src": "12079:8:0" + "src": "12077:8:4" }, { "attributes": { @@ -29847,13 +29847,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1028, + "referencedDeclaration": 2056, "type": "uint256[2] memory", "value": "c" }, - "id": 1052, + "id": 2080, "name": "Identifier", - "src": "12089:1:0" + "src": "12087:1:4" }, { "attributes": { @@ -29861,43 +29861,43 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1007, + "referencedDeclaration": 2035, "type": "uint256[6] calldata", "value": "inputs" }, - "id": 1053, + "id": 2081, "name": "Identifier", - "src": "12092:6:0" + "src": "12090:6:4" } ], - "id": 1054, + "id": 2082, "name": "FunctionCall", - "src": "12064:35:0" + "src": "12062:35:4" } ], - "id": 1055, + "id": 2083, "name": "Return", - "src": "12057:42:0" + "src": "12055:42:4" } ], - "id": 1056, + "id": 2084, "name": "Block", - "src": "11844:262:0" + "src": "11842:262:4" } ], - "id": 1057, + "id": 2085, "name": "FunctionDefinition", - "src": "11745:361:0" + "src": "11743:361:4" } ], - "id": 1058, + "id": 2086, "name": "ContractDefinition", - "src": "7067:5041:0" + "src": "7067:5039:4" } ], - "id": 1059, + "id": 2087, "name": "SourceUnit", - "src": "1193:10916:0" + "src": "1193:10914:4" }, "compiler": { "name": "solc", @@ -29924,8 +29924,7 @@ } }, "schemaVersion": "3.3.4", - "updatedAt": "2021-03-22T02:54:26.408Z", - "networkType": "ethereum", + "updatedAt": "2021-04-02T20:48:07.541Z", "devdoc": { "methods": {} }, diff --git a/contracts/ERC20Tornado.sol b/contracts/ERC20Tornado.sol index b559041..bce15bf 100644 --- a/contracts/ERC20Tornado.sol +++ b/contracts/ERC20Tornado.sol @@ -15,15 +15,19 @@ import "./Tornado.sol"; contract ERC20Tornado is Tornado { address public token; + uint256 public protocolFee; constructor( IVerifier _verifier, + IFeeManager _feeManager, uint256 _denomination, uint32 _merkleTreeHeight, address _operator, address _token - ) Tornado(_verifier, _denomination, _merkleTreeHeight, _operator) public { + ) Tornado(_verifier, _feeManager, _denomination, _merkleTreeHeight, _operator) public { token = _token; + // 0.5% fee + protocolFee = _denomination / 200; } function _processDeposit() internal { @@ -31,12 +35,19 @@ contract ERC20Tornado is Tornado { _safeErc20TransferFrom(msg.sender, address(this), denomination); } - function _processWithdraw(address payable _recipient, address payable _relayer, uint256 _fee, uint256 _refund) internal { + function _processWithdraw(address payable _recipient, address payable _relayer, uint256 _relayer_fee, uint256 _refund, address _feeTo) internal { require(msg.value == _refund, "Incorrect refund amount received by the contract"); - _safeErc20Transfer(_recipient, denomination - _fee); - if (_fee > 0) { - _safeErc20Transfer(_relayer, _fee); + bool feeOn = _feeTo != address(0); + if (feeOn) { + _safeErc20Transfer(_recipient, denomination - _relayer_fee - protocolFee); + _safeErc20Transfer(_feeTo, protocolFee); + } else { + _safeErc20Transfer(_recipient, denomination - _relayer_fee); + } + + if (_relayer_fee > 0) { + _safeErc20Transfer(_relayer, _relayer_fee); } if (_refund > 0) { diff --git a/contracts/ETHTornado.sol b/contracts/ETHTornado.sol deleted file mode 100644 index e8b353d..0000000 --- a/contracts/ETHTornado.sol +++ /dev/null @@ -1,41 +0,0 @@ -// https://tornado.cash -/* -* d888888P dP a88888b. dP -* 88 88 d8' `88 88 -* 88 .d8888b. 88d888b. 88d888b. .d8888b. .d888b88 .d8888b. 88 .d8888b. .d8888b. 88d888b. -* 88 88' `88 88' `88 88' `88 88' `88 88' `88 88' `88 88 88' `88 Y8ooooo. 88' `88 -* 88 88. .88 88 88 88 88. .88 88. .88 88. .88 dP Y8. .88 88. .88 88 88 88 -* dP `88888P' dP dP dP `88888P8 `88888P8 `88888P' 88 Y88888P' `88888P8 `88888P' dP dP -* ooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo -*/ - -pragma solidity 0.5.17; - -import "./Tornado.sol"; - -contract ETHTornado is Tornado { - constructor( - IVerifier _verifier, - uint256 _denomination, - uint32 _merkleTreeHeight, - address _operator - ) Tornado(_verifier, _denomination, _merkleTreeHeight, _operator) public { - } - - function _processDeposit() internal { - require(msg.value == denomination, "Please send `mixDenomination` ETH along with transaction"); - } - - function _processWithdraw(address payable _recipient, address payable _relayer, uint256 _fee, uint256 _refund) internal { - // sanity checks - require(msg.value == 0, "Message value is supposed to be zero for ETH instance"); - require(_refund == 0, "Refund value is supposed to be zero for ETH instance"); - - (bool success, ) = _recipient.call.value(denomination - _fee)(""); - require(success, "payment to _recipient did not go thru"); - if (_fee > 0) { - (success, ) = _relayer.call.value(_fee)(""); - require(success, "payment to _relayer did not go thru"); - } - } -} diff --git a/contracts/FeeManager.sol b/contracts/FeeManager.sol new file mode 100644 index 0000000..4c92349 --- /dev/null +++ b/contracts/FeeManager.sol @@ -0,0 +1,20 @@ +pragma solidity 0.5.17; + +contract FeeManager { + address public feeTo; + address public feeToSetter; + + constructor(address _feeToSetter) public { + feeToSetter = _feeToSetter; + } + + function setFeeTo(address _feeTo) external { + require(msg.sender == feeToSetter, 'Poof: FORBIDDEN'); + feeTo = _feeTo; + } + + function setFeeToSetter(address _feeToSetter) external { + require(msg.sender == feeToSetter, 'Poof: FORBIDDEN'); + feeToSetter = _feeToSetter; + } +} diff --git a/contracts/Tornado.sol b/contracts/Tornado.sol index 5ede6fe..c1a69da 100644 --- a/contracts/Tornado.sol +++ b/contracts/Tornado.sol @@ -1,14 +1,3 @@ -// https://tornado.cash -/* -* d888888P dP a88888b. dP -* 88 88 d8' `88 88 -* 88 .d8888b. 88d888b. 88d888b. .d8888b. .d888b88 .d8888b. 88 .d8888b. .d8888b. 88d888b. -* 88 88' `88 88' `88 88' `88 88' `88 88' `88 88' `88 88 88' `88 Y8ooooo. 88' `88 -* 88 88. .88 88 88 88 88. .88 88. .88 88. .88 dP Y8. .88 88. .88 88 88 88 -* dP `88888P' dP dP dP `88888P8 `88888P8 `88888P' 88 Y88888P' `88888P8 `88888P' dP dP -* ooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo -*/ - pragma solidity 0.5.17; import "./MerkleTreeWithHistory.sol"; @@ -18,12 +7,17 @@ contract IVerifier { function verifyProof(bytes memory _proof, uint256[6] memory _input) public returns(bool); } +contract IFeeManager { + function feeTo() external view returns (address); +} + contract Tornado is MerkleTreeWithHistory, ReentrancyGuard { uint256 public denomination; mapping(bytes32 => bool) public nullifierHashes; // we store all commitments just to prevent accidental deposits with the same commitment mapping(bytes32 => bool) public commitments; IVerifier public verifier; + IFeeManager public feeManager; // operator can update snark verification key // after the final trusted setup ceremony operator rights are supposed to be transferred to zero address @@ -45,12 +39,14 @@ contract Tornado is MerkleTreeWithHistory, ReentrancyGuard { */ constructor( IVerifier _verifier, + IFeeManager _feeManager, uint256 _denomination, uint32 _merkleTreeHeight, address _operator ) MerkleTreeWithHistory(_merkleTreeHeight) public { require(_denomination > 0, "denomination should be greater than 0"); verifier = _verifier; + feeManager = _feeManager; operator = _operator; denomination = _denomination; } @@ -87,12 +83,12 @@ contract Tornado is MerkleTreeWithHistory, ReentrancyGuard { require(verifier.verifyProof(_proof, [uint256(_root), uint256(_nullifierHash), uint256(_recipient), uint256(_relayer), _fee, _refund]), "Invalid withdraw proof"); nullifierHashes[_nullifierHash] = true; - _processWithdraw(_recipient, _relayer, _fee, _refund); + _processWithdraw(_recipient, _relayer, _fee, _refund, feeManager.feeTo()); emit Withdrawal(_recipient, _nullifierHash, _relayer, _fee); } /** @dev this function is defined in a child contract */ - function _processWithdraw(address payable _recipient, address payable _relayer, uint256 _fee, uint256 _refund) internal; + function _processWithdraw(address payable _recipient, address payable _relayer, uint256 _relayer_fee, uint256 _refund, address _feeTo) internal; /** @dev whether a note is already spent */ function isSpent(bytes32 _nullifierHash) public view returns(bool) { diff --git a/migrations/4_deploy_eth_tornado.js b/migrations/4_deploy_eth_tornado.js deleted file mode 100644 index e3170fe..0000000 --- a/migrations/4_deploy_eth_tornado.js +++ /dev/null @@ -1,17 +0,0 @@ -/* global artifacts */ -require('dotenv').config({ path: '../.env' }) -const ETHTornado = artifacts.require('ETHTornado') -const Verifier = artifacts.require('Verifier') -const hasherContract = artifacts.require('Hasher') - - -module.exports = function(deployer, network, accounts) { - return deployer.then(async () => { - const { MERKLE_TREE_HEIGHT, ETH_AMOUNT } = process.env - const verifier = await Verifier.deployed() - const hasherInstance = await hasherContract.deployed() - await ETHTornado.link(hasherContract, hasherInstance.address) - const tornado = await deployer.deploy(ETHTornado, verifier.address, ETH_AMOUNT, MERKLE_TREE_HEIGHT, accounts[0]) - console.log('ETHTornado\'s address ', tornado.address) - }) -} diff --git a/migrations/4_deploy_fee_manager.js b/migrations/4_deploy_fee_manager.js new file mode 100644 index 0000000..dce750e --- /dev/null +++ b/migrations/4_deploy_fee_manager.js @@ -0,0 +1,6 @@ +/* global artifacts */ +const FeeManager = artifacts.require('FeeManager') + +module.exports = function (deployer, network, accounts) { + deployer.deploy(FeeManager, accounts[0]) +} diff --git a/migrations/5_deploy_erc20_tornado.js b/migrations/5_deploy_erc20_tornado.js index eb105b8..d8ca6f9 100644 --- a/migrations/5_deploy_erc20_tornado.js +++ b/migrations/5_deploy_erc20_tornado.js @@ -1,25 +1,28 @@ /* global artifacts */ -require('dotenv').config({ path: '../.env' }) +require('dotenv').config({path: '../.env'}) const ERC20Tornado = artifacts.require('ERC20Tornado') const Verifier = artifacts.require('Verifier') +const FeeManager = artifacts.require('FeeManager') const hasherContract = artifacts.require('Hasher') const ERC20Mock = artifacts.require('ERC20Mock') -module.exports = function(deployer, network, accounts) { +module.exports = function (deployer, network, accounts) { return deployer.then(async () => { - const { MERKLE_TREE_HEIGHT, ERC20_TOKEN, TOKEN_AMOUNT } = process.env + const {MERKLE_TREE_HEIGHT, ERC20_TOKEN, TOKEN_AMOUNT} = process.env const verifier = await Verifier.deployed() + const feeManager = await FeeManager.deployed() const hasherInstance = await hasherContract.deployed() await ERC20Tornado.link(hasherContract, hasherInstance.address) let token = ERC20_TOKEN - if(token === '') { + if (token === '') { const tokenInstance = await deployer.deploy(ERC20Mock) token = tokenInstance.address } const tornado = await deployer.deploy( ERC20Tornado, verifier.address, + feeManager.address, TOKEN_AMOUNT, MERKLE_TREE_HEIGHT, accounts[0], diff --git a/test/ERC20Tornado.test.js b/test/ERC20Tornado.test.js index 9bd9ba7..cb791bb 100644 --- a/test/ERC20Tornado.test.js +++ b/test/ERC20Tornado.test.js @@ -9,10 +9,11 @@ const { toBN } = require('web3-utils') const { takeSnapshot, revertSnapshot } = require('../lib/ganacheHelper') const Tornado = artifacts.require('./ERC20Tornado.sol') +const FeeManager = artifacts.require('./FeeManager.sol') const BadRecipient = artifacts.require('./BadRecipient.sol') const Token = artifacts.require('./ERC20Mock.sol') const USDTToken = artifacts.require('./IUSDT.sol') -const { ETH_AMOUNT, TOKEN_AMOUNT, MERKLE_TREE_HEIGHT, ERC20_TOKEN } = process.env +const { CELO_AMOUNT, TOKEN_AMOUNT, MERKLE_TREE_HEIGHT, ERC20_TOKEN } = process.env const websnarkUtils = require('websnark/src/utils') const buildGroth16 = require('websnark/src/groth16') @@ -40,6 +41,7 @@ function generateDeposit() { contract('ERC20Tornado', accounts => { let tornado + let feeManager let token let usdtToken let badRecipient @@ -50,8 +52,8 @@ contract('ERC20Tornado', accounts => { let snapshotId let prefix = 'test' let tree - const fee = bigInt(ETH_AMOUNT).shr(1) || bigInt(1e17) - const refund = ETH_AMOUNT || '1000000000000000000' // 1 ether + const fee = bigInt(CELO_AMOUNT).shr(1) || bigInt(1e17) + const refund = CELO_AMOUNT || '1000000000000000000' // 1 ether let recipient = getRandomRecipient() const relayer = accounts[1] let groth16 @@ -72,6 +74,7 @@ contract('ERC20Tornado', accounts => { token = await Token.deployed() await token.mint(sender, tokenDenomination) } + feeManager = await FeeManager.deployed() badRecipient = await BadRecipient.new() snapshotId = await takeSnapshot() groth16 = await buildGroth16() @@ -191,6 +194,131 @@ contract('ERC20Tornado', accounts => { isSpent.should.be.equal(true) }) + it("should give fees when feeTo is set", async () => { + await feeManager.setFeeTo(accounts[5]); + const balanceFeeToBefore = await token.balanceOf(accounts[5]); + + const deposit = generateDeposit(); + const user = accounts[4]; + await tree.insert(deposit.commitment); + await token.mint(user, tokenDenomination); + + const balanceUserBefore = await token.balanceOf(user); + await token.approve(tornado.address, tokenDenomination, { from: user }); + // Uncomment to measure gas usage + // let gas = await tornado.deposit.estimateGas(toBN(deposit.commitment.toString()), { from: user, gasPrice: '0' }) + // console.log('deposit gas:', gas) + await tornado.deposit(toFixedHex(deposit.commitment), { + from: user, + gasPrice: "0", + }); + + const balanceUserAfter = await token.balanceOf(user); + balanceUserAfter.should.be.eq.BN( + toBN(balanceUserBefore).sub(toBN(tokenDenomination)) + ); + + const { root, path_elements, path_index } = await tree.path(0); + // Circuit input + const input = stringifyBigInts({ + // public + root, + nullifierHash: pedersenHash(deposit.nullifier.leInt2Buff(31)), + relayer, + recipient, + fee, + refund, + + // private + nullifier: deposit.nullifier, + secret: deposit.secret, + pathElements: path_elements, + pathIndices: path_index, + }); + + const proofData = await websnarkUtils.genWitnessAndProve( + groth16, + input, + circuit, + proving_key + ); + const { proof } = websnarkUtils.toSolidityInput(proofData); + + const balanceTornadoBefore = await token.balanceOf(tornado.address); + const balanceRelayerBefore = await token.balanceOf(relayer); + const balanceRecieverBefore = await token.balanceOf( + toFixedHex(recipient, 20) + ); + + const ethBalanceOperatorBefore = await web3.eth.getBalance(operator); + const ethBalanceRecieverBefore = await web3.eth.getBalance( + toFixedHex(recipient, 20) + ); + const ethBalanceRelayerBefore = await web3.eth.getBalance(relayer); + let isSpent = await tornado.isSpent(toFixedHex(input.nullifierHash)); + isSpent.should.be.equal(false); + // Uncomment to measure gas usage + // gas = await tornado.withdraw.estimateGas(proof, publicSignals, { from: relayer, gasPrice: '0' }) + // console.log('withdraw gas:', gas) + const args = [ + toFixedHex(input.root), + toFixedHex(input.nullifierHash), + toFixedHex(input.recipient, 20), + toFixedHex(input.relayer, 20), + toFixedHex(input.fee), + toFixedHex(input.refund), + ]; + const { logs } = await tornado.withdraw(proof, ...args, { + value: refund, + from: relayer, + gasPrice: "0", + }); + + const balanceTornadoAfter = await token.balanceOf(tornado.address); + const balanceRelayerAfter = await token.balanceOf(relayer); + const ethBalanceOperatorAfter = await web3.eth.getBalance(operator); + const balanceRecieverAfter = await token.balanceOf( + toFixedHex(recipient, 20) + ); + const ethBalanceRecieverAfter = await web3.eth.getBalance( + toFixedHex(recipient, 20) + ); + const ethBalanceRelayerAfter = await web3.eth.getBalance(relayer); + const balanceFeeToAfter = await token.balanceOf(accounts[5]); + const feeBN = toBN(fee.toString()); + const feeToFee = toBN(tokenDenomination).div(toBN(200)); + balanceTornadoAfter.should.be.eq.BN( + toBN(balanceTornadoBefore).sub(toBN(tokenDenomination)) + ); + balanceRelayerAfter.should.be.eq.BN( + toBN(balanceRelayerBefore).add(feeBN) + ); + balanceRecieverAfter.should.be.eq.BN( + toBN(balanceRecieverBefore).add( + toBN(tokenDenomination).sub(feeBN).sub(feeToFee) + ) + ); + + ethBalanceOperatorAfter.should.be.eq.BN(toBN(ethBalanceOperatorBefore)); + ethBalanceRecieverAfter.should.be.eq.BN( + toBN(ethBalanceRecieverBefore).add(toBN(refund)) + ); + ethBalanceRelayerAfter.should.be.eq.BN( + toBN(ethBalanceRelayerBefore).sub(toBN(refund)) + ); + + balanceFeeToAfter.sub(balanceFeeToBefore).should.be.eq.BN(feeToFee); + + logs[0].event.should.be.equal("Withdrawal"); + logs[0].args.nullifierHash.should.be.equal( + toFixedHex(input.nullifierHash) + ); + logs[0].args.relayer.should.be.eq.BN(relayer); + logs[0].args.fee.should.be.eq.BN(feeBN); + isSpent = await tornado.isSpent(toFixedHex(input.nullifierHash)); + isSpent.should.be.equal(true); + }); + it('should return refund to the relayer is case of fail', async () => { const deposit = generateDeposit() const user = accounts[4] diff --git a/test/ETHTornado.test.js b/test/ETHTornado.test.js deleted file mode 100644 index 479af7d..0000000 --- a/test/ETHTornado.test.js +++ /dev/null @@ -1,592 +0,0 @@ -/* global artifacts, web3, contract */ -require('chai') - .use(require('bn-chai')(web3.utils.BN)) - .use(require('chai-as-promised')) - .should() -const fs = require('fs') - -const { toBN, randomHex } = require('web3-utils') -const { takeSnapshot, revertSnapshot } = require('../lib/ganacheHelper') - -const Tornado = artifacts.require('./ETHTornado.sol') -const { ETH_AMOUNT, MERKLE_TREE_HEIGHT } = process.env - -const websnarkUtils = require('websnark/src/utils') -const buildGroth16 = require('websnark/src/groth16') -const stringifyBigInts = require('websnark/tools/stringifybigint').stringifyBigInts -const unstringifyBigInts2 = require('snarkjs/src/stringifybigint').unstringifyBigInts -const snarkjs = require('snarkjs') -const bigInt = snarkjs.bigInt -const crypto = require('crypto') -const circomlib = require('circomlib') -const MerkleTree = require('../lib/MerkleTree') - -const rbigint = (nbytes) => snarkjs.bigInt.leBuff2int(crypto.randomBytes(nbytes)) -const pedersenHash = (data) => circomlib.babyJub.unpackPoint(circomlib.pedersenHash.hash(data))[0] -const toFixedHex = (number, length = 32) => '0x' + bigInt(number).toString(16).padStart(length * 2, '0') -const getRandomRecipient = () => rbigint(20) - -function generateDeposit() { - let deposit = { - secret: rbigint(31), - nullifier: rbigint(31), - } - const preimage = Buffer.concat([deposit.nullifier.leInt2Buff(31), deposit.secret.leInt2Buff(31)]) - deposit.commitment = pedersenHash(preimage) - return deposit -} - -// eslint-disable-next-line no-unused-vars -function BNArrayToStringArray(array) { - const arrayToPrint = [] - array.forEach(item => { - arrayToPrint.push(item.toString()) - }) - return arrayToPrint -} - -function snarkVerify(proof) { - proof = unstringifyBigInts2(proof) - const verification_key = unstringifyBigInts2(require('../build/circuits/withdraw_verification_key.json')) - return snarkjs['groth'].isValid(verification_key, proof, proof.publicSignals) -} - -contract('ETHTornado', accounts => { - let tornado - const sender = accounts[0] - const operator = accounts[0] - const levels = MERKLE_TREE_HEIGHT || 16 - const value = ETH_AMOUNT || '1000000000000000000' // 1 ether - let snapshotId - let prefix = 'test' - let tree - const fee = bigInt(ETH_AMOUNT).shr(1) || bigInt(1e17) - const refund = bigInt(0) - const recipient = getRandomRecipient() - const relayer = accounts[1] - let groth16 - let circuit - let proving_key - - before(async () => { - tree = new MerkleTree( - levels, - null, - prefix, - ) - tornado = await Tornado.deployed() - snapshotId = await takeSnapshot() - groth16 = await buildGroth16() - circuit = require('../build/circuits/withdraw.json') - proving_key = fs.readFileSync('build/circuits/withdraw_proving_key.bin').buffer - }) - - describe('#constructor', () => { - it('should initialize', async () => { - const etherDenomination = await tornado.denomination() - etherDenomination.should.be.eq.BN(toBN(value)) - }) - }) - - describe('#deposit', () => { - it('should emit event', async () => { - let commitment = toFixedHex(42) - let { logs } = await tornado.deposit(commitment, { value, from: sender }) - - logs[0].event.should.be.equal('Deposit') - logs[0].args.commitment.should.be.equal(commitment) - logs[0].args.leafIndex.should.be.eq.BN(0) - - commitment = toFixedHex(12); - ({ logs } = await tornado.deposit(commitment, { value, from: accounts[2] })) - - logs[0].event.should.be.equal('Deposit') - logs[0].args.commitment.should.be.equal(commitment) - logs[0].args.leafIndex.should.be.eq.BN(1) - }) - - it('should throw if there is a such commitment', async () => { - const commitment = toFixedHex(42) - await tornado.deposit(commitment, { value, from: sender }).should.be.fulfilled - const error = await tornado.deposit(commitment, { value, from: sender }).should.be.rejected - error.reason.should.be.equal('The commitment has been submitted') - }) - }) - - describe('snark proof verification on js side', () => { - it('should detect tampering', async () => { - const deposit = generateDeposit() - await tree.insert(deposit.commitment) - const { root, path_elements, path_index } = await tree.path(0) - - const input = stringifyBigInts({ - root, - nullifierHash: pedersenHash(deposit.nullifier.leInt2Buff(31)), - nullifier: deposit.nullifier, - relayer: operator, - recipient, - fee, - refund, - secret: deposit.secret, - pathElements: path_elements, - pathIndices: path_index, - }) - - let proofData = await websnarkUtils.genWitnessAndProve(groth16, input, circuit, proving_key) - const originalProof = JSON.parse(JSON.stringify(proofData)) - let result = snarkVerify(proofData) - result.should.be.equal(true) - - // nullifier - proofData.publicSignals[1] = '133792158246920651341275668520530514036799294649489851421007411546007850802' - result = snarkVerify(proofData) - result.should.be.equal(false) - proofData = originalProof - - // try to cheat with recipient - proofData.publicSignals[2] = '133738360804642228759657445999390850076318544422' - result = snarkVerify(proofData) - result.should.be.equal(false) - proofData = originalProof - - // fee - proofData.publicSignals[3] = '1337100000000000000000' - result = snarkVerify(proofData) - result.should.be.equal(false) - proofData = originalProof - }) - }) - - describe('#withdraw', () => { - it('should work', async () => { - const deposit = generateDeposit() - const user = accounts[4] - await tree.insert(deposit.commitment) - - const balanceUserBefore = await web3.eth.getBalance(user) - - // Uncomment to measure gas usage - // let gas = await tornado.deposit.estimateGas(toBN(deposit.commitment.toString()), { value, from: user, gasPrice: '0' }) - // console.log('deposit gas:', gas) - await tornado.deposit(toFixedHex(deposit.commitment), { value, from: user, gasPrice: '0' }) - - const balanceUserAfter = await web3.eth.getBalance(user) - balanceUserAfter.should.be.eq.BN(toBN(balanceUserBefore).sub(toBN(value))) - - const { root, path_elements, path_index } = await tree.path(0) - - // Circuit input - const input = stringifyBigInts({ - // public - root, - nullifierHash: pedersenHash(deposit.nullifier.leInt2Buff(31)), - relayer: operator, - recipient, - fee, - refund, - - // private - nullifier: deposit.nullifier, - secret: deposit.secret, - pathElements: path_elements, - pathIndices: path_index, - }) - - - const proofData = await websnarkUtils.genWitnessAndProve(groth16, input, circuit, proving_key) - const { proof } = websnarkUtils.toSolidityInput(proofData) - - const balanceTornadoBefore = await web3.eth.getBalance(tornado.address) - const balanceRelayerBefore = await web3.eth.getBalance(relayer) - const balanceOperatorBefore = await web3.eth.getBalance(operator) - const balanceRecieverBefore = await web3.eth.getBalance(toFixedHex(recipient, 20)) - let isSpent = await tornado.isSpent(toFixedHex(input.nullifierHash)) - isSpent.should.be.equal(false) - - // Uncomment to measure gas usage - // gas = await tornado.withdraw.estimateGas(proof, publicSignals, { from: relayer, gasPrice: '0' }) - // console.log('withdraw gas:', gas) - const args = [ - toFixedHex(input.root), - toFixedHex(input.nullifierHash), - toFixedHex(input.recipient, 20), - toFixedHex(input.relayer, 20), - toFixedHex(input.fee), - toFixedHex(input.refund) - ] - const { logs } = await tornado.withdraw(proof, ...args, { from: relayer, gasPrice: '0' }) - - const balanceTornadoAfter = await web3.eth.getBalance(tornado.address) - const balanceRelayerAfter = await web3.eth.getBalance(relayer) - const balanceOperatorAfter = await web3.eth.getBalance(operator) - const balanceRecieverAfter = await web3.eth.getBalance(toFixedHex(recipient, 20)) - const feeBN = toBN(fee.toString()) - balanceTornadoAfter.should.be.eq.BN(toBN(balanceTornadoBefore).sub(toBN(value))) - balanceRelayerAfter.should.be.eq.BN(toBN(balanceRelayerBefore)) - balanceOperatorAfter.should.be.eq.BN(toBN(balanceOperatorBefore).add(feeBN)) - balanceRecieverAfter.should.be.eq.BN(toBN(balanceRecieverBefore).add(toBN(value)).sub(feeBN)) - - - logs[0].event.should.be.equal('Withdrawal') - logs[0].args.nullifierHash.should.be.equal(toFixedHex(input.nullifierHash)) - logs[0].args.relayer.should.be.eq.BN(operator) - logs[0].args.fee.should.be.eq.BN(feeBN) - isSpent = await tornado.isSpent(toFixedHex(input.nullifierHash)) - isSpent.should.be.equal(true) - }) - - it('should prevent double spend', async () => { - const deposit = generateDeposit() - await tree.insert(deposit.commitment) - await tornado.deposit(toFixedHex(deposit.commitment), { value, from: sender }) - - const { root, path_elements, path_index } = await tree.path(0) - - const input = stringifyBigInts({ - root, - nullifierHash: pedersenHash(deposit.nullifier.leInt2Buff(31)), - nullifier: deposit.nullifier, - relayer: operator, - recipient, - fee, - refund, - secret: deposit.secret, - pathElements: path_elements, - pathIndices: path_index, - }) - const proofData = await websnarkUtils.genWitnessAndProve(groth16, input, circuit, proving_key) - const { proof } = websnarkUtils.toSolidityInput(proofData) - const args = [ - toFixedHex(input.root), - toFixedHex(input.nullifierHash), - toFixedHex(input.recipient, 20), - toFixedHex(input.relayer, 20), - toFixedHex(input.fee), - toFixedHex(input.refund) - ] - await tornado.withdraw(proof, ...args, { from: relayer }).should.be.fulfilled - const error = await tornado.withdraw(proof, ...args, { from: relayer }).should.be.rejected - error.reason.should.be.equal('The note has been already spent') - }) - - it('should prevent double spend with overflow', async () => { - const deposit = generateDeposit() - await tree.insert(deposit.commitment) - await tornado.deposit(toFixedHex(deposit.commitment), { value, from: sender }) - - const { root, path_elements, path_index } = await tree.path(0) - - const input = stringifyBigInts({ - root, - nullifierHash: pedersenHash(deposit.nullifier.leInt2Buff(31)), - nullifier: deposit.nullifier, - relayer: operator, - recipient, - fee, - refund, - secret: deposit.secret, - pathElements: path_elements, - pathIndices: path_index, - }) - const proofData = await websnarkUtils.genWitnessAndProve(groth16, input, circuit, proving_key) - const { proof } = websnarkUtils.toSolidityInput(proofData) - const args = [ - toFixedHex(input.root), - toFixedHex(toBN(input.nullifierHash).add(toBN('21888242871839275222246405745257275088548364400416034343698204186575808495617'))), - toFixedHex(input.recipient, 20), - toFixedHex(input.relayer, 20), - toFixedHex(input.fee), - toFixedHex(input.refund) - ] - const error = await tornado.withdraw(proof, ...args, { from: relayer }).should.be.rejected - error.reason.should.be.equal('verifier-gte-snark-scalar-field') - }) - - it('fee should be less or equal transfer value', async () => { - const deposit = generateDeposit() - await tree.insert(deposit.commitment) - await tornado.deposit(toFixedHex(deposit.commitment), { value, from: sender }) - - const { root, path_elements, path_index } = await tree.path(0) - const largeFee = bigInt(value).add(bigInt(1)) - const input = stringifyBigInts({ - root, - nullifierHash: pedersenHash(deposit.nullifier.leInt2Buff(31)), - nullifier: deposit.nullifier, - relayer: operator, - recipient, - fee: largeFee, - refund, - secret: deposit.secret, - pathElements: path_elements, - pathIndices: path_index, - }) - - const proofData = await websnarkUtils.genWitnessAndProve(groth16, input, circuit, proving_key) - const { proof } = websnarkUtils.toSolidityInput(proofData) - const args = [ - toFixedHex(input.root), - toFixedHex(input.nullifierHash), - toFixedHex(input.recipient, 20), - toFixedHex(input.relayer, 20), - toFixedHex(input.fee), - toFixedHex(input.refund) - ] - const error = await tornado.withdraw(proof, ...args, { from: relayer }).should.be.rejected - error.reason.should.be.equal('Fee exceeds transfer value') - }) - - it('should throw for corrupted merkle tree root', async () => { - const deposit = generateDeposit() - await tree.insert(deposit.commitment) - await tornado.deposit(toFixedHex(deposit.commitment), { value, from: sender }) - - const { root, path_elements, path_index } = await tree.path(0) - - const input = stringifyBigInts({ - nullifierHash: pedersenHash(deposit.nullifier.leInt2Buff(31)), - root, - nullifier: deposit.nullifier, - relayer: operator, - recipient, - fee, - refund, - secret: deposit.secret, - pathElements: path_elements, - pathIndices: path_index, - }) - - const proofData = await websnarkUtils.genWitnessAndProve(groth16, input, circuit, proving_key) - const { proof } = websnarkUtils.toSolidityInput(proofData) - - const args = [ - toFixedHex(randomHex(32)), - toFixedHex(input.nullifierHash), - toFixedHex(input.recipient, 20), - toFixedHex(input.relayer, 20), - toFixedHex(input.fee), - toFixedHex(input.refund) - ] - const error = await tornado.withdraw(proof, ...args, { from: relayer }).should.be.rejected - error.reason.should.be.equal('Cannot find your merkle root') - }) - - it('should reject with tampered public inputs', async () => { - const deposit = generateDeposit() - await tree.insert(deposit.commitment) - await tornado.deposit(toFixedHex(deposit.commitment), { value, from: sender }) - - let { root, path_elements, path_index } = await tree.path(0) - - const input = stringifyBigInts({ - root, - nullifierHash: pedersenHash(deposit.nullifier.leInt2Buff(31)), - nullifier: deposit.nullifier, - relayer: operator, - recipient, - fee, - refund, - secret: deposit.secret, - pathElements: path_elements, - pathIndices: path_index, - }) - const proofData = await websnarkUtils.genWitnessAndProve(groth16, input, circuit, proving_key) - let { proof } = websnarkUtils.toSolidityInput(proofData) - const args = [ - toFixedHex(input.root), - toFixedHex(input.nullifierHash), - toFixedHex(input.recipient, 20), - toFixedHex(input.relayer, 20), - toFixedHex(input.fee), - toFixedHex(input.refund) - ] - let incorrectArgs - const originalProof = proof.slice() - - // recipient - incorrectArgs = [ - toFixedHex(input.root), - toFixedHex(input.nullifierHash), - toFixedHex('0x0000000000000000000000007a1f9131357404ef86d7c38dbffed2da70321337', 20), - toFixedHex(input.relayer, 20), - toFixedHex(input.fee), - toFixedHex(input.refund) - ] - let error = await tornado.withdraw(proof, ...incorrectArgs, { from: relayer }).should.be.rejected - error.reason.should.be.equal('Invalid withdraw proof') - - // fee - incorrectArgs = [ - toFixedHex(input.root), - toFixedHex(input.nullifierHash), - toFixedHex(input.recipient, 20), - toFixedHex(input.relayer, 20), - toFixedHex('0x000000000000000000000000000000000000000000000000015345785d8a0000'), - toFixedHex(input.refund) - ] - error = await tornado.withdraw(proof, ...incorrectArgs, { from: relayer }).should.be.rejected - error.reason.should.be.equal('Invalid withdraw proof') - - // nullifier - incorrectArgs = [ - toFixedHex(input.root), - toFixedHex('0x00abdfc78211f8807b9c6504a6e537e71b8788b2f529a95f1399ce124a8642ad'), - toFixedHex(input.recipient, 20), - toFixedHex(input.relayer, 20), - toFixedHex(input.fee), - toFixedHex(input.refund) - ] - error = await tornado.withdraw(proof, ...incorrectArgs, { from: relayer }).should.be.rejected - error.reason.should.be.equal('Invalid withdraw proof') - - // proof itself - proof = '0xbeef' + proof.substr(6) - await tornado.withdraw(proof, ...args, { from: relayer }).should.be.rejected - - // should work with original values - await tornado.withdraw(originalProof, ...args, { from: relayer }).should.be.fulfilled - }) - - it('should reject with non zero refund', async () => { - const deposit = generateDeposit() - await tree.insert(deposit.commitment) - await tornado.deposit(toFixedHex(deposit.commitment), { value, from: sender }) - - const { root, path_elements, path_index } = await tree.path(0) - - const input = stringifyBigInts({ - nullifierHash: pedersenHash(deposit.nullifier.leInt2Buff(31)), - root, - nullifier: deposit.nullifier, - relayer: operator, - recipient, - fee, - refund: bigInt(1), - secret: deposit.secret, - pathElements: path_elements, - pathIndices: path_index, - }) - - const proofData = await websnarkUtils.genWitnessAndProve(groth16, input, circuit, proving_key) - const { proof } = websnarkUtils.toSolidityInput(proofData) - - const args = [ - toFixedHex(input.root), - toFixedHex(input.nullifierHash), - toFixedHex(input.recipient, 20), - toFixedHex(input.relayer, 20), - toFixedHex(input.fee), - toFixedHex(input.refund) - ] - const error = await tornado.withdraw(proof, ...args, { from: relayer }).should.be.rejected - error.reason.should.be.equal('Refund value is supposed to be zero for ETH instance') - }) - }) - - describe('#changeOperator', () => { - it('should work', async () => { - let operator = await tornado.operator() - operator.should.be.equal(sender) - - const newOperator = accounts[7] - await tornado.changeOperator(newOperator).should.be.fulfilled - - operator = await tornado.operator() - operator.should.be.equal(newOperator) - }) - - it('cannot change from different address', async () => { - let operator = await tornado.operator() - operator.should.be.equal(sender) - - const newOperator = accounts[7] - const error = await tornado.changeOperator(newOperator, { from: accounts[7] }).should.be.rejected - error.reason.should.be.equal('Only operator can call this function.') - - }) - }) - - describe('#updateVerifier', () => { - it('should work', async () => { - let operator = await tornado.operator() - operator.should.be.equal(sender) - - const newVerifier = accounts[7] - await tornado.updateVerifier(newVerifier).should.be.fulfilled - - const verifier = await tornado.verifier() - verifier.should.be.equal(newVerifier) - }) - - it('cannot change from different address', async () => { - let operator = await tornado.operator() - operator.should.be.equal(sender) - - const newVerifier = accounts[7] - const error = await tornado.updateVerifier(newVerifier, { from: accounts[7] }).should.be.rejected - error.reason.should.be.equal('Only operator can call this function.') - - }) - }) - - describe('#isSpent', () => { - it('should work', async () => { - const deposit1 = generateDeposit() - const deposit2 = generateDeposit() - await tree.insert(deposit1.commitment) - await tree.insert(deposit2.commitment) - await tornado.deposit(toFixedHex(deposit1.commitment), { value, gasPrice: '0' }) - await tornado.deposit(toFixedHex(deposit2.commitment), { value, gasPrice: '0' }) - - const { root, path_elements, path_index } = await tree.path(1) - - // Circuit input - const input = stringifyBigInts({ - // public - root, - nullifierHash: pedersenHash(deposit2.nullifier.leInt2Buff(31)), - relayer: operator, - recipient, - fee, - refund, - - // private - nullifier: deposit2.nullifier, - secret: deposit2.secret, - pathElements: path_elements, - pathIndices: path_index, - }) - - - const proofData = await websnarkUtils.genWitnessAndProve(groth16, input, circuit, proving_key) - const { proof } = websnarkUtils.toSolidityInput(proofData) - - const args = [ - toFixedHex(input.root), - toFixedHex(input.nullifierHash), - toFixedHex(input.recipient, 20), - toFixedHex(input.relayer, 20), - toFixedHex(input.fee), - toFixedHex(input.refund) - ] - - await tornado.withdraw(proof, ...args, { from: relayer, gasPrice: '0' }) - - const nullifierHash1 = toFixedHex(pedersenHash(deposit1.nullifier.leInt2Buff(31))) - const nullifierHash2 = toFixedHex(pedersenHash(deposit2.nullifier.leInt2Buff(31))) - const spentArray = await tornado.isSpentArray([nullifierHash1, nullifierHash2]) - spentArray.should.be.deep.equal([false, true]) - }) - }) - - afterEach(async () => { - await revertSnapshot(snapshotId.result) - // eslint-disable-next-line require-atomic-updates - snapshotId = await takeSnapshot() - tree = new MerkleTree( - levels, - null, - prefix, - ) - }) -}) diff --git a/truffle-config.js b/truffle-config.js index fe483e5..82a0e00 100644 --- a/truffle-config.js +++ b/truffle-config.js @@ -10,6 +10,7 @@ const path = require('path') const web3 = new Web3(process.env.RPC_URL) const kit = ContractKit.newKitFromWeb3(web3) kit.addAccount(process.env.PRIVATE_KEY) +// const kit = Kit.newKit('https://forno.celo.org') // mainnet endpoint // const infuraKey = "fj4jll3k....."; // @@ -84,11 +85,15 @@ module.exports = { // CELO networks alfajores: { provider: kit.web3.currentProvider, - network_id: 44787 + network_id: 44787, + gas: 6000000, + gasPrice: utils.toWei('0.1', 'gwei'), }, mainnet: { provider: kit.web3.currentProvider, - network_id: 42220 + network_id: 42220, + gas: 6000000, + gasPrice: utils.toWei('0.1', 'gwei'), } // Useful for private networks