Skip to content

Instantly share code, notes, and snippets.

@adamw
Created June 26, 2019 10:45
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save adamw/de5499e242e3ad8e68a9be38e254f3b2 to your computer and use it in GitHub Desktop.
Save adamw/de5499e242e3ad8e68a9be38e254f3b2 to your computer and use it in GitHub Desktop.
{
"contractName": "Tender",
"abi": [
{
"constant": true,
"inputs": [
{
"name": "",
"type": "uint256"
}
],
"name": "submittedOffers",
"outputs": [
{
"name": "bidder",
"type": "address"
},
{
"name": "offerHash",
"type": "string"
},
{
"name": "timestamp",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"name": "",
"type": "address"
}
],
"name": "bidderToIndex",
"outputs": [
{
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "dateEnd",
"outputs": [
{
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "offersCount",
"outputs": [
{
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"name": "_dateEnd",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"name": "_bidder",
"type": "address"
},
{
"indexed": false,
"name": "_offerHash",
"type": "string"
}
],
"name": "OfferSubmitted",
"type": "event"
},
{
"constant": false,
"inputs": [
{
"name": "offerHash",
"type": "string"
}
],
"name": "submitOffer",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
}
],
"metadata": "{\"compiler\":{\"version\":\"0.5.8+commit.23d335f2\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"submittedOffers\",\"outputs\":[{\"name\":\"bidder\",\"type\":\"address\"},{\"name\":\"offerHash\",\"type\":\"string\"},{\"name\":\"timestamp\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"address\"}],\"name\":\"bidderToIndex\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"dateEnd\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"offersCount\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"offerHash\",\"type\":\"string\"}],\"name\":\"submitOffer\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"name\":\"_dateEnd\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"_bidder\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_offerHash\",\"type\":\"string\"}],\"name\":\"OfferSubmitted\",\"type\":\"event\"}],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/Users/adamw/projects/eth-tender/contracts/Tender.sol\":\"Tender\"},\"evmVersion\":\"petersburg\",\"libraries\":{},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"/Users/adamw/projects/eth-tender/contracts/Tender.sol\":{\"keccak256\":\"0xe03c3ae4bde85af4ffa573623c3da2ec26c30c206cc68b3899ad77ee3cd130e6\",\"urls\":[\"bzzr://5f806c202d9734e3b3de7f0fb90a8eb7388fc82aee4d639c6439b3beb7dc35d0\"]}},\"version\":1}",
"bytecode": "0x608060405234801561001057600080fd5b506040516020806106938339810180604052602081101561003057600080fd5b81019080805190602001909291905050508060038190555060008081905550506106348061005f6000396000f3fe608060405234801561001057600080fd5b50600436106100575760003560e01c806353a9bb231461005c57806361e23f4e1461013d57806389244e2a14610195578063bec02acc146101b3578063e13b2559146101d1575b600080fd5b6100886004803603602081101561007257600080fd5b810190808035906020019092919050505061028c565b604051808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b838110156101005780820151818401526020810190506100e5565b50505050905090810190601f16801561012d5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b61017f6004803603602081101561015357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061036e565b6040518082815260200191505060405180910390f35b61019d610386565b6040518082815260200191505060405180910390f35b6101bb61038c565b6040518082815260200191505060405180910390f35b61028a600480360360208110156101e757600080fd5b810190808035906020019064010000000081111561020457600080fd5b82018360208201111561021657600080fd5b8035906020019184600183028401116401000000008311171561023857600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050610392565b005b60026020528060005260406000206000915090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690806001018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561035e5780601f106103335761010080835404028352916020019161035e565b820191906000526020600020905b81548152906001019060200180831161034157829003601f168201915b5050505050908060020154905083565b60016020528060005260406000206000915090505481565b60035481565b60005481565b60035442106103a057600080fd5b6000808154809291906001019190505550600054600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060405180606001604052803373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200142815250600260008054815260200190815260200160002060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550602082015181600101908051906020019061049f929190610563565b50604082015181600201559050503373ffffffffffffffffffffffffffffffffffffffff167fd5237aa8873cfbcab5e511a139f143dd33e1d505037291e805542bcb3175b95f826040518080602001828103825283818151815260200191508051906020019080838360005b8381101561052657808201518184015260208101905061050b565b50505050905090810190601f1680156105535780820380516001836020036101000a031916815260200191505b509250505060405180910390a250565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106105a457805160ff19168380011785556105d2565b828001600101855582156105d2579182015b828111156105d15782518255916020019190600101906105b6565b5b5090506105df91906105e3565b5090565b61060591905b808211156106015760008160009055506001016105e9565b5090565b9056fea165627a7a72305820b36b27f796ea680bb72bb5b1e2e2588a0e915d282a6ef6c7d8c8d8fa3aca52450029",
"deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100575760003560e01c806353a9bb231461005c57806361e23f4e1461013d57806389244e2a14610195578063bec02acc146101b3578063e13b2559146101d1575b600080fd5b6100886004803603602081101561007257600080fd5b810190808035906020019092919050505061028c565b604051808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b838110156101005780820151818401526020810190506100e5565b50505050905090810190601f16801561012d5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b61017f6004803603602081101561015357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061036e565b6040518082815260200191505060405180910390f35b61019d610386565b6040518082815260200191505060405180910390f35b6101bb61038c565b6040518082815260200191505060405180910390f35b61028a600480360360208110156101e757600080fd5b810190808035906020019064010000000081111561020457600080fd5b82018360208201111561021657600080fd5b8035906020019184600183028401116401000000008311171561023857600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050610392565b005b60026020528060005260406000206000915090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690806001018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561035e5780601f106103335761010080835404028352916020019161035e565b820191906000526020600020905b81548152906001019060200180831161034157829003601f168201915b5050505050908060020154905083565b60016020528060005260406000206000915090505481565b60035481565b60005481565b60035442106103a057600080fd5b6000808154809291906001019190505550600054600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060405180606001604052803373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200142815250600260008054815260200190815260200160002060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550602082015181600101908051906020019061049f929190610563565b50604082015181600201559050503373ffffffffffffffffffffffffffffffffffffffff167fd5237aa8873cfbcab5e511a139f143dd33e1d505037291e805542bcb3175b95f826040518080602001828103825283818151815260200191508051906020019080838360005b8381101561052657808201518184015260208101905061050b565b50505050905090810190601f1680156105535780820380516001836020036101000a031916815260200191505b509250505060405180910390a250565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106105a457805160ff19168380011785556105d2565b828001600101855582156105d2579182015b828111156105d15782518255916020019190600101906105b6565b5b5090506105df91906105e3565b5090565b61060591905b808211156106015760008160009055506001016105e9565b5090565b9056fea165627a7a72305820b36b27f796ea680bb72bb5b1e2e2588a0e915d282a6ef6c7d8c8d8fa3aca52450029",
"sourceMap": "34:889:1:-;;;467:97;8:9:-1;5:2;;;30:1;27;20:12;5:2;467:97:1;;;;;;;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;467:97:1;;;;;;;;;;;;;;;;524:8;514:7;:18;;;;556:1;542:11;:15;;;;467:97;34:889;;;;;;",
"deployedSourceMap": "34:889:1:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;34:889:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;281:46;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;281:46:1;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;281:46:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;188;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;188:46:1;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;367:22;;;:::i;:::-;;;;;;;;;;;;;;;;;;;159:23;;;:::i;:::-;;;;;;;;;;;;;;;;;;;570:351;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;570:351:1;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;570:351:1;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;570:351:1;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;570:351:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;570:351:1;;;;;;;;;;;;;;;:::i;:::-;;281:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;188:::-;;;;;;;;;;;;;;;;;:::o;367:22::-;;;;:::o;159:23::-;;;;:::o;570:351::-;647:7;;641:3;:13;633:22;;;;;;717:11;;:13;;;;;;;;;;;;;768:11;;740:13;:25;754:10;740:25;;;;;;;;;;;;;;;:39;;;;820:33;;;;;;;;826:10;820:33;;;;;;838:9;820:33;;;;849:3;820:33;;;789:15;:28;805:11;;789:28;;;;;;;;;;;:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;892:10;877:37;;;904:9;877:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;877:37:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;570:351;:::o;34:889::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o",
"source": "pragma solidity >=0.4.25 <0.6.0;\n\ncontract Tender {\n struct Offer {\n address bidder;\n string offerHash;\n uint256 timestamp;\n }\n\n uint public offersCount;\n mapping (address => uint) public bidderToIndex; // to check who already submitted offers\n mapping (uint => Offer) public submittedOffers; // a sequence of submitted offers\n uint256 public dateEnd;\n\n event OfferSubmitted(address indexed _bidder, string _offerHash);\n\n constructor(uint256 _dateEnd) public {\n dateEnd = _dateEnd;\n offersCount = 0;\n }\n\n function submitOffer(string memory offerHash) public {\n require(now < dateEnd);\n //require(bidderToIndex[msg.sender] == 0);\n\n offersCount++;\n bidderToIndex[msg.sender] = offersCount;\n submittedOffers[offersCount] = Offer(msg.sender, offerHash, now);\n \n emit OfferSubmitted(msg.sender, offerHash);\n }\n}\n",
"sourcePath": "/Users/adamw/projects/eth-tender/contracts/Tender.sol",
"ast": {
"absolutePath": "/Users/adamw/projects/eth-tender/contracts/Tender.sol",
"exportedSymbols": {
"Tender": [
137
]
},
"id": 138,
"nodeType": "SourceUnit",
"nodes": [
{
"id": 58,
"literals": [
"solidity",
">=",
"0.4",
".25",
"<",
"0.6",
".0"
],
"nodeType": "PragmaDirective",
"src": "0:32:1"
},
{
"baseContracts": [],
"contractDependencies": [],
"contractKind": "contract",
"documentation": null,
"fullyImplemented": true,
"id": 137,
"linearizedBaseContracts": [
137
],
"name": "Tender",
"nodeType": "ContractDefinition",
"nodes": [
{
"canonicalName": "Tender.Offer",
"id": 65,
"members": [
{
"constant": false,
"id": 60,
"name": "bidder",
"nodeType": "VariableDeclaration",
"scope": 65,
"src": "79:14:1",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 59,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "79:7:1",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 62,
"name": "offerHash",
"nodeType": "VariableDeclaration",
"scope": 65,
"src": "103:16:1",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
},
"typeName": {
"id": 61,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "103:6:1",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 64,
"name": "timestamp",
"nodeType": "VariableDeclaration",
"scope": 65,
"src": "129:17:1",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 63,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "129:7:1",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"name": "Offer",
"nodeType": "StructDefinition",
"scope": 137,
"src": "56:97:1",
"visibility": "public"
},
{
"constant": false,
"id": 67,
"name": "offersCount",
"nodeType": "VariableDeclaration",
"scope": 137,
"src": "159:23:1",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 66,
"name": "uint",
"nodeType": "ElementaryTypeName",
"src": "159:4:1",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "public"
},
{
"constant": false,
"id": 71,
"name": "bidderToIndex",
"nodeType": "VariableDeclaration",
"scope": 137,
"src": "188:46:1",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
"typeString": "mapping(address => uint256)"
},
"typeName": {
"id": 70,
"keyType": {
"id": 68,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "197:7:1",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"nodeType": "Mapping",
"src": "188:25:1",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
"typeString": "mapping(address => uint256)"
},
"valueType": {
"id": 69,
"name": "uint",
"nodeType": "ElementaryTypeName",
"src": "208:4:1",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
},
"value": null,
"visibility": "public"
},
{
"constant": false,
"id": 75,
"name": "submittedOffers",
"nodeType": "VariableDeclaration",
"scope": 137,
"src": "281:46:1",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Offer_$65_storage_$",
"typeString": "mapping(uint256 => struct Tender.Offer)"
},
"typeName": {
"id": 74,
"keyType": {
"id": 72,
"name": "uint",
"nodeType": "ElementaryTypeName",
"src": "290:4:1",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Mapping",
"src": "281:23:1",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Offer_$65_storage_$",
"typeString": "mapping(uint256 => struct Tender.Offer)"
},
"valueType": {
"contractScope": null,
"id": 73,
"name": "Offer",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 65,
"src": "298:5:1",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Offer_$65_storage_ptr",
"typeString": "struct Tender.Offer"
}
}
},
"value": null,
"visibility": "public"
},
{
"constant": false,
"id": 77,
"name": "dateEnd",
"nodeType": "VariableDeclaration",
"scope": 137,
"src": "367:22:1",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 76,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "367:7:1",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "public"
},
{
"anonymous": false,
"documentation": null,
"id": 83,
"name": "OfferSubmitted",
"nodeType": "EventDefinition",
"parameters": {
"id": 82,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 79,
"indexed": true,
"name": "_bidder",
"nodeType": "VariableDeclaration",
"scope": 83,
"src": "417:23:1",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 78,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "417:7:1",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 81,
"indexed": false,
"name": "_offerHash",
"nodeType": "VariableDeclaration",
"scope": 83,
"src": "442:17:1",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string"
},
"typeName": {
"id": 80,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "442:6:1",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "416:44:1"
},
"src": "396:65:1"
},
{
"body": {
"id": 96,
"nodeType": "Block",
"src": "504:60:1",
"statements": [
{
"expression": {
"argumentTypes": null,
"id": 90,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"id": 88,
"name": "dateEnd",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 77,
"src": "514:7:1",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"id": 89,
"name": "_dateEnd",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 85,
"src": "524:8:1",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "514:18:1",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 91,
"nodeType": "ExpressionStatement",
"src": "514:18:1"
},
{
"expression": {
"argumentTypes": null,
"id": 94,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"id": 92,
"name": "offersCount",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 67,
"src": "542:11:1",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"hexValue": "30",
"id": 93,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "556:1:1",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_0_by_1",
"typeString": "int_const 0"
},
"value": "0"
},
"src": "542:15:1",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 95,
"nodeType": "ExpressionStatement",
"src": "542:15:1"
}
]
},
"documentation": null,
"id": 97,
"implemented": true,
"kind": "constructor",
"modifiers": [],
"name": "",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 86,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 85,
"name": "_dateEnd",
"nodeType": "VariableDeclaration",
"scope": 97,
"src": "479:16:1",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 84,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "479:7:1",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "478:18:1"
},
"returnParameters": {
"id": 87,
"nodeType": "ParameterList",
"parameters": [],
"src": "504:0:1"
},
"scope": 137,
"src": "467:97:1",
"stateMutability": "nonpayable",
"superFunction": null,
"visibility": "public"
},
{
"body": {
"id": 135,
"nodeType": "Block",
"src": "623:298:1",
"statements": [
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 105,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"id": 103,
"name": "now",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 154,
"src": "641:3:1",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "<",
"rightExpression": {
"argumentTypes": null,
"id": 104,
"name": "dateEnd",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 77,
"src": "647:7:1",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "641:13:1",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bool",
"typeString": "bool"
}
],
"id": 102,
"name": "require",
"nodeType": "Identifier",
"overloadedDeclarations": [
155,
156
],
"referencedDeclaration": 155,
"src": "633:7:1",
"typeDescriptions": {
"typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
"typeString": "function (bool) pure"
}
},
"id": 106,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "633:22:1",
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 107,
"nodeType": "ExpressionStatement",
"src": "633:22:1"
},
{
"expression": {
"argumentTypes": null,
"id": 109,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"nodeType": "UnaryOperation",
"operator": "++",
"prefix": false,
"src": "717:13:1",
"subExpression": {
"argumentTypes": null,
"id": 108,
"name": "offersCount",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 67,
"src": "717:11:1",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 110,
"nodeType": "ExpressionStatement",
"src": "717:13:1"
},
{
"expression": {
"argumentTypes": null,
"id": 116,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 111,
"name": "bidderToIndex",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 71,
"src": "740:13:1",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
"typeString": "mapping(address => uint256)"
}
},
"id": 114,
"indexExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 112,
"name": "msg",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 152,
"src": "754:3:1",
"typeDescriptions": {
"typeIdentifier": "t_magic_message",
"typeString": "msg"
}
},
"id": 113,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "sender",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "754:10:1",
"typeDescriptions": {
"typeIdentifier": "t_address_payable",
"typeString": "address payable"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "IndexAccess",
"src": "740:25:1",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"id": 115,
"name": "offersCount",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 67,
"src": "768:11:1",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "740:39:1",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 117,
"nodeType": "ExpressionStatement",
"src": "740:39:1"
},
{
"expression": {
"argumentTypes": null,
"id": 127,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 118,
"name": "submittedOffers",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 75,
"src": "789:15:1",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Offer_$65_storage_$",
"typeString": "mapping(uint256 => struct Tender.Offer storage ref)"
}
},
"id": 120,
"indexExpression": {
"argumentTypes": null,
"id": 119,
"name": "offersCount",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 67,
"src": "805:11:1",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "IndexAccess",
"src": "789:28:1",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Offer_$65_storage",
"typeString": "struct Tender.Offer storage ref"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 122,
"name": "msg",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 152,
"src": "826:3:1",
"typeDescriptions": {
"typeIdentifier": "t_magic_message",
"typeString": "msg"
}
},
"id": 123,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "sender",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "826:10:1",
"typeDescriptions": {
"typeIdentifier": "t_address_payable",
"typeString": "address payable"
}
},
{
"argumentTypes": null,
"id": 124,
"name": "offerHash",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 99,
"src": "838:9:1",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
},
{
"argumentTypes": null,
"id": 125,
"name": "now",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 154,
"src": "849:3:1",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address_payable",
"typeString": "address payable"
},
{
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"id": 121,
"name": "Offer",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 65,
"src": "820:5:1",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_struct$_Offer_$65_storage_ptr_$",
"typeString": "type(struct Tender.Offer storage pointer)"
}
},
"id": 126,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "structConstructorCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "820:33:1",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Offer_$65_memory",
"typeString": "struct Tender.Offer memory"
}
},
"src": "789:64:1",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Offer_$65_storage",
"typeString": "struct Tender.Offer storage ref"
}
},
"id": 128,
"nodeType": "ExpressionStatement",
"src": "789:64:1"
},
{
"eventCall": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 130,
"name": "msg",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 152,
"src": "892:3:1",
"typeDescriptions": {
"typeIdentifier": "t_magic_message",
"typeString": "msg"
}
},
"id": 131,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "sender",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "892:10:1",
"typeDescriptions": {
"typeIdentifier": "t_address_payable",
"typeString": "address payable"
}
},
{
"argumentTypes": null,
"id": 132,
"name": "offerHash",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 99,
"src": "904:9:1",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address_payable",
"typeString": "address payable"
},
{
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
],
"id": 129,
"name": "OfferSubmitted",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 83,
"src": "877:14:1",
"typeDescriptions": {
"typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_string_memory_ptr_$returns$__$",
"typeString": "function (address,string memory)"
}
},
"id": 133,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "877:37:1",
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 134,
"nodeType": "EmitStatement",
"src": "872:42:1"
}
]
},
"documentation": null,
"id": 136,
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "submitOffer",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 100,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 99,
"name": "offerHash",
"nodeType": "VariableDeclaration",
"scope": 136,
"src": "591:23:1",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string"
},
"typeName": {
"id": 98,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "591:6:1",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "590:25:1"
},
"returnParameters": {
"id": 101,
"nodeType": "ParameterList",
"parameters": [],
"src": "623:0:1"
},
"scope": 137,
"src": "570:351:1",
"stateMutability": "nonpayable",
"superFunction": null,
"visibility": "public"
}
],
"scope": 138,
"src": "34:889:1"
}
],
"src": "0:924:1"
},
"legacyAST": {
"absolutePath": "/Users/adamw/projects/eth-tender/contracts/Tender.sol",
"exportedSymbols": {
"Tender": [
137
]
},
"id": 138,
"nodeType": "SourceUnit",
"nodes": [
{
"id": 58,
"literals": [
"solidity",
">=",
"0.4",
".25",
"<",
"0.6",
".0"
],
"nodeType": "PragmaDirective",
"src": "0:32:1"
},
{
"baseContracts": [],
"contractDependencies": [],
"contractKind": "contract",
"documentation": null,
"fullyImplemented": true,
"id": 137,
"linearizedBaseContracts": [
137
],
"name": "Tender",
"nodeType": "ContractDefinition",
"nodes": [
{
"canonicalName": "Tender.Offer",
"id": 65,
"members": [
{
"constant": false,
"id": 60,
"name": "bidder",
"nodeType": "VariableDeclaration",
"scope": 65,
"src": "79:14:1",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 59,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "79:7:1",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 62,
"name": "offerHash",
"nodeType": "VariableDeclaration",
"scope": 65,
"src": "103:16:1",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
},
"typeName": {
"id": 61,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "103:6:1",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 64,
"name": "timestamp",
"nodeType": "VariableDeclaration",
"scope": 65,
"src": "129:17:1",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 63,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "129:7:1",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"name": "Offer",
"nodeType": "StructDefinition",
"scope": 137,
"src": "56:97:1",
"visibility": "public"
},
{
"constant": false,
"id": 67,
"name": "offersCount",
"nodeType": "VariableDeclaration",
"scope": 137,
"src": "159:23:1",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 66,
"name": "uint",
"nodeType": "ElementaryTypeName",
"src": "159:4:1",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "public"
},
{
"constant": false,
"id": 71,
"name": "bidderToIndex",
"nodeType": "VariableDeclaration",
"scope": 137,
"src": "188:46:1",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
"typeString": "mapping(address => uint256)"
},
"typeName": {
"id": 70,
"keyType": {
"id": 68,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "197:7:1",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"nodeType": "Mapping",
"src": "188:25:1",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
"typeString": "mapping(address => uint256)"
},
"valueType": {
"id": 69,
"name": "uint",
"nodeType": "ElementaryTypeName",
"src": "208:4:1",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
},
"value": null,
"visibility": "public"
},
{
"constant": false,
"id": 75,
"name": "submittedOffers",
"nodeType": "VariableDeclaration",
"scope": 137,
"src": "281:46:1",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Offer_$65_storage_$",
"typeString": "mapping(uint256 => struct Tender.Offer)"
},
"typeName": {
"id": 74,
"keyType": {
"id": 72,
"name": "uint",
"nodeType": "ElementaryTypeName",
"src": "290:4:1",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Mapping",
"src": "281:23:1",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Offer_$65_storage_$",
"typeString": "mapping(uint256 => struct Tender.Offer)"
},
"valueType": {
"contractScope": null,
"id": 73,
"name": "Offer",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 65,
"src": "298:5:1",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Offer_$65_storage_ptr",
"typeString": "struct Tender.Offer"
}
}
},
"value": null,
"visibility": "public"
},
{
"constant": false,
"id": 77,
"name": "dateEnd",
"nodeType": "VariableDeclaration",
"scope": 137,
"src": "367:22:1",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 76,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "367:7:1",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "public"
},
{
"anonymous": false,
"documentation": null,
"id": 83,
"name": "OfferSubmitted",
"nodeType": "EventDefinition",
"parameters": {
"id": 82,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 79,
"indexed": true,
"name": "_bidder",
"nodeType": "VariableDeclaration",
"scope": 83,
"src": "417:23:1",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 78,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "417:7:1",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 81,
"indexed": false,
"name": "_offerHash",
"nodeType": "VariableDeclaration",
"scope": 83,
"src": "442:17:1",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string"
},
"typeName": {
"id": 80,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "442:6:1",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "416:44:1"
},
"src": "396:65:1"
},
{
"body": {
"id": 96,
"nodeType": "Block",
"src": "504:60:1",
"statements": [
{
"expression": {
"argumentTypes": null,
"id": 90,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"id": 88,
"name": "dateEnd",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 77,
"src": "514:7:1",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"id": 89,
"name": "_dateEnd",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 85,
"src": "524:8:1",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "514:18:1",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 91,
"nodeType": "ExpressionStatement",
"src": "514:18:1"
},
{
"expression": {
"argumentTypes": null,
"id": 94,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"id": 92,
"name": "offersCount",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 67,
"src": "542:11:1",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"hexValue": "30",
"id": 93,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "556:1:1",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_0_by_1",
"typeString": "int_const 0"
},
"value": "0"
},
"src": "542:15:1",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 95,
"nodeType": "ExpressionStatement",
"src": "542:15:1"
}
]
},
"documentation": null,
"id": 97,
"implemented": true,
"kind": "constructor",
"modifiers": [],
"name": "",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 86,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 85,
"name": "_dateEnd",
"nodeType": "VariableDeclaration",
"scope": 97,
"src": "479:16:1",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 84,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "479:7:1",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "478:18:1"
},
"returnParameters": {
"id": 87,
"nodeType": "ParameterList",
"parameters": [],
"src": "504:0:1"
},
"scope": 137,
"src": "467:97:1",
"stateMutability": "nonpayable",
"superFunction": null,
"visibility": "public"
},
{
"body": {
"id": 135,
"nodeType": "Block",
"src": "623:298:1",
"statements": [
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 105,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"id": 103,
"name": "now",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 154,
"src": "641:3:1",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "<",
"rightExpression": {
"argumentTypes": null,
"id": 104,
"name": "dateEnd",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 77,
"src": "647:7:1",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "641:13:1",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bool",
"typeString": "bool"
}
],
"id": 102,
"name": "require",
"nodeType": "Identifier",
"overloadedDeclarations": [
155,
156
],
"referencedDeclaration": 155,
"src": "633:7:1",
"typeDescriptions": {
"typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
"typeString": "function (bool) pure"
}
},
"id": 106,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "633:22:1",
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 107,
"nodeType": "ExpressionStatement",
"src": "633:22:1"
},
{
"expression": {
"argumentTypes": null,
"id": 109,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"nodeType": "UnaryOperation",
"operator": "++",
"prefix": false,
"src": "717:13:1",
"subExpression": {
"argumentTypes": null,
"id": 108,
"name": "offersCount",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 67,
"src": "717:11:1",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 110,
"nodeType": "ExpressionStatement",
"src": "717:13:1"
},
{
"expression": {
"argumentTypes": null,
"id": 116,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 111,
"name": "bidderToIndex",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 71,
"src": "740:13:1",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
"typeString": "mapping(address => uint256)"
}
},
"id": 114,
"indexExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 112,
"name": "msg",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 152,
"src": "754:3:1",
"typeDescriptions": {
"typeIdentifier": "t_magic_message",
"typeString": "msg"
}
},
"id": 113,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "sender",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "754:10:1",
"typeDescriptions": {
"typeIdentifier": "t_address_payable",
"typeString": "address payable"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "IndexAccess",
"src": "740:25:1",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"id": 115,
"name": "offersCount",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 67,
"src": "768:11:1",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "740:39:1",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 117,
"nodeType": "ExpressionStatement",
"src": "740:39:1"
},
{
"expression": {
"argumentTypes": null,
"id": 127,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 118,
"name": "submittedOffers",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 75,
"src": "789:15:1",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Offer_$65_storage_$",
"typeString": "mapping(uint256 => struct Tender.Offer storage ref)"
}
},
"id": 120,
"indexExpression": {
"argumentTypes": null,
"id": 119,
"name": "offersCount",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 67,
"src": "805:11:1",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "IndexAccess",
"src": "789:28:1",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Offer_$65_storage",
"typeString": "struct Tender.Offer storage ref"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 122,
"name": "msg",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 152,
"src": "826:3:1",
"typeDescriptions": {
"typeIdentifier": "t_magic_message",
"typeString": "msg"
}
},
"id": 123,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "sender",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "826:10:1",
"typeDescriptions": {
"typeIdentifier": "t_address_payable",
"typeString": "address payable"
}
},
{
"argumentTypes": null,
"id": 124,
"name": "offerHash",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 99,
"src": "838:9:1",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
},
{
"argumentTypes": null,
"id": 125,
"name": "now",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 154,
"src": "849:3:1",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address_payable",
"typeString": "address payable"
},
{
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"id": 121,
"name": "Offer",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 65,
"src": "820:5:1",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_struct$_Offer_$65_storage_ptr_$",
"typeString": "type(struct Tender.Offer storage pointer)"
}
},
"id": 126,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "structConstructorCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "820:33:1",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Offer_$65_memory",
"typeString": "struct Tender.Offer memory"
}
},
"src": "789:64:1",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Offer_$65_storage",
"typeString": "struct Tender.Offer storage ref"
}
},
"id": 128,
"nodeType": "ExpressionStatement",
"src": "789:64:1"
},
{
"eventCall": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 130,
"name": "msg",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 152,
"src": "892:3:1",
"typeDescriptions": {
"typeIdentifier": "t_magic_message",
"typeString": "msg"
}
},
"id": 131,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "sender",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "892:10:1",
"typeDescriptions": {
"typeIdentifier": "t_address_payable",
"typeString": "address payable"
}
},
{
"argumentTypes": null,
"id": 132,
"name": "offerHash",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 99,
"src": "904:9:1",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address_payable",
"typeString": "address payable"
},
{
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
],
"id": 129,
"name": "OfferSubmitted",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 83,
"src": "877:14:1",
"typeDescriptions": {
"typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_string_memory_ptr_$returns$__$",
"typeString": "function (address,string memory)"
}
},
"id": 133,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "877:37:1",
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 134,
"nodeType": "EmitStatement",
"src": "872:42:1"
}
]
},
"documentation": null,
"id": 136,
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "submitOffer",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 100,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 99,
"name": "offerHash",
"nodeType": "VariableDeclaration",
"scope": 136,
"src": "591:23:1",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string"
},
"typeName": {
"id": 98,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "591:6:1",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "590:25:1"
},
"returnParameters": {
"id": 101,
"nodeType": "ParameterList",
"parameters": [],
"src": "623:0:1"
},
"scope": 137,
"src": "570:351:1",
"stateMutability": "nonpayable",
"superFunction": null,
"visibility": "public"
}
],
"scope": 138,
"src": "34:889:1"
}
],
"src": "0:924:1"
},
"compiler": {
"name": "solc",
"version": "0.5.8+commit.23d335f2.Emscripten.clang"
},
"networks": {
"5777": {
"events": {},
"links": {},
"address": "0xB560d9537AFa2b1D22da8EFCD15B4792E9b5ED15",
"transactionHash": "0x372756c0edd346f58cc3e6e065d0acd8df142387c31d963e7594259fb1eeb3a5"
}
},
"schemaVersion": "3.0.11",
"updatedAt": "2019-06-25T15:45:19.821Z",
"devdoc": {
"methods": {}
},
"userdoc": {
"methods": {}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment