Files
BappTutorial/todofeed/backend-todofeed/build/contracts/TodoFeed.json
elegant651 6e0388b653 init
2020-03-24 14:39:38 +09:00

5257 lines
229 KiB
JSON

{
"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"
}