{ "contractName": "TodoFeed", "abi": [ { "constant": true, "inputs": [ { "name": "", "type": "uint256" } ], "name": "todoList", "outputs": [ { "name": "todoId", "type": "uint256" }, { "name": "owner", "type": "address" }, { "name": "title", "type": "string" }, { "name": "photo", "type": "bytes" }, { "name": "timestamp", "type": "uint256" }, { "name": "isVerified", "type": "bool" }, { "name": "verifier", "type": "address" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [ { "name": "", "type": "uint256" } ], "name": "todoMap", "outputs": [ { "name": "todoId", "type": "uint256" }, { "name": "owner", "type": "address" }, { "name": "title", "type": "string" }, { "name": "photo", "type": "bytes" }, { "name": "timestamp", "type": "uint256" }, { "name": "isVerified", "type": "bool" }, { "name": "verifier", "type": "address" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "anonymous": false, "inputs": [ { "indexed": true, "name": "todoId", "type": "uint256" }, { "indexed": false, "name": "owner", "type": "address" }, { "indexed": false, "name": "title", "type": "string" }, { "indexed": false, "name": "photo", "type": "bytes" }, { "indexed": false, "name": "timestamp", "type": "uint256" } ], "name": "TodoCompleted", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "name": "todoId", "type": "uint256" }, { "indexed": false, "name": "verifier", "type": "address" } ], "name": "TodoVerified", "type": "event" }, { "constant": false, "inputs": [ { "name": "title", "type": "string" }, { "name": "photo", "type": "bytes" } ], "name": "writeTodo", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": false, "inputs": [ { "name": "todoId", "type": "uint256" } ], "name": "verifyTodo", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": true, "inputs": [], "name": "getTotalTodoCount", "outputs": [ { "name": "", "type": "uint256" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [ { "name": "todoId", "type": "uint256" } ], "name": "getTodo", "outputs": [ { "name": "", "type": "uint256" }, { "name": "", "type": "address" }, { "name": "", "type": "string" }, { "name": "", "type": "bytes" }, { "name": "", "type": "uint256" }, { "name": "", "type": "bool" }, { "name": "", "type": "address" } ], "payable": false, "stateMutability": "view", "type": "function" } ], "bytecode": "0x608060405234801561001057600080fd5b50611354806100206000396000f300608060405260043610610078576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063018514ec1461007d5780631a6fd31b146100aa57806358c2d469146100d5578063864d6dde14610266578063ca29cf30146103f7578063dd68afb6146104a6575b600080fd5b34801561008957600080fd5b506100a860048036038101908080359060200190929190505050610637565b005b3480156100b657600080fd5b506100bf610721565b6040518082815260200191505060405180910390f35b3480156100e157600080fd5b506101006004803603810190808035906020019092919050505061072d565b604051808881526020018773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018060200180602001868152602001851515151581526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001838103835288818151815260200191508051906020019080838360005b838110156101be5780820151818401526020810190506101a3565b50505050905090810190601f1680156101eb5780820380516001836020036101000a031916815260200191505b50838103825287818151815260200191508051906020019080838360005b83811015610224578082015181840152602081019050610209565b50505050905090810190601f1680156102515780820380516001836020036101000a031916815260200191505b50995050505050505050505060405180910390f35b34801561027257600080fd5b50610291600480360381019080803590602001909291905050506108fb565b604051808881526020018773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018060200180602001868152602001851515151581526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001838103835288818151815260200191508051906020019080838360005b8381101561034f578082015181840152602081019050610334565b50505050905090810190601f16801561037c5780820380516001836020036101000a031916815260200191505b50838103825287818151815260200191508051906020019080838360005b838110156103b557808201518184015260208101905061039a565b50505050905090810190601f1680156103e25780820380516001836020036101000a031916815260200191505b50995050505050505050505060405180910390f35b34801561040357600080fd5b506104a4600480360381019080803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050610aba565b005b3480156104b257600080fd5b506104d160048036038101908080359060200190929190505050610ec1565b604051808881526020018773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018060200180602001868152602001851515151581526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001838103835288818151815260200191508051906020019080838360005b8381101561058f578082015181840152602081019050610574565b50505050905090810190601f1680156105bc5780820380516001836020036101000a031916815260200191505b50838103825287818151815260200191508051906020019080838360005b838110156105f55780820151818401526020810190506105da565b50505050905090810190601f1680156106225780820380516001836020036101000a031916815260200191505b50995050505050505050505060405180910390f35b600180600083815260200190815260200160002060050160006101000a81548160ff021916908315150217905550336001600083815260200190815260200160002060050160016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550807f302ee80230144d1061548110d083c3143a4d6809120552e04f4a6de72d00b4f633604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a250565b60008080549050905090565b60008181548110151561073c57fe5b90600052602060002090600602016000915090508060000154908060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690806002018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156108145780601f106107e957610100808354040283529160200191610814565b820191906000526020600020905b8154815290600101906020018083116107f757829003601f168201915b505050505090806003018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156108b25780601f10610887576101008083540402835291602001916108b2565b820191906000526020600020905b81548152906001019060200180831161089557829003601f168201915b5050505050908060040154908060050160009054906101000a900460ff16908060050160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905087565b60016020528060005260406000206000915090508060000154908060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690806002018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156109d35780601f106109a8576101008083540402835291602001916109d3565b820191906000526020600020905b8154815290600101906020018083116109b657829003601f168201915b505050505090806003018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610a715780601f10610a4657610100808354040283529160200191610a71565b820191906000526020600020905b815481529060010190602001808311610a5457829003601f168201915b5050505050908060040154908060050160009054906101000a900460ff16908060050160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905087565b6000610ac4611197565b600160008054905001915060e0604051908101604052808381526020013373ffffffffffffffffffffffffffffffffffffffff168152602001858152602001848152602001428152602001600015158152602001600073ffffffffffffffffffffffffffffffffffffffff168152509050600081908060018154018082558091505090600182039060005260206000209060060201600090919290919091506000820151816000015560208201518160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506040820151816002019080519060200190610bd0929190611203565b506060820151816003019080519060200190610bed929190611283565b506080820151816004015560a08201518160050160006101000a81548160ff02191690831515021790555060c08201518160050160016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505080600160008481526020019081526020016000206000820151816000015560208201518160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506040820151816002019080519060200190610ce3929190611203565b506060820151816003019080519060200190610d00929190611283565b506080820151816004015560a08201518160050160006101000a81548160ff02191690831515021790555060c08201518160050160016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550905050817f9fb38646e839124459ba7ca23f394e368a2db5be10acefd38b926cc9dcb7cb3333868642604051808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018060200180602001848152602001838103835286818151815260200191508051906020019080838360005b83811015610e17578082015181840152602081019050610dfc565b50505050905090810190601f168015610e445780820380516001836020036101000a031916815260200191505b50838103825285818151815260200191508051906020019080838360005b83811015610e7d578082015181840152602081019050610e62565b50505050905090810190601f168015610eaa5780820380516001836020036101000a031916815260200191505b50965050505050505060405180910390a250505050565b600080606080600080600080600160008a81526020019081526020016000206000015414151515610f5a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f546f646f20646f6573206e6f742065786973740000000000000000000000000081525060200191505060405180910390fd5b6001600089815260200190815260200160002060000154600160008a815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160008b8152602001908152602001600020600201600160008c8152602001908152602001600020600301600160008d815260200190815260200160002060040154600160008e815260200190815260200160002060050160009054906101000a900460ff16600160008f815260200190815260200160002060050160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16848054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156110db5780601f106110b0576101008083540402835291602001916110db565b820191906000526020600020905b8154815290600101906020018083116110be57829003601f168201915b50505050509450838054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156111775780601f1061114c57610100808354040283529160200191611177565b820191906000526020600020905b81548152906001019060200180831161115a57829003601f168201915b505050505093509650965096509650965096509650919395979092949650565b60e06040519081016040528060008152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001606081526020016060815260200160008152602001600015158152602001600073ffffffffffffffffffffffffffffffffffffffff1681525090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061124457805160ff1916838001178555611272565b82800160010185558215611272579182015b82811115611271578251825591602001919060010190611256565b5b50905061127f9190611303565b5090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106112c457805160ff19168380011785556112f2565b828001600101855582156112f2579182015b828111156112f15782518255916020019190600101906112d6565b5b5090506112ff9190611303565b5090565b61132591905b80821115611321576000816000905550600101611309565b5090565b905600a165627a7a723058205ef3211357922bdb25ccc424da75ea0ed054db8f787e77ce6ab300c21285dead0029", "deployedBytecode": "0x608060405260043610610078576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063018514ec1461007d5780631a6fd31b146100aa57806358c2d469146100d5578063864d6dde14610266578063ca29cf30146103f7578063dd68afb6146104a6575b600080fd5b34801561008957600080fd5b506100a860048036038101908080359060200190929190505050610637565b005b3480156100b657600080fd5b506100bf610721565b6040518082815260200191505060405180910390f35b3480156100e157600080fd5b506101006004803603810190808035906020019092919050505061072d565b604051808881526020018773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018060200180602001868152602001851515151581526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001838103835288818151815260200191508051906020019080838360005b838110156101be5780820151818401526020810190506101a3565b50505050905090810190601f1680156101eb5780820380516001836020036101000a031916815260200191505b50838103825287818151815260200191508051906020019080838360005b83811015610224578082015181840152602081019050610209565b50505050905090810190601f1680156102515780820380516001836020036101000a031916815260200191505b50995050505050505050505060405180910390f35b34801561027257600080fd5b50610291600480360381019080803590602001909291905050506108fb565b604051808881526020018773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018060200180602001868152602001851515151581526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001838103835288818151815260200191508051906020019080838360005b8381101561034f578082015181840152602081019050610334565b50505050905090810190601f16801561037c5780820380516001836020036101000a031916815260200191505b50838103825287818151815260200191508051906020019080838360005b838110156103b557808201518184015260208101905061039a565b50505050905090810190601f1680156103e25780820380516001836020036101000a031916815260200191505b50995050505050505050505060405180910390f35b34801561040357600080fd5b506104a4600480360381019080803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050610aba565b005b3480156104b257600080fd5b506104d160048036038101908080359060200190929190505050610ec1565b604051808881526020018773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018060200180602001868152602001851515151581526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001838103835288818151815260200191508051906020019080838360005b8381101561058f578082015181840152602081019050610574565b50505050905090810190601f1680156105bc5780820380516001836020036101000a031916815260200191505b50838103825287818151815260200191508051906020019080838360005b838110156105f55780820151818401526020810190506105da565b50505050905090810190601f1680156106225780820380516001836020036101000a031916815260200191505b50995050505050505050505060405180910390f35b600180600083815260200190815260200160002060050160006101000a81548160ff021916908315150217905550336001600083815260200190815260200160002060050160016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550807f302ee80230144d1061548110d083c3143a4d6809120552e04f4a6de72d00b4f633604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a250565b60008080549050905090565b60008181548110151561073c57fe5b90600052602060002090600602016000915090508060000154908060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690806002018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156108145780601f106107e957610100808354040283529160200191610814565b820191906000526020600020905b8154815290600101906020018083116107f757829003601f168201915b505050505090806003018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156108b25780601f10610887576101008083540402835291602001916108b2565b820191906000526020600020905b81548152906001019060200180831161089557829003601f168201915b5050505050908060040154908060050160009054906101000a900460ff16908060050160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905087565b60016020528060005260406000206000915090508060000154908060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690806002018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156109d35780601f106109a8576101008083540402835291602001916109d3565b820191906000526020600020905b8154815290600101906020018083116109b657829003601f168201915b505050505090806003018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610a715780601f10610a4657610100808354040283529160200191610a71565b820191906000526020600020905b815481529060010190602001808311610a5457829003601f168201915b5050505050908060040154908060050160009054906101000a900460ff16908060050160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905087565b6000610ac4611197565b600160008054905001915060e0604051908101604052808381526020013373ffffffffffffffffffffffffffffffffffffffff168152602001858152602001848152602001428152602001600015158152602001600073ffffffffffffffffffffffffffffffffffffffff168152509050600081908060018154018082558091505090600182039060005260206000209060060201600090919290919091506000820151816000015560208201518160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506040820151816002019080519060200190610bd0929190611203565b506060820151816003019080519060200190610bed929190611283565b506080820151816004015560a08201518160050160006101000a81548160ff02191690831515021790555060c08201518160050160016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505080600160008481526020019081526020016000206000820151816000015560208201518160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506040820151816002019080519060200190610ce3929190611203565b506060820151816003019080519060200190610d00929190611283565b506080820151816004015560a08201518160050160006101000a81548160ff02191690831515021790555060c08201518160050160016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550905050817f9fb38646e839124459ba7ca23f394e368a2db5be10acefd38b926cc9dcb7cb3333868642604051808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018060200180602001848152602001838103835286818151815260200191508051906020019080838360005b83811015610e17578082015181840152602081019050610dfc565b50505050905090810190601f168015610e445780820380516001836020036101000a031916815260200191505b50838103825285818151815260200191508051906020019080838360005b83811015610e7d578082015181840152602081019050610e62565b50505050905090810190601f168015610eaa5780820380516001836020036101000a031916815260200191505b50965050505050505060405180910390a250505050565b600080606080600080600080600160008a81526020019081526020016000206000015414151515610f5a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f546f646f20646f6573206e6f742065786973740000000000000000000000000081525060200191505060405180910390fd5b6001600089815260200190815260200160002060000154600160008a815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160008b8152602001908152602001600020600201600160008c8152602001908152602001600020600301600160008d815260200190815260200160002060040154600160008e815260200190815260200160002060050160009054906101000a900460ff16600160008f815260200190815260200160002060050160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16848054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156110db5780601f106110b0576101008083540402835291602001916110db565b820191906000526020600020905b8154815290600101906020018083116110be57829003601f168201915b50505050509450838054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156111775780601f1061114c57610100808354040283529160200191611177565b820191906000526020600020905b81548152906001019060200180831161115a57829003601f168201915b505050505093509650965096509650965096509650919395979092949650565b60e06040519081016040528060008152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001606081526020016060815260200160008152602001600015158152602001600073ffffffffffffffffffffffffffffffffffffffff1681525090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061124457805160ff1916838001178555611272565b82800160010185558215611272579182015b82811115611271578251825591602001919060010190611256565b5b50905061127f9190611303565b5090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106112c457805160ff19168380011785556112f2565b828001600101855582156112f2579182015b828111156112f15782518255916020019190600101906112d6565b5b5090506112ff9190611303565b5090565b61132591905b80821115611321576000816000905550600101611309565b5090565b905600a165627a7a723058205ef3211357922bdb25ccc424da75ea0ed054db8f787e77ce6ab300c21285dead0029", "sourceMap": "24:1859:0:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;24:1859:0;;;;;;;", "deployedSourceMap": "24:1859:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1175:167;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1175:167:0;;;;;;;;;;;;;;;;;;;;;;;;;;1346:90;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1346:90:0;;;;;;;;;;;;;;;;;;;;;;;224:26;;8:9:-1;5:2;;;30:1;27;20:12;5:2;224:26:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;224:26:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;224:26:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;254:43;;8:9:-1;5:2;;;30:1;27;20:12;5:2;254:43:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;254:43:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;254:43:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;725:446;;8:9:-1;5:2;;;30:1;27;20:12;5:2;725:446:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1440:439;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1440:439:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;1440:439:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;1440:439:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1175:167;1246:4;1217:7;:15;1225:6;1217:15;;;;;;;;;;;:26;;;:33;;;;;;;;;;;;;;;;;;1283:10;1256:7;:15;1264:6;1256:15;;;;;;;;;;;:24;;;:37;;;;;;;;;;;;;;;;;;1318:6;1305:32;1326:10;1305:32;;;;;;;;;;;;;;;;;;;;;;1175:167;:::o;1346:90::-;1397:4;1416:8;:15;;;;1409:22;;1346:90;:::o;224:26::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;254:43::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;725:446::-;784:14;827:23;;:::i;:::-;819:1;801:8;:15;;;;:19;784:36;;853:189;;;;;;;;;879:6;853:189;;;;901:10;853:189;;;;;;927:5;853:189;;;;948:5;853:189;;;;979:3;853:189;;;;1002:5;853:189;;;;;;1033:1;853:189;;;;;827:215;;1049:8;1063:7;1049:22;;39:1:-1;33:3;27:10;23:18;57:10;52:3;45:23;79:10;72:17;;0:93;1049:22:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1095:7;1077;:15;1085:6;1077:15;;;;;;;;;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1128:6;1114:52;1136:10;1148:5;1155;1162:3;1114:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;1114:52:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;1114:52:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;725:446;;;;:::o;1440:439::-;1496:7;1505;1514:6;1522:5;1529:7;1538:4;1544:7;1595:1;1569:7;:15;1577:6;1569:15;;;;;;;;;;;:22;;;:27;;1561:59;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1645:7;:15;1653:6;1645:15;;;;;;;;;;;:22;;;1677:7;:15;1685:6;1677:15;;;;;;;;;;;:21;;;;;;;;;;;;1708:7;:15;1716:6;1708:15;;;;;;;;;;;:21;;1739:7;:15;1747:6;1739:15;;;;;;;;;;;:21;;1778:7;:15;1786:6;1778:15;;;;;;;;;;;:25;;;1813:7;:15;1821:6;1813:15;;;;;;;;;;;:26;;;;;;;;;;;;1849:7;:15;1857:6;1849:15;;;;;;;;;;;:24;;;;;;;;;;;;1628:246;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1440:439;;;;;;;;;:::o;24:1859::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o", "source": "pragma solidity 0.4.25;\ncontract TodoFeed {\n \n event TodoCompleted (uint256 indexed todoId, address owner, string title, bytes photo, uint256 timestamp);\n event TodoVerified (uint256 indexed todoId, address verifier);\n\n TodoData[] public todoList;\n mapping(uint256 => TodoData) public todoMap;\n\n struct TodoData {\n uint256 todoId; // Unique token id\n address owner;\n string title;\n bytes photo; // Image source encoded in uint 8 array format \n uint256 timestamp; // Uploaded time\n bool isVerified; // check if is verified, default false.\n address verifier; // verifier address\n }\n\n function writeTodo(string title, bytes photo) public {\n uint256 todoId = todoList.length + 1;\n\n TodoData memory newData = TodoData({\n todoId : todoId,\n owner : msg.sender,\n title : title,\n photo : photo, \n timestamp : now,\n isVerified: false,\n verifier: address(0)\n });\n\n todoList.push(newData);\n todoMap[todoId] = newData;\n\n emit TodoCompleted(todoId, msg.sender, title, photo, now);\n }\n\n function verifyTodo(uint256 todoId) {\n todoMap[todoId].isVerified = true;\n todoMap[todoId].verifier = msg.sender;\n\n emit TodoVerified(todoId, msg.sender);\n }\n\n function getTotalTodoCount () public view returns (uint) {\n return todoList.length;\n }\n\n function getTodo (uint todoId) public view \n returns(uint256, address, string, bytes, uint256, bool, address) {\n require(todoMap[todoId].todoId != 0, \"Todo does not exist\");\n return (\n todoMap[todoId].todoId,\n todoMap[todoId].owner,\n todoMap[todoId].title,\n todoMap[todoId].photo, \n todoMap[todoId].timestamp,\n todoMap[todoId].isVerified,\n todoMap[todoId].verifier);\n }\n\n\n}\n", "sourcePath": "/Users/willpark/Desktop/bookwork-klaytn/project_codes/todofeed/backend-todofeed/contracts/TodoFeed.sol", "ast": { "absolutePath": "/Users/willpark/Desktop/bookwork-klaytn/project_codes/todofeed/backend-todofeed/contracts/TodoFeed.sol", "exportedSymbols": { "TodoFeed": [ 189 ] }, "id": 190, "nodeType": "SourceUnit", "nodes": [ { "id": 1, "literals": [ "solidity", "0.4", ".25" ], "nodeType": "PragmaDirective", "src": "0:23:0" }, { "baseContracts": [], "contractDependencies": [], "contractKind": "contract", "documentation": null, "fullyImplemented": true, "id": 189, "linearizedBaseContracts": [ 189 ], "name": "TodoFeed", "nodeType": "ContractDefinition", "nodes": [ { "anonymous": false, "documentation": null, "id": 13, "name": "TodoCompleted", "nodeType": "EventDefinition", "parameters": { "id": 12, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 3, "indexed": true, "name": "todoId", "nodeType": "VariableDeclaration", "scope": 13, "src": "70:22:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 2, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "70:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 5, "indexed": false, "name": "owner", "nodeType": "VariableDeclaration", "scope": 13, "src": "94:13:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 4, "name": "address", "nodeType": "ElementaryTypeName", "src": "94:7:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 7, "indexed": false, "name": "title", "nodeType": "VariableDeclaration", "scope": 13, "src": "109:12:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string" }, "typeName": { "id": 6, "name": "string", "nodeType": "ElementaryTypeName", "src": "109:6:0", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 9, "indexed": false, "name": "photo", "nodeType": "VariableDeclaration", "scope": 13, "src": "123:11:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes" }, "typeName": { "id": 8, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "123:5:0", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 11, "indexed": false, "name": "timestamp", "nodeType": "VariableDeclaration", "scope": 13, "src": "136:17:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 10, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "136:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "69:85:0" }, "src": "49:106:0" }, { "anonymous": false, "documentation": null, "id": 19, "name": "TodoVerified", "nodeType": "EventDefinition", "parameters": { "id": 18, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 15, "indexed": true, "name": "todoId", "nodeType": "VariableDeclaration", "scope": 19, "src": "178:22:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 14, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "178:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 17, "indexed": false, "name": "verifier", "nodeType": "VariableDeclaration", "scope": 19, "src": "202:16:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 16, "name": "address", "nodeType": "ElementaryTypeName", "src": "202:7:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" } ], "src": "177:42:0" }, "src": "158:62:0" }, { "constant": false, "id": 22, "name": "todoList", "nodeType": "VariableDeclaration", "scope": 189, "src": "224:26:0", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_array$_t_struct$_TodoData_$41_storage_$dyn_storage", "typeString": "struct TodoFeed.TodoData[]" }, "typeName": { "baseType": { "contractScope": null, "id": 20, "name": "TodoData", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 41, "src": "224:8:0", "typeDescriptions": { "typeIdentifier": "t_struct$_TodoData_$41_storage_ptr", "typeString": "struct TodoFeed.TodoData" } }, "id": 21, "length": null, "nodeType": "ArrayTypeName", "src": "224:10:0", "typeDescriptions": { "typeIdentifier": "t_array$_t_struct$_TodoData_$41_storage_$dyn_storage_ptr", "typeString": "struct TodoFeed.TodoData[]" } }, "value": null, "visibility": "public" }, { "constant": false, "id": 26, "name": "todoMap", "nodeType": "VariableDeclaration", "scope": 189, "src": "254:43:0", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_TodoData_$41_storage_$", "typeString": "mapping(uint256 => struct TodoFeed.TodoData)" }, "typeName": { "id": 25, "keyType": { "id": 23, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "262:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Mapping", "src": "254:28:0", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_TodoData_$41_storage_$", "typeString": "mapping(uint256 => struct TodoFeed.TodoData)" }, "valueType": { "contractScope": null, "id": 24, "name": "TodoData", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 41, "src": "273:8:0", "typeDescriptions": { "typeIdentifier": "t_struct$_TodoData_$41_storage_ptr", "typeString": "struct TodoFeed.TodoData" } } }, "value": null, "visibility": "public" }, { "canonicalName": "TodoFeed.TodoData", "id": 41, "members": [ { "constant": false, "id": 28, "name": "todoId", "nodeType": "VariableDeclaration", "scope": 41, "src": "324:14:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 27, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "324:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 30, "name": "owner", "nodeType": "VariableDeclaration", "scope": 41, "src": "385:13:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 29, "name": "address", "nodeType": "ElementaryTypeName", "src": "385:7:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 32, "name": "title", "nodeType": "VariableDeclaration", "scope": 41, "src": "404:12:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" }, "typeName": { "id": 31, "name": "string", "nodeType": "ElementaryTypeName", "src": "404:6:0", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 34, "name": "photo", "nodeType": "VariableDeclaration", "scope": 41, "src": "422:11:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" }, "typeName": { "id": 33, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "422:5:0", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 36, "name": "timestamp", "nodeType": "VariableDeclaration", "scope": 41, "src": "516:17:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 35, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "516:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 38, "name": "isVerified", "nodeType": "VariableDeclaration", "scope": 41, "src": "576:15:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "typeName": { "id": 37, "name": "bool", "nodeType": "ElementaryTypeName", "src": "576:4:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 40, "name": "verifier", "nodeType": "VariableDeclaration", "scope": 41, "src": "659:16:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 39, "name": "address", "nodeType": "ElementaryTypeName", "src": "659:7:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" } ], "name": "TodoData", "nodeType": "StructDefinition", "scope": 189, "src": "302:419:0", "visibility": "public" }, { "body": { "id": 91, "nodeType": "Block", "src": "778:393:0", "statements": [ { "assignments": [ 49 ], "declarations": [ { "constant": false, "id": 49, "name": "todoId", "nodeType": "VariableDeclaration", "scope": 92, "src": "784:14:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 48, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "784:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "id": 54, "initialValue": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 53, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 50, "name": "todoList", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 22, "src": "801:8:0", "typeDescriptions": { "typeIdentifier": "t_array$_t_struct$_TodoData_$41_storage_$dyn_storage", "typeString": "struct TodoFeed.TodoData storage ref[] storage ref" } }, "id": 51, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "801:15:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "+", "rightExpression": { "argumentTypes": null, "hexValue": "31", "id": 52, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "819:1:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, "value": "1" }, "src": "801:19:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", "src": "784:36:0" }, { "assignments": [ 56 ], "declarations": [ { "constant": false, "id": 56, "name": "newData", "nodeType": "VariableDeclaration", "scope": 92, "src": "827:23:0", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_struct$_TodoData_$41_memory_ptr", "typeString": "struct TodoFeed.TodoData" }, "typeName": { "contractScope": null, "id": 55, "name": "TodoData", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 41, "src": "827:8:0", "typeDescriptions": { "typeIdentifier": "t_struct$_TodoData_$41_storage_ptr", "typeString": "struct TodoFeed.TodoData" } }, "value": null, "visibility": "internal" } ], "id": 69, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 58, "name": "todoId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 49, "src": "879:6:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 59, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 204, "src": "901:3:0", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 60, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "901:10:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "id": 61, "name": "title", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 43, "src": "927:5:0", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } }, { "argumentTypes": null, "id": 62, "name": "photo", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 45, "src": "948:5:0", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, { "argumentTypes": null, "id": 63, "name": "now", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 206, "src": "979:3:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "argumentTypes": null, "hexValue": "66616c7365", "id": 64, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", "src": "1002:5:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "false" }, { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "30", "id": 66, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "1033: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": 65, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "1025:7:0", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, "id": 67, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "1025:10:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], "expression": { "argumentTypes": null, "id": 57, "name": "TodoData", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 41, "src": "853:8:0", "typeDescriptions": { "typeIdentifier": "t_type$_t_struct$_TodoData_$41_storage_ptr_$", "typeString": "type(struct TodoFeed.TodoData storage pointer)" } }, "id": 68, "isConstant": false, "isLValue": false, "isPure": false, "kind": "structConstructorCall", "lValueRequested": false, "names": [ "todoId", "owner", "title", "photo", "timestamp", "isVerified", "verifier" ], "nodeType": "FunctionCall", "src": "853:189:0", "typeDescriptions": { "typeIdentifier": "t_struct$_TodoData_$41_memory", "typeString": "struct TodoFeed.TodoData memory" } }, "nodeType": "VariableDeclarationStatement", "src": "827:215:0" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 73, "name": "newData", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 56, "src": "1063:7:0", "typeDescriptions": { "typeIdentifier": "t_struct$_TodoData_$41_memory_ptr", "typeString": "struct TodoFeed.TodoData memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_struct$_TodoData_$41_memory_ptr", "typeString": "struct TodoFeed.TodoData memory" } ], "expression": { "argumentTypes": null, "id": 70, "name": "todoList", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 22, "src": "1049:8:0", "typeDescriptions": { "typeIdentifier": "t_array$_t_struct$_TodoData_$41_storage_$dyn_storage", "typeString": "struct TodoFeed.TodoData storage ref[] storage ref" } }, "id": 72, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "push", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "1049:13:0", "typeDescriptions": { "typeIdentifier": "t_function_arraypush_nonpayable$_t_struct$_TodoData_$41_storage_$returns$_t_uint256_$", "typeString": "function (struct TodoFeed.TodoData storage ref) returns (uint256)" } }, "id": 74, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "1049:22:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 75, "nodeType": "ExpressionStatement", "src": "1049:22:0" }, { "expression": { "argumentTypes": null, "id": 80, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 76, "name": "todoMap", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 26, "src": "1077:7:0", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_TodoData_$41_storage_$", "typeString": "mapping(uint256 => struct TodoFeed.TodoData storage ref)" } }, "id": 78, "indexExpression": { "argumentTypes": null, "id": 77, "name": "todoId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 49, "src": "1085:6:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "1077:15:0", "typeDescriptions": { "typeIdentifier": "t_struct$_TodoData_$41_storage", "typeString": "struct TodoFeed.TodoData storage ref" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "id": 79, "name": "newData", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 56, "src": "1095:7:0", "typeDescriptions": { "typeIdentifier": "t_struct$_TodoData_$41_memory_ptr", "typeString": "struct TodoFeed.TodoData memory" } }, "src": "1077:25:0", "typeDescriptions": { "typeIdentifier": "t_struct$_TodoData_$41_storage", "typeString": "struct TodoFeed.TodoData storage ref" } }, "id": 81, "nodeType": "ExpressionStatement", "src": "1077:25:0" }, { "eventCall": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 83, "name": "todoId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 49, "src": "1128:6:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 84, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 204, "src": "1136:3:0", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 85, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "1136:10:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "id": 86, "name": "title", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 43, "src": "1148:5:0", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } }, { "argumentTypes": null, "id": 87, "name": "photo", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 45, "src": "1155:5:0", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, { "argumentTypes": null, "id": 88, "name": "now", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 206, "src": "1162:3:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" }, { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 82, "name": "TodoCompleted", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13, "src": "1114:13:0", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_address_$_t_string_memory_ptr_$_t_bytes_memory_ptr_$_t_uint256_$returns$__$", "typeString": "function (uint256,address,string memory,bytes memory,uint256)" } }, "id": 89, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "1114:52:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 90, "nodeType": "EmitStatement", "src": "1109:57:0" } ] }, "documentation": null, "id": 92, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [], "name": "writeTodo", "nodeType": "FunctionDefinition", "parameters": { "id": 46, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 43, "name": "title", "nodeType": "VariableDeclaration", "scope": 92, "src": "744:12:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string" }, "typeName": { "id": 42, "name": "string", "nodeType": "ElementaryTypeName", "src": "744:6:0", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 45, "name": "photo", "nodeType": "VariableDeclaration", "scope": 92, "src": "758:11:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes" }, "typeName": { "id": 44, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "758:5:0", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" } }, "value": null, "visibility": "internal" } ], "src": "743:27:0" }, "payable": false, "returnParameters": { "id": 47, "nodeType": "ParameterList", "parameters": [], "src": "778:0:0" }, "scope": 189, "src": "725:446:0", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { "id": 118, "nodeType": "Block", "src": "1211:131:0", "statements": [ { "expression": { "argumentTypes": null, "id": 102, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 97, "name": "todoMap", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 26, "src": "1217:7:0", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_TodoData_$41_storage_$", "typeString": "mapping(uint256 => struct TodoFeed.TodoData storage ref)" } }, "id": 99, "indexExpression": { "argumentTypes": null, "id": 98, "name": "todoId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 94, "src": "1225:6:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "1217:15:0", "typeDescriptions": { "typeIdentifier": "t_struct$_TodoData_$41_storage", "typeString": "struct TodoFeed.TodoData storage ref" } }, "id": 100, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberName": "isVerified", "nodeType": "MemberAccess", "referencedDeclaration": 38, "src": "1217:26:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "hexValue": "74727565", "id": 101, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", "src": "1246:4:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "true" }, "src": "1217:33:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 103, "nodeType": "ExpressionStatement", "src": "1217:33:0" }, { "expression": { "argumentTypes": null, "id": 110, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 104, "name": "todoMap", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 26, "src": "1256:7:0", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_TodoData_$41_storage_$", "typeString": "mapping(uint256 => struct TodoFeed.TodoData storage ref)" } }, "id": 106, "indexExpression": { "argumentTypes": null, "id": 105, "name": "todoId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 94, "src": "1264:6:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "1256:15:0", "typeDescriptions": { "typeIdentifier": "t_struct$_TodoData_$41_storage", "typeString": "struct TodoFeed.TodoData storage ref" } }, "id": 107, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberName": "verifier", "nodeType": "MemberAccess", "referencedDeclaration": 40, "src": "1256:24:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 108, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 204, "src": "1283:3:0", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 109, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "1283:10:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "src": "1256:37:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "id": 111, "nodeType": "ExpressionStatement", "src": "1256:37:0" }, { "eventCall": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 113, "name": "todoId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 94, "src": "1318:6:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 114, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 204, "src": "1326:3:0", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 115, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "1326:10:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_address", "typeString": "address" } ], "id": 112, "name": "TodoVerified", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 19, "src": "1305:12:0", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_address_$returns$__$", "typeString": "function (uint256,address)" } }, "id": 116, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "1305:32:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 117, "nodeType": "EmitStatement", "src": "1300:37:0" } ] }, "documentation": null, "id": 119, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [], "name": "verifyTodo", "nodeType": "FunctionDefinition", "parameters": { "id": 95, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 94, "name": "todoId", "nodeType": "VariableDeclaration", "scope": 119, "src": "1195:14:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 93, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1195:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "1194:16:0" }, "payable": false, "returnParameters": { "id": 96, "nodeType": "ParameterList", "parameters": [], "src": "1211:0:0" }, "scope": 189, "src": "1175:167:0", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { "id": 127, "nodeType": "Block", "src": "1403:33:0", "statements": [ { "expression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 124, "name": "todoList", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 22, "src": "1416:8:0", "typeDescriptions": { "typeIdentifier": "t_array$_t_struct$_TodoData_$41_storage_$dyn_storage", "typeString": "struct TodoFeed.TodoData storage ref[] storage ref" } }, "id": 125, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "1416:15:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "functionReturnParameters": 123, "id": 126, "nodeType": "Return", "src": "1409:22:0" } ] }, "documentation": null, "id": 128, "implemented": true, "isConstructor": false, "isDeclaredConst": true, "modifiers": [], "name": "getTotalTodoCount", "nodeType": "FunctionDefinition", "parameters": { "id": 120, "nodeType": "ParameterList", "parameters": [], "src": "1373:2:0" }, "payable": false, "returnParameters": { "id": 123, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 122, "name": "", "nodeType": "VariableDeclaration", "scope": 128, "src": "1397:4:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 121, "name": "uint", "nodeType": "ElementaryTypeName", "src": "1397:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "1396:6:0" }, "scope": 189, "src": "1346:90:0", "stateMutability": "view", "superFunction": null, "visibility": "public" }, { "body": { "id": 187, "nodeType": "Block", "src": "1553:326:0", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 153, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 148, "name": "todoMap", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 26, "src": "1569:7:0", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_TodoData_$41_storage_$", "typeString": "mapping(uint256 => struct TodoFeed.TodoData storage ref)" } }, "id": 150, "indexExpression": { "argumentTypes": null, "id": 149, "name": "todoId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 130, "src": "1577:6:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "1569:15:0", "typeDescriptions": { "typeIdentifier": "t_struct$_TodoData_$41_storage", "typeString": "struct TodoFeed.TodoData storage ref" } }, "id": 151, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "todoId", "nodeType": "MemberAccess", "referencedDeclaration": 28, "src": "1569:22:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": { "argumentTypes": null, "hexValue": "30", "id": 152, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "1595:1:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "src": "1569:27:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "argumentTypes": null, "hexValue": "546f646f20646f6573206e6f74206578697374", "id": 154, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "1598:21:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_a634737b69ab8209e39ee6bdea7c69ed59d5969f72e441f51936e17e6b365bee", "typeString": "literal_string \"Todo does not exist\"" }, "value": "Todo does not exist" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_a634737b69ab8209e39ee6bdea7c69ed59d5969f72e441f51936e17e6b365bee", "typeString": "literal_string \"Todo does not exist\"" } ], "id": 147, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ 207, 208 ], "referencedDeclaration": 208, "src": "1561:7:0", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 155, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "1561:59:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 156, "nodeType": "ExpressionStatement", "src": "1561:59:0" }, { "expression": { "argumentTypes": null, "components": [ { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 157, "name": "todoMap", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 26, "src": "1645:7:0", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_TodoData_$41_storage_$", "typeString": "mapping(uint256 => struct TodoFeed.TodoData storage ref)" } }, "id": 159, "indexExpression": { "argumentTypes": null, "id": 158, "name": "todoId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 130, "src": "1653:6:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "1645:15:0", "typeDescriptions": { "typeIdentifier": "t_struct$_TodoData_$41_storage", "typeString": "struct TodoFeed.TodoData storage ref" } }, "id": 160, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "todoId", "nodeType": "MemberAccess", "referencedDeclaration": 28, "src": "1645:22:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 161, "name": "todoMap", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 26, "src": "1677:7:0", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_TodoData_$41_storage_$", "typeString": "mapping(uint256 => struct TodoFeed.TodoData storage ref)" } }, "id": 163, "indexExpression": { "argumentTypes": null, "id": 162, "name": "todoId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 130, "src": "1685:6:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "1677:15:0", "typeDescriptions": { "typeIdentifier": "t_struct$_TodoData_$41_storage", "typeString": "struct TodoFeed.TodoData storage ref" } }, "id": 164, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "owner", "nodeType": "MemberAccess", "referencedDeclaration": 30, "src": "1677:21:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 165, "name": "todoMap", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 26, "src": "1708:7:0", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_TodoData_$41_storage_$", "typeString": "mapping(uint256 => struct TodoFeed.TodoData storage ref)" } }, "id": 167, "indexExpression": { "argumentTypes": null, "id": 166, "name": "todoId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 130, "src": "1716:6:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "1708:15:0", "typeDescriptions": { "typeIdentifier": "t_struct$_TodoData_$41_storage", "typeString": "struct TodoFeed.TodoData storage ref" } }, "id": 168, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "title", "nodeType": "MemberAccess", "referencedDeclaration": 32, "src": "1708:21:0", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" } }, { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 169, "name": "todoMap", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 26, "src": "1739:7:0", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_TodoData_$41_storage_$", "typeString": "mapping(uint256 => struct TodoFeed.TodoData storage ref)" } }, "id": 171, "indexExpression": { "argumentTypes": null, "id": 170, "name": "todoId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 130, "src": "1747:6:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "1739:15:0", "typeDescriptions": { "typeIdentifier": "t_struct$_TodoData_$41_storage", "typeString": "struct TodoFeed.TodoData storage ref" } }, "id": 172, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "photo", "nodeType": "MemberAccess", "referencedDeclaration": 34, "src": "1739:21:0", "typeDescriptions": { "typeIdentifier": "t_bytes_storage", "typeString": "bytes storage ref" } }, { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 173, "name": "todoMap", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 26, "src": "1778:7:0", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_TodoData_$41_storage_$", "typeString": "mapping(uint256 => struct TodoFeed.TodoData storage ref)" } }, "id": 175, "indexExpression": { "argumentTypes": null, "id": 174, "name": "todoId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 130, "src": "1786:6:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "1778:15:0", "typeDescriptions": { "typeIdentifier": "t_struct$_TodoData_$41_storage", "typeString": "struct TodoFeed.TodoData storage ref" } }, "id": 176, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "timestamp", "nodeType": "MemberAccess", "referencedDeclaration": 36, "src": "1778:25:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 177, "name": "todoMap", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 26, "src": "1813:7:0", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_TodoData_$41_storage_$", "typeString": "mapping(uint256 => struct TodoFeed.TodoData storage ref)" } }, "id": 179, "indexExpression": { "argumentTypes": null, "id": 178, "name": "todoId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 130, "src": "1821:6:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "1813:15:0", "typeDescriptions": { "typeIdentifier": "t_struct$_TodoData_$41_storage", "typeString": "struct TodoFeed.TodoData storage ref" } }, "id": 180, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "isVerified", "nodeType": "MemberAccess", "referencedDeclaration": 38, "src": "1813:26:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 181, "name": "todoMap", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 26, "src": "1849:7:0", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_TodoData_$41_storage_$", "typeString": "mapping(uint256 => struct TodoFeed.TodoData storage ref)" } }, "id": 183, "indexExpression": { "argumentTypes": null, "id": 182, "name": "todoId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 130, "src": "1857:6:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "1849:15:0", "typeDescriptions": { "typeIdentifier": "t_struct$_TodoData_$41_storage", "typeString": "struct TodoFeed.TodoData storage ref" } }, "id": 184, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "verifier", "nodeType": "MemberAccess", "referencedDeclaration": 40, "src": "1849:24:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], "id": 185, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", "src": "1635:239:0", "typeDescriptions": { "typeIdentifier": "t_tuple$_t_uint256_$_t_address_$_t_string_storage_$_t_bytes_storage_$_t_uint256_$_t_bool_$_t_address_$", "typeString": "tuple(uint256,address,string storage ref,bytes storage ref,uint256,bool,address)" } }, "functionReturnParameters": 146, "id": 186, "nodeType": "Return", "src": "1628:246:0" } ] }, "documentation": null, "id": 188, "implemented": true, "isConstructor": false, "isDeclaredConst": true, "modifiers": [], "name": "getTodo", "nodeType": "FunctionDefinition", "parameters": { "id": 131, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 130, "name": "todoId", "nodeType": "VariableDeclaration", "scope": 188, "src": "1458:11:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 129, "name": "uint", "nodeType": "ElementaryTypeName", "src": "1458:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "1457:13:0" }, "payable": false, "returnParameters": { "id": 146, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 133, "name": "", "nodeType": "VariableDeclaration", "scope": 188, "src": "1496:7:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 132, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1496:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 135, "name": "", "nodeType": "VariableDeclaration", "scope": 188, "src": "1505:7:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 134, "name": "address", "nodeType": "ElementaryTypeName", "src": "1505:7:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 137, "name": "", "nodeType": "VariableDeclaration", "scope": 188, "src": "1514:6:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string" }, "typeName": { "id": 136, "name": "string", "nodeType": "ElementaryTypeName", "src": "1514:6:0", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 139, "name": "", "nodeType": "VariableDeclaration", "scope": 188, "src": "1522:5:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes" }, "typeName": { "id": 138, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "1522:5:0", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 141, "name": "", "nodeType": "VariableDeclaration", "scope": 188, "src": "1529:7:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 140, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1529:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 143, "name": "", "nodeType": "VariableDeclaration", "scope": 188, "src": "1538:4:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "typeName": { "id": 142, "name": "bool", "nodeType": "ElementaryTypeName", "src": "1538:4:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 145, "name": "", "nodeType": "VariableDeclaration", "scope": 188, "src": "1544:7:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 144, "name": "address", "nodeType": "ElementaryTypeName", "src": "1544:7:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" } ], "src": "1495:57:0" }, "scope": 189, "src": "1440:439:0", "stateMutability": "view", "superFunction": null, "visibility": "public" } ], "scope": 190, "src": "24:1859:0" } ], "src": "0:1884:0" }, "legacyAST": { "absolutePath": "/Users/willpark/Desktop/bookwork-klaytn/project_codes/todofeed/backend-todofeed/contracts/TodoFeed.sol", "exportedSymbols": { "TodoFeed": [ 189 ] }, "id": 190, "nodeType": "SourceUnit", "nodes": [ { "id": 1, "literals": [ "solidity", "0.4", ".25" ], "nodeType": "PragmaDirective", "src": "0:23:0" }, { "baseContracts": [], "contractDependencies": [], "contractKind": "contract", "documentation": null, "fullyImplemented": true, "id": 189, "linearizedBaseContracts": [ 189 ], "name": "TodoFeed", "nodeType": "ContractDefinition", "nodes": [ { "anonymous": false, "documentation": null, "id": 13, "name": "TodoCompleted", "nodeType": "EventDefinition", "parameters": { "id": 12, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 3, "indexed": true, "name": "todoId", "nodeType": "VariableDeclaration", "scope": 13, "src": "70:22:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 2, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "70:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 5, "indexed": false, "name": "owner", "nodeType": "VariableDeclaration", "scope": 13, "src": "94:13:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 4, "name": "address", "nodeType": "ElementaryTypeName", "src": "94:7:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 7, "indexed": false, "name": "title", "nodeType": "VariableDeclaration", "scope": 13, "src": "109:12:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string" }, "typeName": { "id": 6, "name": "string", "nodeType": "ElementaryTypeName", "src": "109:6:0", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 9, "indexed": false, "name": "photo", "nodeType": "VariableDeclaration", "scope": 13, "src": "123:11:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes" }, "typeName": { "id": 8, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "123:5:0", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 11, "indexed": false, "name": "timestamp", "nodeType": "VariableDeclaration", "scope": 13, "src": "136:17:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 10, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "136:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "69:85:0" }, "src": "49:106:0" }, { "anonymous": false, "documentation": null, "id": 19, "name": "TodoVerified", "nodeType": "EventDefinition", "parameters": { "id": 18, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 15, "indexed": true, "name": "todoId", "nodeType": "VariableDeclaration", "scope": 19, "src": "178:22:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 14, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "178:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 17, "indexed": false, "name": "verifier", "nodeType": "VariableDeclaration", "scope": 19, "src": "202:16:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 16, "name": "address", "nodeType": "ElementaryTypeName", "src": "202:7:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" } ], "src": "177:42:0" }, "src": "158:62:0" }, { "constant": false, "id": 22, "name": "todoList", "nodeType": "VariableDeclaration", "scope": 189, "src": "224:26:0", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_array$_t_struct$_TodoData_$41_storage_$dyn_storage", "typeString": "struct TodoFeed.TodoData[]" }, "typeName": { "baseType": { "contractScope": null, "id": 20, "name": "TodoData", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 41, "src": "224:8:0", "typeDescriptions": { "typeIdentifier": "t_struct$_TodoData_$41_storage_ptr", "typeString": "struct TodoFeed.TodoData" } }, "id": 21, "length": null, "nodeType": "ArrayTypeName", "src": "224:10:0", "typeDescriptions": { "typeIdentifier": "t_array$_t_struct$_TodoData_$41_storage_$dyn_storage_ptr", "typeString": "struct TodoFeed.TodoData[]" } }, "value": null, "visibility": "public" }, { "constant": false, "id": 26, "name": "todoMap", "nodeType": "VariableDeclaration", "scope": 189, "src": "254:43:0", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_TodoData_$41_storage_$", "typeString": "mapping(uint256 => struct TodoFeed.TodoData)" }, "typeName": { "id": 25, "keyType": { "id": 23, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "262:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Mapping", "src": "254:28:0", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_TodoData_$41_storage_$", "typeString": "mapping(uint256 => struct TodoFeed.TodoData)" }, "valueType": { "contractScope": null, "id": 24, "name": "TodoData", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 41, "src": "273:8:0", "typeDescriptions": { "typeIdentifier": "t_struct$_TodoData_$41_storage_ptr", "typeString": "struct TodoFeed.TodoData" } } }, "value": null, "visibility": "public" }, { "canonicalName": "TodoFeed.TodoData", "id": 41, "members": [ { "constant": false, "id": 28, "name": "todoId", "nodeType": "VariableDeclaration", "scope": 41, "src": "324:14:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 27, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "324:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 30, "name": "owner", "nodeType": "VariableDeclaration", "scope": 41, "src": "385:13:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 29, "name": "address", "nodeType": "ElementaryTypeName", "src": "385:7:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 32, "name": "title", "nodeType": "VariableDeclaration", "scope": 41, "src": "404:12:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" }, "typeName": { "id": 31, "name": "string", "nodeType": "ElementaryTypeName", "src": "404:6:0", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 34, "name": "photo", "nodeType": "VariableDeclaration", "scope": 41, "src": "422:11:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" }, "typeName": { "id": 33, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "422:5:0", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 36, "name": "timestamp", "nodeType": "VariableDeclaration", "scope": 41, "src": "516:17:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 35, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "516:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 38, "name": "isVerified", "nodeType": "VariableDeclaration", "scope": 41, "src": "576:15:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "typeName": { "id": 37, "name": "bool", "nodeType": "ElementaryTypeName", "src": "576:4:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 40, "name": "verifier", "nodeType": "VariableDeclaration", "scope": 41, "src": "659:16:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 39, "name": "address", "nodeType": "ElementaryTypeName", "src": "659:7:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" } ], "name": "TodoData", "nodeType": "StructDefinition", "scope": 189, "src": "302:419:0", "visibility": "public" }, { "body": { "id": 91, "nodeType": "Block", "src": "778:393:0", "statements": [ { "assignments": [ 49 ], "declarations": [ { "constant": false, "id": 49, "name": "todoId", "nodeType": "VariableDeclaration", "scope": 92, "src": "784:14:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 48, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "784:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "id": 54, "initialValue": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 53, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 50, "name": "todoList", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 22, "src": "801:8:0", "typeDescriptions": { "typeIdentifier": "t_array$_t_struct$_TodoData_$41_storage_$dyn_storage", "typeString": "struct TodoFeed.TodoData storage ref[] storage ref" } }, "id": 51, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "801:15:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "+", "rightExpression": { "argumentTypes": null, "hexValue": "31", "id": 52, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "819:1:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, "value": "1" }, "src": "801:19:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", "src": "784:36:0" }, { "assignments": [ 56 ], "declarations": [ { "constant": false, "id": 56, "name": "newData", "nodeType": "VariableDeclaration", "scope": 92, "src": "827:23:0", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_struct$_TodoData_$41_memory_ptr", "typeString": "struct TodoFeed.TodoData" }, "typeName": { "contractScope": null, "id": 55, "name": "TodoData", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 41, "src": "827:8:0", "typeDescriptions": { "typeIdentifier": "t_struct$_TodoData_$41_storage_ptr", "typeString": "struct TodoFeed.TodoData" } }, "value": null, "visibility": "internal" } ], "id": 69, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 58, "name": "todoId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 49, "src": "879:6:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 59, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 204, "src": "901:3:0", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 60, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "901:10:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "id": 61, "name": "title", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 43, "src": "927:5:0", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } }, { "argumentTypes": null, "id": 62, "name": "photo", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 45, "src": "948:5:0", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, { "argumentTypes": null, "id": 63, "name": "now", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 206, "src": "979:3:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "argumentTypes": null, "hexValue": "66616c7365", "id": 64, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", "src": "1002:5:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "false" }, { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "30", "id": 66, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "1033: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": 65, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "1025:7:0", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, "id": 67, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "1025:10:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], "expression": { "argumentTypes": null, "id": 57, "name": "TodoData", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 41, "src": "853:8:0", "typeDescriptions": { "typeIdentifier": "t_type$_t_struct$_TodoData_$41_storage_ptr_$", "typeString": "type(struct TodoFeed.TodoData storage pointer)" } }, "id": 68, "isConstant": false, "isLValue": false, "isPure": false, "kind": "structConstructorCall", "lValueRequested": false, "names": [ "todoId", "owner", "title", "photo", "timestamp", "isVerified", "verifier" ], "nodeType": "FunctionCall", "src": "853:189:0", "typeDescriptions": { "typeIdentifier": "t_struct$_TodoData_$41_memory", "typeString": "struct TodoFeed.TodoData memory" } }, "nodeType": "VariableDeclarationStatement", "src": "827:215:0" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 73, "name": "newData", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 56, "src": "1063:7:0", "typeDescriptions": { "typeIdentifier": "t_struct$_TodoData_$41_memory_ptr", "typeString": "struct TodoFeed.TodoData memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_struct$_TodoData_$41_memory_ptr", "typeString": "struct TodoFeed.TodoData memory" } ], "expression": { "argumentTypes": null, "id": 70, "name": "todoList", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 22, "src": "1049:8:0", "typeDescriptions": { "typeIdentifier": "t_array$_t_struct$_TodoData_$41_storage_$dyn_storage", "typeString": "struct TodoFeed.TodoData storage ref[] storage ref" } }, "id": 72, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "push", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "1049:13:0", "typeDescriptions": { "typeIdentifier": "t_function_arraypush_nonpayable$_t_struct$_TodoData_$41_storage_$returns$_t_uint256_$", "typeString": "function (struct TodoFeed.TodoData storage ref) returns (uint256)" } }, "id": 74, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "1049:22:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 75, "nodeType": "ExpressionStatement", "src": "1049:22:0" }, { "expression": { "argumentTypes": null, "id": 80, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 76, "name": "todoMap", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 26, "src": "1077:7:0", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_TodoData_$41_storage_$", "typeString": "mapping(uint256 => struct TodoFeed.TodoData storage ref)" } }, "id": 78, "indexExpression": { "argumentTypes": null, "id": 77, "name": "todoId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 49, "src": "1085:6:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "1077:15:0", "typeDescriptions": { "typeIdentifier": "t_struct$_TodoData_$41_storage", "typeString": "struct TodoFeed.TodoData storage ref" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "id": 79, "name": "newData", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 56, "src": "1095:7:0", "typeDescriptions": { "typeIdentifier": "t_struct$_TodoData_$41_memory_ptr", "typeString": "struct TodoFeed.TodoData memory" } }, "src": "1077:25:0", "typeDescriptions": { "typeIdentifier": "t_struct$_TodoData_$41_storage", "typeString": "struct TodoFeed.TodoData storage ref" } }, "id": 81, "nodeType": "ExpressionStatement", "src": "1077:25:0" }, { "eventCall": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 83, "name": "todoId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 49, "src": "1128:6:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 84, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 204, "src": "1136:3:0", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 85, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "1136:10:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "id": 86, "name": "title", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 43, "src": "1148:5:0", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } }, { "argumentTypes": null, "id": 87, "name": "photo", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 45, "src": "1155:5:0", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, { "argumentTypes": null, "id": 88, "name": "now", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 206, "src": "1162:3:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" }, { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 82, "name": "TodoCompleted", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13, "src": "1114:13:0", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_address_$_t_string_memory_ptr_$_t_bytes_memory_ptr_$_t_uint256_$returns$__$", "typeString": "function (uint256,address,string memory,bytes memory,uint256)" } }, "id": 89, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "1114:52:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 90, "nodeType": "EmitStatement", "src": "1109:57:0" } ] }, "documentation": null, "id": 92, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [], "name": "writeTodo", "nodeType": "FunctionDefinition", "parameters": { "id": 46, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 43, "name": "title", "nodeType": "VariableDeclaration", "scope": 92, "src": "744:12:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string" }, "typeName": { "id": 42, "name": "string", "nodeType": "ElementaryTypeName", "src": "744:6:0", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 45, "name": "photo", "nodeType": "VariableDeclaration", "scope": 92, "src": "758:11:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes" }, "typeName": { "id": 44, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "758:5:0", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" } }, "value": null, "visibility": "internal" } ], "src": "743:27:0" }, "payable": false, "returnParameters": { "id": 47, "nodeType": "ParameterList", "parameters": [], "src": "778:0:0" }, "scope": 189, "src": "725:446:0", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { "id": 118, "nodeType": "Block", "src": "1211:131:0", "statements": [ { "expression": { "argumentTypes": null, "id": 102, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 97, "name": "todoMap", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 26, "src": "1217:7:0", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_TodoData_$41_storage_$", "typeString": "mapping(uint256 => struct TodoFeed.TodoData storage ref)" } }, "id": 99, "indexExpression": { "argumentTypes": null, "id": 98, "name": "todoId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 94, "src": "1225:6:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "1217:15:0", "typeDescriptions": { "typeIdentifier": "t_struct$_TodoData_$41_storage", "typeString": "struct TodoFeed.TodoData storage ref" } }, "id": 100, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberName": "isVerified", "nodeType": "MemberAccess", "referencedDeclaration": 38, "src": "1217:26:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "hexValue": "74727565", "id": 101, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", "src": "1246:4:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "true" }, "src": "1217:33:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 103, "nodeType": "ExpressionStatement", "src": "1217:33:0" }, { "expression": { "argumentTypes": null, "id": 110, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 104, "name": "todoMap", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 26, "src": "1256:7:0", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_TodoData_$41_storage_$", "typeString": "mapping(uint256 => struct TodoFeed.TodoData storage ref)" } }, "id": 106, "indexExpression": { "argumentTypes": null, "id": 105, "name": "todoId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 94, "src": "1264:6:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "1256:15:0", "typeDescriptions": { "typeIdentifier": "t_struct$_TodoData_$41_storage", "typeString": "struct TodoFeed.TodoData storage ref" } }, "id": 107, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberName": "verifier", "nodeType": "MemberAccess", "referencedDeclaration": 40, "src": "1256:24:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 108, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 204, "src": "1283:3:0", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 109, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "1283:10:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "src": "1256:37:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "id": 111, "nodeType": "ExpressionStatement", "src": "1256:37:0" }, { "eventCall": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 113, "name": "todoId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 94, "src": "1318:6:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 114, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 204, "src": "1326:3:0", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 115, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "1326:10:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_address", "typeString": "address" } ], "id": 112, "name": "TodoVerified", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 19, "src": "1305:12:0", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_address_$returns$__$", "typeString": "function (uint256,address)" } }, "id": 116, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "1305:32:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 117, "nodeType": "EmitStatement", "src": "1300:37:0" } ] }, "documentation": null, "id": 119, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [], "name": "verifyTodo", "nodeType": "FunctionDefinition", "parameters": { "id": 95, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 94, "name": "todoId", "nodeType": "VariableDeclaration", "scope": 119, "src": "1195:14:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 93, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1195:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "1194:16:0" }, "payable": false, "returnParameters": { "id": 96, "nodeType": "ParameterList", "parameters": [], "src": "1211:0:0" }, "scope": 189, "src": "1175:167:0", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { "id": 127, "nodeType": "Block", "src": "1403:33:0", "statements": [ { "expression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 124, "name": "todoList", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 22, "src": "1416:8:0", "typeDescriptions": { "typeIdentifier": "t_array$_t_struct$_TodoData_$41_storage_$dyn_storage", "typeString": "struct TodoFeed.TodoData storage ref[] storage ref" } }, "id": 125, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "1416:15:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "functionReturnParameters": 123, "id": 126, "nodeType": "Return", "src": "1409:22:0" } ] }, "documentation": null, "id": 128, "implemented": true, "isConstructor": false, "isDeclaredConst": true, "modifiers": [], "name": "getTotalTodoCount", "nodeType": "FunctionDefinition", "parameters": { "id": 120, "nodeType": "ParameterList", "parameters": [], "src": "1373:2:0" }, "payable": false, "returnParameters": { "id": 123, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 122, "name": "", "nodeType": "VariableDeclaration", "scope": 128, "src": "1397:4:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 121, "name": "uint", "nodeType": "ElementaryTypeName", "src": "1397:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "1396:6:0" }, "scope": 189, "src": "1346:90:0", "stateMutability": "view", "superFunction": null, "visibility": "public" }, { "body": { "id": 187, "nodeType": "Block", "src": "1553:326:0", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 153, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 148, "name": "todoMap", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 26, "src": "1569:7:0", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_TodoData_$41_storage_$", "typeString": "mapping(uint256 => struct TodoFeed.TodoData storage ref)" } }, "id": 150, "indexExpression": { "argumentTypes": null, "id": 149, "name": "todoId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 130, "src": "1577:6:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "1569:15:0", "typeDescriptions": { "typeIdentifier": "t_struct$_TodoData_$41_storage", "typeString": "struct TodoFeed.TodoData storage ref" } }, "id": 151, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "todoId", "nodeType": "MemberAccess", "referencedDeclaration": 28, "src": "1569:22:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": { "argumentTypes": null, "hexValue": "30", "id": 152, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "1595:1:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "src": "1569:27:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "argumentTypes": null, "hexValue": "546f646f20646f6573206e6f74206578697374", "id": 154, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "1598:21:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_a634737b69ab8209e39ee6bdea7c69ed59d5969f72e441f51936e17e6b365bee", "typeString": "literal_string \"Todo does not exist\"" }, "value": "Todo does not exist" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_a634737b69ab8209e39ee6bdea7c69ed59d5969f72e441f51936e17e6b365bee", "typeString": "literal_string \"Todo does not exist\"" } ], "id": 147, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ 207, 208 ], "referencedDeclaration": 208, "src": "1561:7:0", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 155, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "1561:59:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 156, "nodeType": "ExpressionStatement", "src": "1561:59:0" }, { "expression": { "argumentTypes": null, "components": [ { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 157, "name": "todoMap", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 26, "src": "1645:7:0", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_TodoData_$41_storage_$", "typeString": "mapping(uint256 => struct TodoFeed.TodoData storage ref)" } }, "id": 159, "indexExpression": { "argumentTypes": null, "id": 158, "name": "todoId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 130, "src": "1653:6:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "1645:15:0", "typeDescriptions": { "typeIdentifier": "t_struct$_TodoData_$41_storage", "typeString": "struct TodoFeed.TodoData storage ref" } }, "id": 160, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "todoId", "nodeType": "MemberAccess", "referencedDeclaration": 28, "src": "1645:22:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 161, "name": "todoMap", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 26, "src": "1677:7:0", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_TodoData_$41_storage_$", "typeString": "mapping(uint256 => struct TodoFeed.TodoData storage ref)" } }, "id": 163, "indexExpression": { "argumentTypes": null, "id": 162, "name": "todoId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 130, "src": "1685:6:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "1677:15:0", "typeDescriptions": { "typeIdentifier": "t_struct$_TodoData_$41_storage", "typeString": "struct TodoFeed.TodoData storage ref" } }, "id": 164, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "owner", "nodeType": "MemberAccess", "referencedDeclaration": 30, "src": "1677:21:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 165, "name": "todoMap", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 26, "src": "1708:7:0", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_TodoData_$41_storage_$", "typeString": "mapping(uint256 => struct TodoFeed.TodoData storage ref)" } }, "id": 167, "indexExpression": { "argumentTypes": null, "id": 166, "name": "todoId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 130, "src": "1716:6:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "1708:15:0", "typeDescriptions": { "typeIdentifier": "t_struct$_TodoData_$41_storage", "typeString": "struct TodoFeed.TodoData storage ref" } }, "id": 168, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "title", "nodeType": "MemberAccess", "referencedDeclaration": 32, "src": "1708:21:0", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" } }, { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 169, "name": "todoMap", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 26, "src": "1739:7:0", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_TodoData_$41_storage_$", "typeString": "mapping(uint256 => struct TodoFeed.TodoData storage ref)" } }, "id": 171, "indexExpression": { "argumentTypes": null, "id": 170, "name": "todoId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 130, "src": "1747:6:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "1739:15:0", "typeDescriptions": { "typeIdentifier": "t_struct$_TodoData_$41_storage", "typeString": "struct TodoFeed.TodoData storage ref" } }, "id": 172, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "photo", "nodeType": "MemberAccess", "referencedDeclaration": 34, "src": "1739:21:0", "typeDescriptions": { "typeIdentifier": "t_bytes_storage", "typeString": "bytes storage ref" } }, { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 173, "name": "todoMap", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 26, "src": "1778:7:0", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_TodoData_$41_storage_$", "typeString": "mapping(uint256 => struct TodoFeed.TodoData storage ref)" } }, "id": 175, "indexExpression": { "argumentTypes": null, "id": 174, "name": "todoId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 130, "src": "1786:6:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "1778:15:0", "typeDescriptions": { "typeIdentifier": "t_struct$_TodoData_$41_storage", "typeString": "struct TodoFeed.TodoData storage ref" } }, "id": 176, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "timestamp", "nodeType": "MemberAccess", "referencedDeclaration": 36, "src": "1778:25:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 177, "name": "todoMap", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 26, "src": "1813:7:0", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_TodoData_$41_storage_$", "typeString": "mapping(uint256 => struct TodoFeed.TodoData storage ref)" } }, "id": 179, "indexExpression": { "argumentTypes": null, "id": 178, "name": "todoId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 130, "src": "1821:6:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "1813:15:0", "typeDescriptions": { "typeIdentifier": "t_struct$_TodoData_$41_storage", "typeString": "struct TodoFeed.TodoData storage ref" } }, "id": 180, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "isVerified", "nodeType": "MemberAccess", "referencedDeclaration": 38, "src": "1813:26:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 181, "name": "todoMap", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 26, "src": "1849:7:0", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_TodoData_$41_storage_$", "typeString": "mapping(uint256 => struct TodoFeed.TodoData storage ref)" } }, "id": 183, "indexExpression": { "argumentTypes": null, "id": 182, "name": "todoId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 130, "src": "1857:6:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "1849:15:0", "typeDescriptions": { "typeIdentifier": "t_struct$_TodoData_$41_storage", "typeString": "struct TodoFeed.TodoData storage ref" } }, "id": 184, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "verifier", "nodeType": "MemberAccess", "referencedDeclaration": 40, "src": "1849:24:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], "id": 185, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", "src": "1635:239:0", "typeDescriptions": { "typeIdentifier": "t_tuple$_t_uint256_$_t_address_$_t_string_storage_$_t_bytes_storage_$_t_uint256_$_t_bool_$_t_address_$", "typeString": "tuple(uint256,address,string storage ref,bytes storage ref,uint256,bool,address)" } }, "functionReturnParameters": 146, "id": 186, "nodeType": "Return", "src": "1628:246:0" } ] }, "documentation": null, "id": 188, "implemented": true, "isConstructor": false, "isDeclaredConst": true, "modifiers": [], "name": "getTodo", "nodeType": "FunctionDefinition", "parameters": { "id": 131, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 130, "name": "todoId", "nodeType": "VariableDeclaration", "scope": 188, "src": "1458:11:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 129, "name": "uint", "nodeType": "ElementaryTypeName", "src": "1458:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "1457:13:0" }, "payable": false, "returnParameters": { "id": 146, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 133, "name": "", "nodeType": "VariableDeclaration", "scope": 188, "src": "1496:7:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 132, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1496:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 135, "name": "", "nodeType": "VariableDeclaration", "scope": 188, "src": "1505:7:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 134, "name": "address", "nodeType": "ElementaryTypeName", "src": "1505:7:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 137, "name": "", "nodeType": "VariableDeclaration", "scope": 188, "src": "1514:6:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string" }, "typeName": { "id": 136, "name": "string", "nodeType": "ElementaryTypeName", "src": "1514:6:0", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 139, "name": "", "nodeType": "VariableDeclaration", "scope": 188, "src": "1522:5:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes" }, "typeName": { "id": 138, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "1522:5:0", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 141, "name": "", "nodeType": "VariableDeclaration", "scope": 188, "src": "1529:7:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 140, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1529:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 143, "name": "", "nodeType": "VariableDeclaration", "scope": 188, "src": "1538:4:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "typeName": { "id": 142, "name": "bool", "nodeType": "ElementaryTypeName", "src": "1538:4:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 145, "name": "", "nodeType": "VariableDeclaration", "scope": 188, "src": "1544:7:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 144, "name": "address", "nodeType": "ElementaryTypeName", "src": "1544:7:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" } ], "src": "1495:57:0" }, "scope": 189, "src": "1440:439:0", "stateMutability": "view", "superFunction": null, "visibility": "public" } ], "scope": 190, "src": "24:1859:0" } ], "src": "0:1884:0" }, "compiler": { "name": "solc", "version": "0.4.25+commit.59dbf8f1.Emscripten.clang" }, "networks": { "1001": { "events": {}, "links": {}, "address": "0xa47898be53fba0fecdb9b4e1dadea5bf0f3c77f7", "transactionHash": "0x5dae9fb6ca9f664d80e42fad264b2603875d592cc16a0b666f5b1d0553ab1ffb" } }, "schemaVersion": "2.0.2", "updatedAt": "2020-03-23T08:11:45.053Z" }