UNPKG

sorted-doubly-ll

Version:
598 lines 234 kB
{ "contractName": "PublicSortedDoublyLL", "abi": [ { "constant": true, "inputs": [], "name": "updater", "outputs": [ { "name": "", "type": "address" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": false, "inputs": [ { "name": "_updater", "type": "address" }, { "name": "_maxSize", "type": "uint256" } ], "name": "initialize", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": false, "inputs": [ { "name": "_updater", "type": "address" } ], "name": "setUpdater", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": false, "inputs": [ { "name": "_maxSize", "type": "uint256" } ], "name": "setMaxSize", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": false, "inputs": [ { "name": "_id", "type": "address" }, { "name": "_key", "type": "uint256" }, { "name": "_prevId", "type": "address" }, { "name": "_nextId", "type": "address" } ], "name": "insert", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": false, "inputs": [ { "name": "_id", "type": "address" } ], "name": "remove", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": false, "inputs": [ { "name": "_id", "type": "address" }, { "name": "_newKey", "type": "uint256" }, { "name": "_prevId", "type": "address" }, { "name": "_nextId", "type": "address" } ], "name": "updateKey", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": true, "inputs": [ { "name": "_id", "type": "address" } ], "name": "contains", "outputs": [ { "name": "", "type": "bool" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [], "name": "getSize", "outputs": [ { "name": "", "type": "uint256" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [], "name": "getMaxSize", "outputs": [ { "name": "", "type": "uint256" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [ { "name": "_id", "type": "address" } ], "name": "getKey", "outputs": [ { "name": "", "type": "uint256" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [], "name": "getFirst", "outputs": [ { "name": "", "type": "address" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [], "name": "getLast", "outputs": [ { "name": "", "type": "address" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [ { "name": "_id", "type": "address" } ], "name": "getNext", "outputs": [ { "name": "", "type": "address" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [ { "name": "_id", "type": "address" } ], "name": "getPrev", "outputs": [ { "name": "", "type": "address" } ], "payable": false, "stateMutability": "view", "type": "function" } ], "bytecode": "0x608060405234801561001057600080fd5b506113d7806100206000396000f3fe6080604052600436106100da5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631e22314381146100df57806329092d0e146101105780633855323f1461014557806346f7cf871461018e5780634d622831146101d75780635dbe47e8146101ec57806363e1d57c14610233578063765e01591461025a578063816e117c1461028d57806393790f44146102b75780639d54f419146102ea578063b72703ac1461031d578063cd6dc68714610350578063de8fa43114610389578063df034cd01461039e575b600080fd5b3480156100eb57600080fd5b506100f46103b3565b60408051600160a060020a039092168252519081900360200190f35b34801561011c57600080fd5b506101436004803603602081101561013357600080fd5b5035600160a060020a03166103c4565b005b34801561015157600080fd5b506101436004803603608081101561016857600080fd5b50600160a060020a03813581169160208101359160408201358116916060013516610428565b34801561019a57600080fd5b50610143600480360360808110156101b157600080fd5b50600160a060020a03813581169160208101359160408201358116916060013516610492565b3480156101e357600080fd5b506100f46104f6565b3480156101f857600080fd5b5061021f6004803603602081101561020f57600080fd5b5035600160a060020a0316610502565b604080519115158252519081900360200190f35b34801561023f57600080fd5b5061024861051b565b60408051918252519081900360200190f35b34801561026657600080fd5b506100f46004803603602081101561027d57600080fd5b5035600160a060020a0316610521565b34801561029957600080fd5b50610143600480360360208110156102b057600080fd5b5035610534565b3480156102c357600080fd5b50610248600480360360208110156102da57600080fd5b5035600160a060020a0316610595565b3480156102f657600080fd5b506101436004803603602081101561030d57600080fd5b5035600160a060020a03166105a8565b34801561032957600080fd5b506100f46004803603602081101561034057600080fd5b5035600160a060020a031661061a565b34801561035c57600080fd5b506101436004803603604081101561037357600080fd5b50600160a060020a03813516906020013561062d565b34801561039557600080fd5b50610248610732565b3480156103aa57600080fd5b506100f461073e565b60006103bf603361074d565b905090565b603854600160a060020a03163314610414576040805160e560020a62461bcd028152602060048201526018602482015260008051602061138c833981519152604482015290519081900360640190fd5b61042560338263ffffffff61075a16565b50565b603854600160a060020a03163314610478576040805160e560020a62461bcd028152602060048201526018602482015260008051602061138c833981519152604482015290519081900360640190fd5b61048c60338585858563ffffffff61099816565b50505050565b603854600160a060020a031633146104e2576040805160e560020a62461bcd028152602060048201526018602482015260008051602061138c833981519152604482015290519081900360640190fd5b61048c60338585858563ffffffff610a4516565b60006103bf6033610df5565b600061051560338363ffffffff610e0516565b92915050565b60355490565b600061051560338363ffffffff610e2516565b603854600160a060020a03163314610584576040805160e560020a62461bcd028152602060048201526018602482015260008051602061138c833981519152604482015290519081900360640190fd5b61042560338263ffffffff610e4b16565b600061051560338363ffffffff610ed416565b603854600160a060020a031633146105f8576040805160e560020a62461bcd028152602060048201526018602482015260008051602061138c833981519152604482015290519081900360640190fd5b60388054600160a060020a031916600160a060020a0392909216919091179055565b600061051560338363ffffffff610ef316565b600054610100900460ff16806106465750610646610f19565b80610654575060005460ff16155b15156106d0576040805160e560020a62461bcd02815260206004820152602e60248201527f436f6e747261637420696e7374616e63652068617320616c726561647920626560448201527f656e20696e697469616c697a6564000000000000000000000000000000000000606482015290519081900360840190fd5b60008054600161010061ff00198316811760ff19169190911790925560388054600160a060020a031916600160a060020a0386161790550460ff16610716603383610e4b565b600080549115156101000261ff00199092169190911790555050565b60006103bf6033610f1f565b603854600160a060020a031681565b54600160a060020a031690565b6107648282610e05565b15156107e0576040805160e560020a62461bcd02815260206004820152602660248201527f63616e6e6f742072656d6f7465206e6f6465207468617420646f6573206e6f7460448201527f2065786973740000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b60018260030154111561091c578154600160a060020a038281169116141561084d57600160a060020a038181166000908152600484016020526040808220600101548554908416600160a060020a0319918216178087559093168252902060020180549091169055610917565b6001820154600160a060020a03828116911614156108b657600160a060020a0381811660009081526004840160205260408082206002015460018087018054928616600160a060020a031993841617908190559094168352912090910180549091169055610917565b600160a060020a0381811660009081526004840160205260408082206001808201805460029384018054881687528587209093018054918816600160a060020a03199283161790559154905486168552929093200180549190931691161790555b610938565b8154600160a060020a0319908116835560018301805490911690555b600160a060020a0381166000908152600483016020526040812090815560018082018054600160a060020a031990811690915560029092018054909216909155600383015461098c9163ffffffff610f2616565b82600301819055505050565b6109a28585610e05565b1515610a1e576040805160e560020a62461bcd02815260206004820152602660248201527f63616e6e6f7420757064617465206e6f6465207468617420646f6573206e6f7460448201527f2065786973740000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b610a28858561075a565b6000831115610a3e57610a3e8585858585610a45565b5050505050565b610a4e85610f3b565b15610aa3576040805160e560020a62461bcd02815260206004820152601e60248201527f63616e6e6f7420696e7365727420696e746f20612066756c6c206c6973740000604482015290519081900360640190fd5b610aad8585610e05565b15610b28576040805160e560020a62461bcd02815260206004820152602660248201527f63616e6e6f7420696e73657274206e6f6465207468617420616c72656164792060448201527f6578697374730000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a0384161515610bae576040805160e560020a62461bcd02815260206004820152602160248201527f63616e6e6f7420696e73657274206e6f646520776974682061206e756c6c206960448201527f6400000000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b60008311610c06576040805160e560020a62461bcd02815260206004820181905260248201527f63616e6e6f7420696e73657274206e6f64652077697468207a65726f206b6579604482015290519081900360640190fd5b8181610c1487868484610f4a565b1515610c2c57610c2687868484611092565b90925090505b600160a060020a03808716600090815260048901602052604090208690558216158015610c605750600160a060020a038116155b15610c92578654600160a060020a038716600160a060020a031991821681178955600189018054909216179055610dce565b600160a060020a0382161515610cfa578654600160a060020a03878116600081815260048b0160205260408082206001018054958516600160a060020a03199687161790558b5490931681529190912060020180548316821790558854909116178755610dce565b600160a060020a0381161515610d675760018781018054600160a060020a03898116600081815260048d0160205260408082206002018054958516600160a060020a0319968716179055855490931681529190912090930180548216841790558154169091179055610dce565b600160a060020a03808716600081815260048a01602052604080822060018082018054878916600160a060020a0319918216811790925560029384018054988b16988216891790559685528385209091018054871686179055835291200180549092161790555b6003870154610de490600163ffffffff6111b616565b876003018190555050505050505050565b60010154600160a060020a031690565b600160a060020a0316600090815260049190910160205260408120541190565b600160a060020a0380821660009081526004840160205260409020600101541692915050565b60028201548111610ecc576040805160e560020a62461bcd02815260206004820152602e60248201527f6e6577206d61782073697a65206d75737420626520677265617465722074686160448201527f6e206f6c64206d61782073697a65000000000000000000000000000000000000606482015290519081900360840190fd5b600290910155565b600160a060020a03166000908152600491909101602052604090205490565b600160a060020a0380821660009081526004840160205260409020600201541692915050565b303b1590565b6003015490565b600082821115610f3557600080fd5b50900390565b60028101546003909101541490565b6000600160a060020a038316158015610f6a5750600160a060020a038216155b15610f7f57610f78856111cf565b905061108a565b600160a060020a0383161515610fca578454600160a060020a038381169116148015610f78575050600160a060020a038116600090815260048501602052604090205483101561108a565b600160a060020a0382161515611018576001850154600160a060020a038481169116148015610f78575050600160a060020a038216600090815260048501602052604090205483111561108a565b600160a060020a03838116600090815260048701602052604090206001015481169083161480156110635750600160a060020a03831660009081526004860160205260409020548411155b8015610f78575050600160a060020a03811660009081526004850160205260409020548310155b949350505050565b6000808383600160a060020a038216156110df576110b08883610e05565b15806110d55750600160a060020a038216600090815260048901602052604090205487115b156110df57600091505b600160a060020a03811615611126576110f88882610e05565b158061111d5750600160a060020a038116600090815260048901602052604090205487105b15611126575060005b600160a060020a0382161580156111445750600160a060020a038116155b1561116c5787546111619089908990600160a060020a03166111d7565b9350935050506111ad565b600160a060020a0382161515611187576111618888836112b1565b600160a060020a03811615156111a2576111618888846111d7565b6111618888846111d7565b94509492505050565b6000828201838110156111c857600080fd5b9392505050565b600301541590565b82546000908190600160a060020a0384811691161480156112125750600160a060020a03831660009081526004860160205260409020548410155b15611222575060009050816112a9565b600160a060020a0380841660009081526004870160205260409020600101548491165b600160a060020a03821615801590611266575061126487878484610f4a565b155b156112a35750600160a060020a03908116600090815260048701602052604080822060019081015484168084529190922090910154909116611245565b90925090505b935093915050565b60018301546000908190600160a060020a0384811691161480156112ef5750600160a060020a03831660009081526004860160205260409020548411155b156112ff575081905060006112a9565b600160a060020a0380841660009081526004870160205260409020600201548491165b600160a060020a03821615801590611343575061134187878385610f4a565b155b156113805750600160a060020a03908116600090815260048701602052604080822060029081015484168084529190922090910154909116611322565b96909550935050505056fe73656e646572206973206e6f7420616e20757064617465720000000000000000a165627a7a723058200e9a0730c930ea2b9ae44bf77953b3fded795968cd11a6d5041eaca13d188f5f0029", "deployedBytecode": "0x6080604052600436106100da5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631e22314381146100df57806329092d0e146101105780633855323f1461014557806346f7cf871461018e5780634d622831146101d75780635dbe47e8146101ec57806363e1d57c14610233578063765e01591461025a578063816e117c1461028d57806393790f44146102b75780639d54f419146102ea578063b72703ac1461031d578063cd6dc68714610350578063de8fa43114610389578063df034cd01461039e575b600080fd5b3480156100eb57600080fd5b506100f46103b3565b60408051600160a060020a039092168252519081900360200190f35b34801561011c57600080fd5b506101436004803603602081101561013357600080fd5b5035600160a060020a03166103c4565b005b34801561015157600080fd5b506101436004803603608081101561016857600080fd5b50600160a060020a03813581169160208101359160408201358116916060013516610428565b34801561019a57600080fd5b50610143600480360360808110156101b157600080fd5b50600160a060020a03813581169160208101359160408201358116916060013516610492565b3480156101e357600080fd5b506100f46104f6565b3480156101f857600080fd5b5061021f6004803603602081101561020f57600080fd5b5035600160a060020a0316610502565b604080519115158252519081900360200190f35b34801561023f57600080fd5b5061024861051b565b60408051918252519081900360200190f35b34801561026657600080fd5b506100f46004803603602081101561027d57600080fd5b5035600160a060020a0316610521565b34801561029957600080fd5b50610143600480360360208110156102b057600080fd5b5035610534565b3480156102c357600080fd5b50610248600480360360208110156102da57600080fd5b5035600160a060020a0316610595565b3480156102f657600080fd5b506101436004803603602081101561030d57600080fd5b5035600160a060020a03166105a8565b34801561032957600080fd5b506100f46004803603602081101561034057600080fd5b5035600160a060020a031661061a565b34801561035c57600080fd5b506101436004803603604081101561037357600080fd5b50600160a060020a03813516906020013561062d565b34801561039557600080fd5b50610248610732565b3480156103aa57600080fd5b506100f461073e565b60006103bf603361074d565b905090565b603854600160a060020a03163314610414576040805160e560020a62461bcd028152602060048201526018602482015260008051602061138c833981519152604482015290519081900360640190fd5b61042560338263ffffffff61075a16565b50565b603854600160a060020a03163314610478576040805160e560020a62461bcd028152602060048201526018602482015260008051602061138c833981519152604482015290519081900360640190fd5b61048c60338585858563ffffffff61099816565b50505050565b603854600160a060020a031633146104e2576040805160e560020a62461bcd028152602060048201526018602482015260008051602061138c833981519152604482015290519081900360640190fd5b61048c60338585858563ffffffff610a4516565b60006103bf6033610df5565b600061051560338363ffffffff610e0516565b92915050565b60355490565b600061051560338363ffffffff610e2516565b603854600160a060020a03163314610584576040805160e560020a62461bcd028152602060048201526018602482015260008051602061138c833981519152604482015290519081900360640190fd5b61042560338263ffffffff610e4b16565b600061051560338363ffffffff610ed416565b603854600160a060020a031633146105f8576040805160e560020a62461bcd028152602060048201526018602482015260008051602061138c833981519152604482015290519081900360640190fd5b60388054600160a060020a031916600160a060020a0392909216919091179055565b600061051560338363ffffffff610ef316565b600054610100900460ff16806106465750610646610f19565b80610654575060005460ff16155b15156106d0576040805160e560020a62461bcd02815260206004820152602e60248201527f436f6e747261637420696e7374616e63652068617320616c726561647920626560448201527f656e20696e697469616c697a6564000000000000000000000000000000000000606482015290519081900360840190fd5b60008054600161010061ff00198316811760ff19169190911790925560388054600160a060020a031916600160a060020a0386161790550460ff16610716603383610e4b565b600080549115156101000261ff00199092169190911790555050565b60006103bf6033610f1f565b603854600160a060020a031681565b54600160a060020a031690565b6107648282610e05565b15156107e0576040805160e560020a62461bcd02815260206004820152602660248201527f63616e6e6f742072656d6f7465206e6f6465207468617420646f6573206e6f7460448201527f2065786973740000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b60018260030154111561091c578154600160a060020a038281169116141561084d57600160a060020a038181166000908152600484016020526040808220600101548554908416600160a060020a0319918216178087559093168252902060020180549091169055610917565b6001820154600160a060020a03828116911614156108b657600160a060020a0381811660009081526004840160205260408082206002015460018087018054928616600160a060020a031993841617908190559094168352912090910180549091169055610917565b600160a060020a0381811660009081526004840160205260408082206001808201805460029384018054881687528587209093018054918816600160a060020a03199283161790559154905486168552929093200180549190931691161790555b610938565b8154600160a060020a0319908116835560018301805490911690555b600160a060020a0381166000908152600483016020526040812090815560018082018054600160a060020a031990811690915560029092018054909216909155600383015461098c9163ffffffff610f2616565b82600301819055505050565b6109a28585610e05565b1515610a1e576040805160e560020a62461bcd02815260206004820152602660248201527f63616e6e6f7420757064617465206e6f6465207468617420646f6573206e6f7460448201527f2065786973740000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b610a28858561075a565b6000831115610a3e57610a3e8585858585610a45565b5050505050565b610a4e85610f3b565b15610aa3576040805160e560020a62461bcd02815260206004820152601e60248201527f63616e6e6f7420696e7365727420696e746f20612066756c6c206c6973740000604482015290519081900360640190fd5b610aad8585610e05565b15610b28576040805160e560020a62461bcd02815260206004820152602660248201527f63616e6e6f7420696e73657274206e6f6465207468617420616c72656164792060448201527f6578697374730000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a0384161515610bae576040805160e560020a62461bcd02815260206004820152602160248201527f63616e6e6f7420696e73657274206e6f646520776974682061206e756c6c206960448201527f6400000000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b60008311610c06576040805160e560020a62461bcd02815260206004820181905260248201527f63616e6e6f7420696e73657274206e6f64652077697468207a65726f206b6579604482015290519081900360640190fd5b8181610c1487868484610f4a565b1515610c2c57610c2687868484611092565b90925090505b600160a060020a03808716600090815260048901602052604090208690558216158015610c605750600160a060020a038116155b15610c92578654600160a060020a038716600160a060020a031991821681178955600189018054909216179055610dce565b600160a060020a0382161515610cfa578654600160a060020a03878116600081815260048b0160205260408082206001018054958516600160a060020a03199687161790558b5490931681529190912060020180548316821790558854909116178755610dce565b600160a060020a0381161515610d675760018781018054600160a060020a03898116600081815260048d0160205260408082206002018054958516600160a060020a0319968716179055855490931681529190912090930180548216841790558154169091179055610dce565b600160a060020a03808716600081815260048a01602052604080822060018082018054878916600160a060020a0319918216811790925560029384018054988b16988216891790559685528385209091018054871686179055835291200180549092161790555b6003870154610de490600163ffffffff6111b616565b876003018190555050505050505050565b60010154600160a060020a031690565b600160a060020a0316600090815260049190910160205260408120541190565b600160a060020a0380821660009081526004840160205260409020600101541692915050565b60028201548111610ecc576040805160e560020a62461bcd02815260206004820152602e60248201527f6e6577206d61782073697a65206d75737420626520677265617465722074686160448201527f6e206f6c64206d61782073697a65000000000000000000000000000000000000606482015290519081900360840190fd5b600290910155565b600160a060020a03166000908152600491909101602052604090205490565b600160a060020a0380821660009081526004840160205260409020600201541692915050565b303b1590565b6003015490565b600082821115610f3557600080fd5b50900390565b60028101546003909101541490565b6000600160a060020a038316158015610f6a5750600160a060020a038216155b15610f7f57610f78856111cf565b905061108a565b600160a060020a0383161515610fca578454600160a060020a038381169116148015610f78575050600160a060020a038116600090815260048501602052604090205483101561108a565b600160a060020a0382161515611018576001850154600160a060020a038481169116148015610f78575050600160a060020a038216600090815260048501602052604090205483111561108a565b600160a060020a03838116600090815260048701602052604090206001015481169083161480156110635750600160a060020a03831660009081526004860160205260409020548411155b8015610f78575050600160a060020a03811660009081526004850160205260409020548310155b949350505050565b6000808383600160a060020a038216156110df576110b08883610e05565b15806110d55750600160a060020a038216600090815260048901602052604090205487115b156110df57600091505b600160a060020a03811615611126576110f88882610e05565b158061111d5750600160a060020a038116600090815260048901602052604090205487105b15611126575060005b600160a060020a0382161580156111445750600160a060020a038116155b1561116c5787546111619089908990600160a060020a03166111d7565b9350935050506111ad565b600160a060020a0382161515611187576111618888836112b1565b600160a060020a03811615156111a2576111618888846111d7565b6111618888846111d7565b94509492505050565b6000828201838110156111c857600080fd5b9392505050565b600301541590565b82546000908190600160a060020a0384811691161480156112125750600160a060020a03831660009081526004860160205260409020548410155b15611222575060009050816112a9565b600160a060020a0380841660009081526004870160205260409020600101548491165b600160a060020a03821615801590611266575061126487878484610f4a565b155b156112a35750600160a060020a03908116600090815260048701602052604080822060019081015484168084529190922090910154909116611245565b90925090505b935093915050565b60018301546000908190600160a060020a0384811691161480156112ef5750600160a060020a03831660009081526004860160205260409020548411155b156112ff575081905060006112a9565b600160a060020a0380841660009081526004870160205260409020600201548491165b600160a060020a03821615801590611343575061134187878385610f4a565b155b156113805750600160a060020a03908116600090815260048701602052604080822060029081015484168084529190922090910154909116611322565b96909550935050505056fe73656e646572206973206e6f7420616e20757064617465720000000000000000a165627a7a723058200e9a0730c930ea2b9ae44bf77953b3fded795968cd11a6d5041eaca13d188f5f0029", "sourceMap": "103:2005:0:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;103:2005:0;;;;;;;", "deployedSourceMap": "103:2005:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1710:89;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1710:89:0;;;;;;;;-1:-1:-1;;;;;1710:89:0;;;;;;;;;;;;;;996:81;;8:9:-1;5:2;;;30:1;27;20:12;5:2;996:81:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;996:81:0;-1:-1:-1;;;;;996:81:0;;;;;1083:223;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1083:223:0;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;-1:-1;;;;;;1083:223:0;;;;;;;;;;;;;;;;;;;;;;;778:212;;8:9:-1;5:2;;;30:1;27;20:12;5:2;778:212:0;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;-1:-1;;;;;;778:212:0;;;;;;;;;;;;;;;;;;;;;;;1805:87;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1805:87:0;;;;1312:100;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1312:100:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1312:100:0;-1:-1:-1;;;;;1312:100:0;;;;;;;;;;;;;;;;;;;;;1511:88;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1511:88:0;;;;;;;;;;;;;;;;;;;;1898:101;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1898:101:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1898:101:0;-1:-1:-1;;;;;1898:101:0;;;673:99;;8:9:-1;5:2;;;30:1;27;20:12;5:2;673:99:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;673:99:0;;;1605;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1605:99:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1605:99:0;-1:-1:-1;;;;;1605:99:0;;;575:92;;8:9:-1;5:2;;;30:1;27;20:12;5:2;575:92:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;575:92:0;-1:-1:-1;;;;;575:92:0;;;2005:101;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2005:101:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2005:101:0;-1:-1:-1;;;;;2005:101:0;;;424:145;;8:9:-1;5:2;;;30:1;27;20:12;5:2;424:145:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;424:145:0;;;;;;;;;1418:87;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1418:87:0;;;;246:22;;8:9:-1;5:2;;;30:1;27;20:12;5:2;246:22:0;;;;1710:89;1751:7;1777:15;:4;:13;:15::i;:::-;1770:22;;1710:89;:::o;996:81::-;343:7;;-1:-1:-1;;;;;343:7:0;329:10;:21;308:92;;;;;-1:-1:-1;;;;;308:92:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;308:92:0;;;;;;;;;;;;;;;1054:16;:4;1066:3;1054:16;:11;:16;:::i;:::-;996:81;:::o;1083:223::-;343:7;;-1:-1:-1;;;;;343:7:0;329:10;:21;308:92;;;;;-1:-1:-1;;;;;308:92:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;308:92:0;;;;;;;;;;;;;;;1253:46;:4;1268:3;1273:7;1282;1291;1253:46;:14;:46;:::i;:::-;1083:223;;;;:::o;778:212::-;343:7;;-1:-1:-1;;;;;343:7:0;329:10;:21;308:92;;;;;-1:-1:-1;;;;;308:92:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;308:92:0;;;;;;;;;;;;;;;943:40;:4;955:3;960:4;966:7;975;943:40;:11;:40;:::i;1805:87::-;1845:7;1871:14;:4;:12;:14::i;1312:100::-;1364:4;1387:18;:4;1401:3;1387:18;:13;:18;:::i;:::-;1380:25;1312:100;-1:-1:-1;;1312:100:0:o;1511:88::-;1580:12;;1511:88;:::o;1898:101::-;1949:7;1975:17;:4;1988:3;1975:17;:12;:17;:::i;673:99::-;343:7;;-1:-1:-1;;;;;343:7:0;329:10;:21;308:92;;;;;-1:-1:-1;;;;;308:92:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;308:92:0;;;;;;;;;;;;;;;740:25;:4;756:8;740:25;:15;:25;:::i;1605:99::-;1655:7;1681:16;:4;1693:3;1681:16;:11;:16;:::i;575:92::-;343:7;;-1:-1:-1;;;;;343:7:0;329:10;:21;308:92;;;;;-1:-1:-1;;;;;308:92:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;308:92:0;;;;;;;;;;;;;;;642:7;:18;;-1:-1:-1;;;;;;642:18:0;-1:-1:-1;;;;;642:18:0;;;;;;;;;;575:92::o;2005:101::-;2056:7;2082:17;:4;2095:3;2082:17;:12;:17;:::i;424:145::-;1024:12:3;;;;;;;;:31;;;1040:15;:13;:15::i;:::-;1024:47;;;-1:-1:-1;1060:11:3;;;;1059:12;1024:47;1016:106;;;;;;;-1:-1:-1;;;;;1016:106:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1129:20;1152:12;;;;-1:-1:-1;;1170:19:3;;;;-1:-1:-1;;1195:18:3;;;;;;;;509:7:0;:18;;-1:-1:-1;;;;;;509:18:0;-1:-1:-1;;;;;509:18:0;;;;;1152:12:3;;;537:25:0;:4;553:8;537:15;:25::i;:::-;1228:12:3;:30;;;;;;;-1:-1:-1;;1228:30:3;;;;;;;;;-1:-1:-1;;424:145:0:o;1418:87::-;1458:7;1484:14;:4;:12;:14::i;246:22::-;;;-1:-1:-1;;;;;246:22:0;;:::o;8485:102:1:-;8571:9;-1:-1:-1;;;;;8571:9:1;;8485:102::o;4839:1564::-;4965:19;4974:4;4980:3;4965:8;:19::i;:::-;4944:104;;;;;;;-1:-1:-1;;;;;4944:104:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5075:1;5063:4;:9;;;:13;5059:1267;;;5156:9;;-1:-1:-1;;;;;5149:16:1;;;5156:9;;5149:16;5145:994;;;-1:-1:-1;;;;;5286:15:1;;;;;;;:10;;;:15;;;;;;:22;;;5274:34;;5286:22;;;-1:-1:-1;;;;;;5274:34:1;;;;;;;5393:9;;;5382:21;;;;:28;;:41;;;;;;;5145:994;;;5455:9;;;;-1:-1:-1;;;;;5448:16:1;;;5455:9;;5448:16;5444:695;;;-1:-1:-1;;;;;5589:15:1;;;;;;;:10;;;:15;;;;;;:22;;;;5577:9;;;:34;;5589:22;;;-1:-1:-1;;;;;;5577:34:1;;;;;;;;5696:9;;;5685:21;;;;:28;;;:41;;;;;;;5444:695;;;-1:-1:-1;;;;;5948:15:1;;;;;;;:10;;;:15;;;;;;:22;;;;;;5915;;;;;;;;5904:34;;;;;:41;;;:66;;5948:22;;;-1:-1:-1;;;;;;5904:66:1;;;;;;6102:22;;6069;;;;6058:34;;;;;;:41;:66;;6102:22;;;;6058:66;;;;;5444:695;5059:1267;;;6257:22;;-1:-1:-1;;;;;;6257:22:1;;;;;;6293:9;;:22;;;;;;;5059:1267;-1:-1:-1;;;;;6343:15:1;;;;;;:10;;;:15;;;;;6336:22;;;;;;;;;-1:-1:-1;;;;;;6336:22:1;;;;;;;;;;;;;;;;;;6380:9;;;;:16;;;:13;:16;:::i;:::-;6368:4;:9;;:28;;;;4839:1564;;:::o;6674:483::-;6854:19;6863:4;6869:3;6854:8;:19::i;:::-;6833:104;;;;;;;-1:-1:-1;;;;;6833:104:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6985:17;6992:4;6998:3;6985:6;:17::i;:::-;7027:1;7017:7;:11;7013:138;;;7096:44;7103:4;7109:3;7114:7;7123;7132;7096:6;:44::i;:::-;6674:483;;;;;:::o;2776:1974::-;2946:12;2953:4;2946:6;:12::i;:::-;2945:13;2924:90;;;;;-1:-1:-1;;;;;2924:90:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;3092:19;3101:4;3107:3;3092:8;:19::i;:::-;3091:20;3070:105;;;;;-1:-1:-1;;;;;3070:105:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3242:17:1;;;;3221:97;;;;;-1:-1:-1;;;;;3221:97:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3388:1;3381:8;;3360:87;;;;;-1:-1:-1;;;;;3360:87:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3475:7;3509;3532:47;3552:4;3558;3475:7;3509;3532:19;:47::i;:::-;3531:48;3527:270;;;3740:46;3759:4;3765;3771:6;3779;3740:18;:46::i;:::-;3721:65;;-1:-1:-1;3721:65:1;-1:-1:-1;3527:270:1;-1:-1:-1;;;;;3807:15:1;;;;;;;:10;;;:15;;;;;:26;;;3848:20;;;:44;;;;-1:-1:-1;;;;;;3872:20:1;;;3848:44;3844:861;;;3947:15;;-1:-1:-1;;;;;3947:15:1;;-1:-1:-1;;;;;;3947:15:1;;;;;;;;3976:9;;:15;;;;;;;;3844:861;;;-1:-1:-1;;;;;4012:20:1;;;4008:697;;;4123:9;;-1:-1:-1;;;;;4098:15:1;;;4123:9;4098:15;;;:10;;;:15;;;;;;4123:9;4098:22;:34;;4123:9;;;-1:-1:-1;;;;;;4098:34:1;;;;;;4157:9;;;;;4146:21;;;;;;:28;;:34;;;;;;;;4194:15;;;;;;;;4008:697;;;-1:-1:-1;;;;;4230:20:1;;;4226:479;;;4340:9;;;;;;-1:-1:-1;;;;;4315:15:1;;;4340:9;4315:15;;;:10;;;:15;;;;;;:22;;:34;;4340:9;;;-1:-1:-1;;;;;;4315:34:1;;;;;;4374:9;;;;;4363:21;;;;;;:28;;;:34;;;;;;;;4411:15;;;;;;;;4226:479;;;-1:-1:-1;;;;;4528:15:1;;;;;;;:10;;;:15;;;;;;:22;;;;:31;;;;;-1:-1:-1;;;;;;4528:31:1;;;;;;;;4573:22;;;;:31;;;;;;;;;;;;4618:18;;;;;;:25;;;:31;;;;;;;;4663:18;;;;:25;:31;;;;;;;;4226:479;4727:9;;;;:16;;4741:1;4727:16;:13;:16;:::i;:::-;4715:4;:9;;:28;;;;2776:1974;;;;;;;:::o;8683:101::-;8768:9;;;-1:-1:-1;;;;;8768:9:1;;8683:101::o;7273:209::-;-1:-1:-1;;;;;7452:15:1;7346:4;7452:15;;;:10;;;;;:15;;;;;:19;:23;;7273:209::o;8917:127::-;-1:-1:-1;;;;;9015:15:1;;;8989:7;9015:15;;;:10;;;:15;;;;;:22;;;;8917:127;;;;:::o;2252:282::-;2412:12;;;;2404:20;;2383:113;;;;;-1:-1:-1;;;;;2383:113:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2507:12;;;;:20;2252:282::o;8266:123::-;-1:-1:-1;;;;;8363:15:1;8337:7;8363:15;;;:10;;;;;:15;;;;;:19;;8266:123::o;9180:127::-;-1:-1:-1;;;;;9278:15:1;;;9252:7;9278:15;;;:10;;;:15;;;;;:22;;;;9180:127;;;;:::o;1349:467:3:-;1782:7;1770:20;1804:7;1349:467;:::o;7889:101:1:-;7974:9;;;;7889:101::o;1205:145:2:-;1263:7;1290:6;;;;1282:15;;;;;;-1:-1:-1;1319:5:2;;;1205:145::o;7542:113:1:-;7636:12;;;;7623:9;;;;;:25;;7542:113::o;9584:1030::-;9703:4;-1:-1:-1;;;;;9723:21:1;;;:46;;;;-1:-1:-1;;;;;;9748:21:1;;;9723:46;9719:889;;;9870:13;9878:4;9870:7;:13::i;:::-;9863:20;;;;9719:889;-1:-1:-1;;;;;9904:21:1;;;9900:708;;;10045:9;;-1:-1:-1;;;;;10045:20:1;;;:9;;:20;:55;;;;-1:-1:-1;;;;;;;10077:19:1;;;;;;:10;;;:19;;;;;:23;10069:31;;;10038:62;;9900:708;-1:-1:-1;;;;;10121:21:1;;;10117:491;;;10262:9;;;;-1:-1:-1;;;;;10262:20:1;;;:9;;:20;:55;;;;-1:-1:-1;;;;;;;10294:19:1;;;;;;:10;;;:19;;;;;:23;10286:31;;;10255:62;;10117:491;-1:-1:-1;;;;;10490:19:1;;;;;;;:10;;;:19;;;;;:26;;;;;:37;;;;:72;;;;-1:-1:-1;;;;;;10531:19:1;;;;;;:10;;;:19;;;;;:23;:31;-1:-1:-1;10531:31:1;10490:72;:107;;;;-1:-1:-1;;;;;;;10574:19:1;;;;;;:10;;;:19;;;;;:23;10566:31;;;10117:491;9584:1030;;;;;;:::o;12767:1387::-;12885:7;;12930;12964;-1:-1:-1;;;;;12986:20:1;;;12982:259;;13027:22;13036:4;13042:6;13027:8;:22::i;:::-;13026:23;:56;;;-1:-1:-1;;;;;;13060:18:1;;;;;;:10;;;:18;;;;;:22;13053:29;;13026:56;13022:209;;;13214:1;13197:19;;13022:209;-1:-1:-1;;;;;13255:20:1;;;13251:258;;13296:22;13305:4;13311:6;13296:8;:22::i;:::-;13295:23;:56;;;-1:-1:-1;;;;;;13329:18:1;;;;;;:10;;;:18;;;;;:22;13322:29;;13295:56;13291:208;;;-1:-1:-1;13482:1:1;13291:208;-1:-1:-1;;;;;13523:20:1;;;:44;;;;-1:-1:-1;;;;;;13547:20:1;;;13523:44;13519:629;;;13671:9;;13647:34;;13659:4;;13665;;-1:-1:-1;;;;;13671:9:1;13647:11;:34::i;:::-;13640:41;;;;;;;;13519:629;-1:-1:-1;;;;;13702:20:1;;;13698:450;;;13818:30;13829:4;13835;13841:6;13818:10;:30::i;13698:450::-;-1:-1:-1;;;;;13869:20:1;;;13865:283;;;13986:31;13998:4;14004;14010:6;13986:11;:31::i;13865:283::-;14106:31;14118:4;14124;14130:6;14106:11;:31::i;12767:1387::-;;;;;;;;:::o;1431:145:2:-;1489:7;1520:5;;;1543:6;;;;1535:15;;;;;;1568:1;1431:145;-1:-1:-1;;;1431:145:2:o;7716:103:1:-;7798:9;;;:14;;7716:103::o;10823:744::-;11036:9;;10918:7;;;;-1:-1:-1;;;;;11036:21:1;;;:9;;:21;:57;;;;-1:-1:-1;;;;;;11069:20:1;;;;;;:10;;;:20;;;;;:24;11061:32;;;11036:57;11032:117;;;-1:-1:-1;11125:1:1;;-1:-1:-1;11129:8:1;11109:29;;11032:117;-1:-1:-1;;;;;11211:18:1;;;11159:14;11211:18;;;:10;;;:18;;;;;:25;;;11176:8;;11211:25;11339:188;-1:-1:-1;;;;;11346:20:1;;;;;;:72;;;11371:47;11391:4;11397;11403:6;11411;11371:19;:47::i;:::-;11370:48;11346:72;11339:188;;;-1:-1:-1;;;;;;11443:18:1;;;;;;;:10;;;:18;;;;;;:25;;;;;;;11491:18;;;;;;;:25;;;;11443;;11491;11339:188;;;11545:6;;-1:-1:-1;11553:6:1;-1:-1:-1;10823:744:1;;;;;;;:::o;11776:741::-;11987:9;;;;11870:7;;;;-1:-1:-1;;;;;11987:21:1;;;:9;;:21;:57;;;;-1:-1:-1;;;;;;12020:20:1;;;;;;:10;;;:20;;;;;:24;12012:32;;;11987:57;11983:117;;;-1:-1:-1;12068:8:1;;-1:-1:-1;12086:1:1;12060:29;;11983:117;-1:-1:-1;;;;;12162:18:1;;;12110:14;12162:18;;;:10;;;:18;;;;;:25;;;12127:8;;12162:25;12289:188;-1:-1:-1;;;;;12296:20:1;;;;;;:72;;;12321:47;12341:4;12347;12353:6;12361;12321:19;:47::i;:::-;12320:48;12296:72;12289:188;;;-1:-1:-1;;;;;;12393:18:1;;;;;;;:10;;;:18;;;;;;:25;;;;;;;12441:18;;;;;;;:25;;;;12393;;12441;12289:188;;;12495:6;12503;;-1:-1:-1;11776:741:1;-1:-1:-1;;;;11776:741:1:o", "source": "pragma solidity 0.5.0;\n\nimport \"zos-lib/contracts/Initializable.sol\";\nimport \"./SortedDoublyLL.sol\";\n\n\ncontract PublicSortedDoublyLL is Initializable {\n using SortedDoublyLL for SortedDoublyLL.Data;\n\n SortedDoublyLL.Data internal list;\n address public updater;\n\n modifier onlyUpdater() {\n require(\n msg.sender == updater,\n \"sender is not an updater\"\n );\n _;\n }\n\n function initialize(address _updater, uint256 _maxSize) public initializer {\n updater = _updater;\n list.setMaxSize(_maxSize);\n }\n\n function setUpdater(address _updater) public onlyUpdater {\n updater = _updater;\n }\n\n function setMaxSize(uint256 _maxSize) public onlyUpdater {\n list.setMaxSize(_maxSize);\n }\n\n function insert(\n address _id,\n uint256 _key,\n address _prevId,\n address _nextId\n ) \n public\n onlyUpdater\n {\n list.insert(_id, _key, _prevId, _nextId);\n }\n\n function remove(address _id) public onlyUpdater {\n list.remove(_id);\n }\n\n function updateKey(\n address _id,\n uint256 _newKey,\n address _prevId,\n address _nextId\n )\n public\n onlyUpdater\n {\n list.updateKey(_id, _newKey, _prevId, _nextId);\n }\n\n function contains(address _id) public view returns (bool) {\n return list.contains(_id);\n }\n\n function getSize() public view returns (uint256) {\n return list.getSize();\n }\n\n function getMaxSize() public view returns (uint256) {\n return list.maxSize;\n }\n\n function getKey(address _id) public view returns (uint256) {\n return list.getKey(_id);\n }\n\n function getFirst() public view returns (address) {\n return list.getFirst();\n }\n\n function getLast() public view returns (address) {\n return list.getLast();\n }\n\n function getNext(address _id) public view returns (address) {\n return list.getNext(_id);\n }\n\n function getPrev(address _id) public view returns (address) {\n return list.getPrev(_id);\n }\n}", "sourcePath": "/Users/yondonfu/Development/livepeer/sorted-doubly-ll/packages/sorted-doubly-ll/contracts/PublicSortedDoublyLL.sol", "ast": { "absolutePath": "/Users/yondonfu/Development/livepeer/sorted-doubly-ll/packages/sorted-doubly-ll/contracts/PublicSortedDoublyLL.sol", "exportedSymbols": { "PublicSortedDoublyLL": [ 222 ] }, "id": 223, "nodeType": "SourceUnit", "nodes": [ { "id": 1, "literals": [ "solidity", "0.5", ".0" ], "nodeType": "PragmaDirective", "src": "0:22:0" }, { "absolutePath": "zos-lib/contracts/Initializable.sol", "file": "zos-lib/contracts/Initializable.sol", "id": 2, "nodeType": "ImportDirective", "scope": 223, "sourceUnit": 1392, "src": "24:45:0", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "/Users/yondonfu/Development/livepeer/sorted-doubly-ll/packages/sorted-doubly-ll/contracts/SortedDoublyLL.sol", "file": "./SortedDoublyLL.sol", "id": 3, "nodeType": "ImportDirective", "scope": 223, "sourceUnit": 1208, "src": "70:30:0", "symbolAliases": [], "unitAlias": "" }, { "baseContracts": [ { "arguments": null, "baseName": { "contractScope": null, "id": 4, "name": "Initializable", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 1391, "src": "136:13:0", "typeDescriptions": { "typeIdentifier": "t_contract$_Initializable_$1391", "typeString": "contract Initializable" } }, "id": 5, "nodeType": "InheritanceSpecifier", "src": "136:13:0" } ], "contractDependencies": [ 1391 ], "contractKind": "contract", "documentation": null, "fullyImplemented": true, "id": 222, "linearizedBaseContracts": [ 222, 1391 ], "name": "PublicSortedDoublyLL", "nodeType": "ContractDefinition", "nodes": [ { "id": 8, "libraryName": { "contractScope": null, "id": 6, "name": "SortedDoublyLL", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 1207, "src": "162:14:0", "typeDescriptions": { "typeIdentifier": "t_contract$_SortedDoublyLL_$1207", "typeString": "library SortedDoublyLL" } }, "nodeType": "UsingForDirective", "src": "156:45:0", "typeName": { "contractScope": null, "id": 7, "name": "SortedDoublyLL.Data", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 248, "src": "181:19:0", "typeDescriptions": { "typeIdentifier": "t_struct$_Data_$248_storage_ptr", "typeString": "struct SortedDoublyLL.Data" } } }, { "constant": false, "id": 10, "name": "list", "nodeType": "VariableDeclaration", "scope": 222, "src": "207:33:0", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_struct$_Data_$248_storage", "typeString": "struct SortedDoublyLL.Data" }, "typeName": { "contractScope": null, "id": 9, "name": "SortedDoublyLL.Data", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 248, "src": "207:19:0", "typeDescriptions": { "typeIdentifier": "t_struct$_Data_$248_storage_ptr", "typeString": "struct SortedDoublyLL.Data" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 12, "name": "updater", "nodeType": "VariableDeclaration", "scope": 222, "src": "246:22:0", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 11, "name": "address", "nodeType": "ElementaryTypeName", "src": "246:7:0", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "public" }, { "body": { "id": 23, "nodeType": "Block", "src": "298:120:0", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_address", "typeString": "address" }, "id": 18, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 15, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1406, "src": "329:3:0", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 16, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "329:10:0", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "argumentTypes": null, "id": 17, "name": "updater", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12, "src": "343:7:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "src": "329:21:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "argumentTypes": null, "hexValue": "73656e646572206973206e6f7420616e2075706461746572", "id": 19, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "364:26:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_cda2dbc11289b577cd7a18e7d569c2c0974899e523a9240b9b5251ccc4231687", "typeString": "literal_string \"sender is not an updater\"" }, "value": "sender is not an updater" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_cda2dbc11289b577cd7a18e7d569c2c0974899e523a9240b9b5251ccc4231687", "typeString": "literal_string \"sender is not an updater\"" } ], "id": 14, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ 1409, 1410 ], "referencedDeclaration": 1410, "src": "308:7:0", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 20, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "308:92:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 21, "nodeType": "ExpressionStatement", "src": "308:92:0" }, { "id": 22, "nodeType": "PlaceholderStatement", "src": "410:1:0" } ] }, "documentation": null, "id": 24, "name": "onlyUpdater", "nodeType": "ModifierDefinition", "parameters": { "id": 13, "nodeType": "ParameterList", "parameters": [], "src": "295:2:0" }, "src": "275:143:0", "visibility": "internal" }, { "body": { "id": 43, "nodeType": "Block", "src": "499:70:0", "statements": [ { "expression": { "argumentTypes": null, "id": 35, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes"