From dea371e2ef45ec52aa0339a757a41bf71702e2d1 Mon Sep 17 00:00:00 2001 From: Rafael Belchior Date: Thu, 6 Jul 2023 05:29:00 +0000 Subject: [PATCH] refactor(plugin-htlc-eth-besu): stop using the deprecated api.encodePacked 1. Add tests to vanilla HashTimeLock 2. Replace abi.encodePacked by abi.encode 3. Compile and replace generated ABIs (for HashTimeLock and PrivateHashTimeLock) Co-authored-by: Peter Somogyvari Signed-off-by: Rafael Belchior Signed-off-by: Peter Somogyvari --- .../main/solidity/contracts/HashTimeLock.json | 704 +- .../main/solidity/contracts/HashTimeLock.sol | 4 +- .../contracts/PrivateHashTimeLock.json | 7081 +++++++++++++++++ .../contracts/PrivateHashTimeLock.sol | 2 +- .../solidity/integration/HashTimeLock.t.sol | 119 + 5 files changed, 7555 insertions(+), 355 deletions(-) create mode 100644 packages/cactus-plugin-htlc-eth-besu/src/main/solidity/contracts/PrivateHashTimeLock.json create mode 100644 packages/cactus-plugin-htlc-eth-besu/src/test/solidity/integration/HashTimeLock.t.sol diff --git a/packages/cactus-plugin-htlc-eth-besu/src/main/solidity/contracts/HashTimeLock.json b/packages/cactus-plugin-htlc-eth-besu/src/main/solidity/contracts/HashTimeLock.json index 52dbdce722d..24556a3e936 100644 --- a/packages/cactus-plugin-htlc-eth-besu/src/main/solidity/contracts/HashTimeLock.json +++ b/packages/cactus-plugin-htlc-eth-besu/src/main/solidity/contracts/HashTimeLock.json @@ -316,18 +316,18 @@ "type": "function" } ], - "metadata": "{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"inputAmount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"outputAmount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"expiration\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"hashLock\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"outputNetwork\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"outputAddress\",\"type\":\"string\"}],\"name\":\"NewContract\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"hashLock\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"Refund\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"secret\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"hashLock\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"Withdraw\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"}],\"name\":\"contractExists\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"result\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"contracts\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"inputAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"outputAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expiration\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"status\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"hashLock\",\"type\":\"bytes32\"},{\"internalType\":\"address payable\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"address payable\",\"name\":\"receiver\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"outputNetwork\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"outputAddress\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"}],\"name\":\"getSingleStatus\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"result\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"ids\",\"type\":\"bytes32[]\"}],\"name\":\"getStatus\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"outputAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expiration\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"hashLock\",\"type\":\"bytes32\"},{\"internalType\":\"address payable\",\"name\":\"receiver\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"outputNetwork\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"outputAddress\",\"type\":\"string\"}],\"name\":\"newContract\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"}],\"name\":\"refund\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"secret\",\"type\":\"bytes32\"}],\"name\":\"withdraw\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"/workspaces/cacti/packages/cactus-plugin-htlc-eth-besu/src/main/solidity/contracts/HashTimeLock.sol\":\"HashTimeLock\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/workspaces/cacti/packages/cactus-plugin-htlc-eth-besu/src/main/solidity/contracts/HashTimeLock.sol\":{\"keccak256\":\"0xabc77fd57fdaad6467113b890ae9b1e4ce97226c5a0ee0c3b622804ccb0d98b6\",\"urls\":[\"bzz-raw://4977d711b4ecac65823fd08b61578df079d5e17b673f5d94fdd9d870d1fd9398\",\"dweb:/ipfs/QmYNgu9H2qmeoG6gqtTPgEpcB4hxpQwbopBeQNRioELZX4\"]}},\"version\":1}", - "bytecode": "608060405234801561001057600080fd5b5061126d806100206000396000f3fe6080604052600436106100705760003560e01c80637249fbb61161004e5780637249fbb6146100fd578063d36320951461011d578063ec56a37314610130578063fbdf3b431461016557600080fd5b80632f21a6631461007557806363615149146100ab5780636c8244b8146100cd575b600080fd5b34801561008157600080fd5b50610095610090366004610cf5565b610193565b6040516100a29190610db3565b60405180910390f35b3480156100b757600080fd5b506100cb6100c6366004610df7565b610241565b005b3480156100d957600080fd5b506100ed6100e8366004610e19565b6103cc565b60405190151581526020016100a2565b34801561010957600080fd5b506100cb610118366004610e19565b610586565b6100cb61012b366004610e7b565b61069b565b34801561013c57600080fd5b5061015061014b366004610e19565b6109b1565b6040516100a299989796959493929190610f76565b34801561017157600080fd5b50610185610180366004610e19565b610b1a565b6040519081526020016100a2565b60606000825167ffffffffffffffff8111156101b1576101b1610cdf565b6040519080825280602002602001820160405280156101da578160200160208202803683370190505b50905060005b835181101561023a5761020b8482815181106101fe576101fe610fe5565b6020026020010151610b1a565b82828151811061021d5761021d610fe5565b60209081029190910101528061023281610ffb565b9150506101e0565b5092915050565b6000828152602081905260409020600381015460011461029a5760405162461bcd60e51b815260206004820152600f60248201526e535741505f4e4f545f41435449564560881b60448201526064015b60405180910390fd5b428160020154116102bd5760405162461bcd60e51b815260040161029190611022565b604080516020810184905201604051602081830303815290604052805190602001208160040154146103225760405162461bcd60e51b815260206004820152600e60248201526d1253959053125117d4d150d4915560921b6044820152606401610291565b600381810155600681015481546040516001600160a01b039092169181156108fc0291906000818181858888f19350505050158015610365573d6000803e3d6000fd5b506006810154600582015460048301546040516001600160a01b0393841693929092169186917f2d3a5ed13d0553389b4078e01264416362e34d23520fda797fbc17f3905ed131916103bf91888252602082015260400190565b60405180910390a4505050565b60008181526020818152604080832081516101208101835281548152600182015493810193909352600281015491830191909152600381015460608301526004810154608083015260058101546001600160a01b0390811660a084015260068201541660c08301526007810180548493929160e084019161044c90611048565b80601f016020809104026020016040519081016040528092919081815260200182805461047890611048565b80156104c55780601f1061049a576101008083540402835291602001916104c5565b820191906000526020600020905b8154815290600101906020018083116104a857829003601f168201915b505050505081526020016008820180546104de90611048565b80601f016020809104026020016040519081016040528092919081815260200182805461050a90611048565b80156105575780601f1061052c57610100808354040283529160200191610557565b820191906000526020600020905b81548152906001019060200180831161053a57829003601f168201915b505050505081525050905060008160600151036105775750600092915050565b50600192915050565b50919050565b600081815260208190526040902060038101546001146105da5760405162461bcd60e51b815260206004820152600f60248201526e535741505f4e4f545f41435449564560881b6044820152606401610291565b42816002015411156105fe5760405162461bcd60e51b815260040161029190611022565b60026003820155600581015481546040516001600160a01b039092169181156108fc0291906000818181858888f19350505050158015610642573d6000803e3d6000fd5b506006810154600582015460048301546040519081526001600160a01b03928316929091169084907f6fa50d56c31f3efe0cb6ff06232bffce8fe8c4155e3cbb6f2d79dd12631c25229060200160405180910390a45050565b33344289116106bc5760405162461bcd60e51b815260040161029190611022565b600081116106fd5760405162461bcd60e51b815260206004820152600e60248201526d1253959053125117d05353d5539560921b6044820152606401610291565b6040516bffffffffffffffffffffffff19606084811b8216602084015289901b1660348201526048810182905260688101899052608881018a905260009060029060a80160408051601f198184030181529082905261075b9161107c565b602060405180830381855afa158015610778573d6000803e3d6000fd5b5050506040513d601f19601f8201168201806040525081019061079b9190611098565b600081815260208190526040902060030154909150156107eb5760405162461bcd60e51b815260206004820152600b60248201526a535741505f45584953545360a81b6044820152606401610291565b6040518061012001604052808381526020018c81526020018b8152602001600181526020018a8152602001846001600160a01b03168152602001896001600160a01b0316815260200188888080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250505090825250604080516020601f8901819004810282018101909252878152918101919088908890819084018382808284376000920182905250939094525050838152602081815260409182902084518155908401516001820155908301516002820155606083015160038201556080830151600482015560a08301516005820180546001600160a01b039283166001600160a01b03199182161790915560c085015160068401805491909316911617905560e083015190915060078201906109309082611100565b5061010082015160088201906109469082611100565b50905050876001600160a01b0316836001600160a01b0316827f767d0ffbc3d16cc51fc05770a22976e4b0fda9198e37878b76979429b2d5d88c858f8f8f8e8e8e8e60405161099c9897969594939291906111e9565b60405180910390a45050505050505050505050565b60006020819052908152604090208054600182015460028301546003840154600485015460058601546006870154600788018054979896979596949593946001600160a01b03938416949390921692610a0990611048565b80601f0160208091040260200160405190810160405280929190818152602001828054610a3590611048565b8015610a825780601f10610a5757610100808354040283529160200191610a82565b820191906000526020600020905b815481529060010190602001808311610a6557829003601f168201915b505050505090806008018054610a9790611048565b80601f0160208091040260200160405190810160405280929190818152602001828054610ac390611048565b8015610b105780601f10610ae557610100808354040283529160200191610b10565b820191906000526020600020905b815481529060010190602001808311610af357829003601f168201915b5050505050905089565b60008181526020818152604080832081516101208101835281548152600182015493810193909352600281015491830191909152600381015460608301526004810154608083015260058101546001600160a01b0390811660a084015260068201541660c08301526007810180548493929160e0840191610b9a90611048565b80601f0160208091040260200160405190810160405280929190818152602001828054610bc690611048565b8015610c135780601f10610be857610100808354040283529160200191610c13565b820191906000526020600020905b815481529060010190602001808311610bf657829003601f168201915b50505050508152602001600882018054610c2c90611048565b80601f0160208091040260200160405190810160405280929190818152602001828054610c5890611048565b8015610ca55780601f10610c7a57610100808354040283529160200191610ca5565b820191906000526020600020905b815481529060010190602001808311610c8857829003601f168201915b505050505081525050905060018160600151148015610cc75750428160400151105b15610cd55760049150610580565b6060015192915050565b634e487b7160e01b600052604160045260246000fd5b60006020808385031215610d0857600080fd5b823567ffffffffffffffff80821115610d2057600080fd5b818501915085601f830112610d3457600080fd5b813581811115610d4657610d46610cdf565b8060051b604051601f19603f83011681018181108582111715610d6b57610d6b610cdf565b604052918252848201925083810185019188831115610d8957600080fd5b938501935b82851015610da757843584529385019392850192610d8e565b98975050505050505050565b6020808252825182820181905260009190848201906040850190845b81811015610deb57835183529284019291840191600101610dcf565b50909695505050505050565b60008060408385031215610e0a57600080fd5b50508035926020909101359150565b600060208284031215610e2b57600080fd5b5035919050565b60008083601f840112610e4457600080fd5b50813567ffffffffffffffff811115610e5c57600080fd5b602083019150836020828501011115610e7457600080fd5b9250929050565b60008060008060008060008060c0898b031215610e9757600080fd5b88359750602089013596506040890135955060608901356001600160a01b0381168114610ec357600080fd5b9450608089013567ffffffffffffffff80821115610ee057600080fd5b610eec8c838d01610e32565b909650945060a08b0135915080821115610f0557600080fd5b50610f128b828c01610e32565b999c989b5096995094979396929594505050565b60005b83811015610f41578181015183820152602001610f29565b50506000910152565b60008151808452610f62816020860160208601610f26565b601f01601f19169290920160200192915050565b60006101208b83528a602084015289604084015288606084015287608084015260018060a01b0380881660a085015280871660c0850152508060e0840152610fc081840186610f4a565b9050828103610100840152610fd58185610f4a565b9c9b505050505050505050505050565b634e487b7160e01b600052603260045260246000fd5b60006001820161101b57634e487b7160e01b600052601160045260246000fd5b5060010190565b6020808252600c908201526b494e56414c49445f54494d4560a01b604082015260600190565b600181811c9082168061105c57607f821691505b60208210810361058057634e487b7160e01b600052602260045260246000fd5b6000825161108e818460208701610f26565b9190910192915050565b6000602082840312156110aa57600080fd5b5051919050565b601f8211156110fb57600081815260208120601f850160051c810160208610156110d85750805b601f850160051c820191505b818110156110f7578281556001016110e4565b5050505b505050565b815167ffffffffffffffff81111561111a5761111a610cdf565b61112e816111288454611048565b846110b1565b602080601f831160018114611163576000841561114b5750858301515b600019600386901b1c1916600185901b1785556110f7565b600085815260208120601f198616915b8281101561119257888601518255948401946001909101908401611173565b50858210156111b05787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b88815287602082015286604082015285606082015260c06080820152600061121560c0830186886111c0565b82810360a08401526112288185876111c0565b9b9a505050505050505050505056fea2646970667358221220c627a3bba4baa947ef5e6c36a4506e0dd9730e5317965ee38ec3030fbe154cf264736f6c63430008130033", - "deployedBytecode": "6080604052600436106100705760003560e01c80637249fbb61161004e5780637249fbb6146100fd578063d36320951461011d578063ec56a37314610130578063fbdf3b431461016557600080fd5b80632f21a6631461007557806363615149146100ab5780636c8244b8146100cd575b600080fd5b34801561008157600080fd5b50610095610090366004610cf5565b610193565b6040516100a29190610db3565b60405180910390f35b3480156100b757600080fd5b506100cb6100c6366004610df7565b610241565b005b3480156100d957600080fd5b506100ed6100e8366004610e19565b6103cc565b60405190151581526020016100a2565b34801561010957600080fd5b506100cb610118366004610e19565b610586565b6100cb61012b366004610e7b565b61069b565b34801561013c57600080fd5b5061015061014b366004610e19565b6109b1565b6040516100a299989796959493929190610f76565b34801561017157600080fd5b50610185610180366004610e19565b610b1a565b6040519081526020016100a2565b60606000825167ffffffffffffffff8111156101b1576101b1610cdf565b6040519080825280602002602001820160405280156101da578160200160208202803683370190505b50905060005b835181101561023a5761020b8482815181106101fe576101fe610fe5565b6020026020010151610b1a565b82828151811061021d5761021d610fe5565b60209081029190910101528061023281610ffb565b9150506101e0565b5092915050565b6000828152602081905260409020600381015460011461029a5760405162461bcd60e51b815260206004820152600f60248201526e535741505f4e4f545f41435449564560881b60448201526064015b60405180910390fd5b428160020154116102bd5760405162461bcd60e51b815260040161029190611022565b604080516020810184905201604051602081830303815290604052805190602001208160040154146103225760405162461bcd60e51b815260206004820152600e60248201526d1253959053125117d4d150d4915560921b6044820152606401610291565b600381810155600681015481546040516001600160a01b039092169181156108fc0291906000818181858888f19350505050158015610365573d6000803e3d6000fd5b506006810154600582015460048301546040516001600160a01b0393841693929092169186917f2d3a5ed13d0553389b4078e01264416362e34d23520fda797fbc17f3905ed131916103bf91888252602082015260400190565b60405180910390a4505050565b60008181526020818152604080832081516101208101835281548152600182015493810193909352600281015491830191909152600381015460608301526004810154608083015260058101546001600160a01b0390811660a084015260068201541660c08301526007810180548493929160e084019161044c90611048565b80601f016020809104026020016040519081016040528092919081815260200182805461047890611048565b80156104c55780601f1061049a576101008083540402835291602001916104c5565b820191906000526020600020905b8154815290600101906020018083116104a857829003601f168201915b505050505081526020016008820180546104de90611048565b80601f016020809104026020016040519081016040528092919081815260200182805461050a90611048565b80156105575780601f1061052c57610100808354040283529160200191610557565b820191906000526020600020905b81548152906001019060200180831161053a57829003601f168201915b505050505081525050905060008160600151036105775750600092915050565b50600192915050565b50919050565b600081815260208190526040902060038101546001146105da5760405162461bcd60e51b815260206004820152600f60248201526e535741505f4e4f545f41435449564560881b6044820152606401610291565b42816002015411156105fe5760405162461bcd60e51b815260040161029190611022565b60026003820155600581015481546040516001600160a01b039092169181156108fc0291906000818181858888f19350505050158015610642573d6000803e3d6000fd5b506006810154600582015460048301546040519081526001600160a01b03928316929091169084907f6fa50d56c31f3efe0cb6ff06232bffce8fe8c4155e3cbb6f2d79dd12631c25229060200160405180910390a45050565b33344289116106bc5760405162461bcd60e51b815260040161029190611022565b600081116106fd5760405162461bcd60e51b815260206004820152600e60248201526d1253959053125117d05353d5539560921b6044820152606401610291565b6040516bffffffffffffffffffffffff19606084811b8216602084015289901b1660348201526048810182905260688101899052608881018a905260009060029060a80160408051601f198184030181529082905261075b9161107c565b602060405180830381855afa158015610778573d6000803e3d6000fd5b5050506040513d601f19601f8201168201806040525081019061079b9190611098565b600081815260208190526040902060030154909150156107eb5760405162461bcd60e51b815260206004820152600b60248201526a535741505f45584953545360a81b6044820152606401610291565b6040518061012001604052808381526020018c81526020018b8152602001600181526020018a8152602001846001600160a01b03168152602001896001600160a01b0316815260200188888080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250505090825250604080516020601f8901819004810282018101909252878152918101919088908890819084018382808284376000920182905250939094525050838152602081815260409182902084518155908401516001820155908301516002820155606083015160038201556080830151600482015560a08301516005820180546001600160a01b039283166001600160a01b03199182161790915560c085015160068401805491909316911617905560e083015190915060078201906109309082611100565b5061010082015160088201906109469082611100565b50905050876001600160a01b0316836001600160a01b0316827f767d0ffbc3d16cc51fc05770a22976e4b0fda9198e37878b76979429b2d5d88c858f8f8f8e8e8e8e60405161099c9897969594939291906111e9565b60405180910390a45050505050505050505050565b60006020819052908152604090208054600182015460028301546003840154600485015460058601546006870154600788018054979896979596949593946001600160a01b03938416949390921692610a0990611048565b80601f0160208091040260200160405190810160405280929190818152602001828054610a3590611048565b8015610a825780601f10610a5757610100808354040283529160200191610a82565b820191906000526020600020905b815481529060010190602001808311610a6557829003601f168201915b505050505090806008018054610a9790611048565b80601f0160208091040260200160405190810160405280929190818152602001828054610ac390611048565b8015610b105780601f10610ae557610100808354040283529160200191610b10565b820191906000526020600020905b815481529060010190602001808311610af357829003601f168201915b5050505050905089565b60008181526020818152604080832081516101208101835281548152600182015493810193909352600281015491830191909152600381015460608301526004810154608083015260058101546001600160a01b0390811660a084015260068201541660c08301526007810180548493929160e0840191610b9a90611048565b80601f0160208091040260200160405190810160405280929190818152602001828054610bc690611048565b8015610c135780601f10610be857610100808354040283529160200191610c13565b820191906000526020600020905b815481529060010190602001808311610bf657829003601f168201915b50505050508152602001600882018054610c2c90611048565b80601f0160208091040260200160405190810160405280929190818152602001828054610c5890611048565b8015610ca55780601f10610c7a57610100808354040283529160200191610ca5565b820191906000526020600020905b815481529060010190602001808311610c8857829003601f168201915b505050505081525050905060018160600151148015610cc75750428160400151105b15610cd55760049150610580565b6060015192915050565b634e487b7160e01b600052604160045260246000fd5b60006020808385031215610d0857600080fd5b823567ffffffffffffffff80821115610d2057600080fd5b818501915085601f830112610d3457600080fd5b813581811115610d4657610d46610cdf565b8060051b604051601f19603f83011681018181108582111715610d6b57610d6b610cdf565b604052918252848201925083810185019188831115610d8957600080fd5b938501935b82851015610da757843584529385019392850192610d8e565b98975050505050505050565b6020808252825182820181905260009190848201906040850190845b81811015610deb57835183529284019291840191600101610dcf565b50909695505050505050565b60008060408385031215610e0a57600080fd5b50508035926020909101359150565b600060208284031215610e2b57600080fd5b5035919050565b60008083601f840112610e4457600080fd5b50813567ffffffffffffffff811115610e5c57600080fd5b602083019150836020828501011115610e7457600080fd5b9250929050565b60008060008060008060008060c0898b031215610e9757600080fd5b88359750602089013596506040890135955060608901356001600160a01b0381168114610ec357600080fd5b9450608089013567ffffffffffffffff80821115610ee057600080fd5b610eec8c838d01610e32565b909650945060a08b0135915080821115610f0557600080fd5b50610f128b828c01610e32565b999c989b5096995094979396929594505050565b60005b83811015610f41578181015183820152602001610f29565b50506000910152565b60008151808452610f62816020860160208601610f26565b601f01601f19169290920160200192915050565b60006101208b83528a602084015289604084015288606084015287608084015260018060a01b0380881660a085015280871660c0850152508060e0840152610fc081840186610f4a565b9050828103610100840152610fd58185610f4a565b9c9b505050505050505050505050565b634e487b7160e01b600052603260045260246000fd5b60006001820161101b57634e487b7160e01b600052601160045260246000fd5b5060010190565b6020808252600c908201526b494e56414c49445f54494d4560a01b604082015260600190565b600181811c9082168061105c57607f821691505b60208210810361058057634e487b7160e01b600052602260045260246000fd5b6000825161108e818460208701610f26565b9190910192915050565b6000602082840312156110aa57600080fd5b5051919050565b601f8211156110fb57600081815260208120601f850160051c810160208610156110d85750805b601f850160051c820191505b818110156110f7578281556001016110e4565b5050505b505050565b815167ffffffffffffffff81111561111a5761111a610cdf565b61112e816111288454611048565b846110b1565b602080601f831160018114611163576000841561114b5750858301515b600019600386901b1c1916600185901b1785556110f7565b600085815260208120601f198616915b8281101561119257888601518255948401946001909101908401611173565b50858210156111b05787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b88815287602082015286604082015285606082015260c06080820152600061121560c0830186886111c0565b82810360a08401526112288185876111c0565b9b9a505050505050505050505056fea2646970667358221220c627a3bba4baa947ef5e6c36a4506e0dd9730e5317965ee38ec3030fbe154cf264736f6c63430008130033", - "sourceMap": "25:4088:0:-:0;;;;;;;;;;;;;;;;;;;", - "deployedSourceMap": "25:4088:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3210:303;;;;;;;;;;-1:-1:-1;3210:303:0;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2383:466;;;;;;;;;;-1:-1:-1;2383:466:0;;;;;:::i;:::-;;:::i;:::-;;3854:257;;;;;;;;;;-1:-1:-1;3854:257:0;;;;;:::i;:::-;;:::i;:::-;;;2506:14:1;;2499:22;2481:41;;2469:2;2454:18;3854:257:0;2341:187:1;2855:349:0;;;;;;;;;;-1:-1:-1;2855:349:0;;;;;:::i;:::-;;:::i;1438:939::-;;;;;;:::i;:::-;;:::i;53:49::-;;;;;;;;;;-1:-1:-1;53:49:0;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;;;;:::i;3519:329::-;;;;;;;;;;-1:-1:-1;3519:329:0;;;;;:::i;:::-;;:::i;:::-;;;5678:25:1;;;5666:2;5651:18;3519:329:0;5532:177:1;3210:303:0;3272:16;3300:23;3340:3;:10;3326:25;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3326:25:0;;3300:51;;3367:13;3362:121;3394:3;:10;3386:5;:18;3362:121;;;3445:27;3461:3;3465:5;3461:10;;;;;;;;:::i;:::-;;;;;;;3445:15;:27::i;:::-;3429:6;3436:5;3429:13;;;;;;;;:::i;:::-;;;;;;;;;;:43;3406:7;;;;:::i;:::-;;;;3362:121;;;-1:-1:-1;3500:6:0;3210:303;-1:-1:-1;;3210:303:0:o;2383:466::-;2448:22;2473:13;;;;;;;;;;2505:8;;;;323:1;2505:18;2497:46;;;;-1:-1:-1;;;2497:46:0;;6285:2:1;2497:46:0;;;6267:21:1;6324:2;6304:18;;;6297:30;-1:-1:-1;;;6343:18:1;;;6336:45;6398:18;;2497:46:0;;;;;;;;;2577:15;2562:1;:12;;;:30;2554:55;;;;-1:-1:-1;;;2554:55:0;;;;;;;:::i;:::-;2652:24;;;;;;6897:19:1;;;6932:12;2652:24:0;;;;;;;;;;;;2642:35;;;;;;2628:1;:10;;;:49;2620:76;;;;-1:-1:-1;;;2620:76:0;;7157:2:1;2620:76:0;;;7139:21:1;7196:2;7176:18;;;7169:30;-1:-1:-1;;;7215:18:1;;;7208:44;7269:18;;2620:76:0;6955:338:1;2620:76:0;479:1;2707:8;;;:20;2738:10;;;;2758:13;;2738:34;;-1:-1:-1;;;;;2738:10:0;;;;:34;;;;;2758:13;2738:10;:34;:10;:34;2758:13;2738:10;:34;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2831:10:0;;;;2821:8;;;;2809:10;;;;2788:54;;-1:-1:-1;;;;;2831:10:0;;;;2821:8;;;;;2797:2;;2788:54;;;;2801:6;7472:25:1;;7528:2;7513:18;;7506:34;7460:2;7445:18;;7298:248;2788:54:0;;;;;;;;2438:411;2383:466;;:::o;3854:257::-;3911:11;3969:13;;;;;;;;;;;3934:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3934:48:0;;;;;;;;;;;;;;;;;;;;;3911:11;;3934:48;3969:13;3934:48;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;247:1;3997:12;:19;;;:27;3993:112;;-1:-1:-1;4047:5:0;;3854:257;-1:-1:-1;;3854:257:0:o;3993:112::-;-1:-1:-1;4090:4:0;;3854:257;-1:-1:-1;;3854:257:0:o;3993:112::-;3924:187;3854:257;;;:::o;2855:349::-;2902:22;2927:13;;;;;;;;;;2959:8;;;;323:1;2959:18;2951:46;;;;-1:-1:-1;;;2951:46:0;;6285:2:1;2951:46:0;;;6267:21:1;6324:2;6304:18;;;6297:30;-1:-1:-1;;;6343:18:1;;;6336:45;6398:18;;2951:46:0;6083:339:1;2951:46:0;3032:15;3016:1;:12;;;:31;;3008:56;;;;-1:-1:-1;;;3008:56:0;;;;;;;:::i;:::-;407:1;3075:8;;;:19;3105:8;;;;3123:13;;3105:32;;-1:-1:-1;;;;;3105:8:0;;;;:32;;;;;3123:13;3105:8;:32;:8;:32;3123:13;3105:8;:32;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3186:10:0;;;;3176:8;;;;3164:10;;;;3153:44;;5678:25:1;;;-1:-1:-1;;;;;3186:10:0;;;;3176:8;;;;3160:2;;3153:44;;5666:2:1;5651:18;3153:44:0;;;;;;;2892:312;2855:349;:::o;1438:939::-;1721:10;1764:9;1805:15;1792:28;;1784:53;;;;-1:-1:-1;;;1784:53:0;;;;;;;:::i;:::-;1870:1;1856:11;:15;1848:42;;;;-1:-1:-1;;;1848:42:0;;8320:2:1;1848:42:0;;;8302:21:1;8359:2;8339:18;;;8332:30;-1:-1:-1;;;8378:18:1;;;8371:44;8432:18;;1848:42:0;8118:338:1;1848:42:0;1921:69;;-1:-1:-1;;8804:2:1;8800:15;;;8796:24;;1921:69:0;;;8784:37:1;8855:15;;;8851:24;8837:12;;;8830:46;8892:12;;;8885:28;;;8929:12;;;8922:28;;;8966:13;;;8959:29;;;1901:10:0;;1914:77;;9004:13:1;;1921:69:0;;;-1:-1:-1;;1921:69:0;;;;;;;;;;1914:77;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;247:1;2010:13;;;;;;;;;;:20;;;1901:90;;-1:-1:-1;2010:28:0;2002:52;;;;-1:-1:-1;;;2002:52:0;;9711:2:1;2002:52:0;;;9693:21:1;9750:2;9730:18;;;9723:30;-1:-1:-1;;;9769:18:1;;;9762:41;9820:18;;2002:52:0;9509:335:1;2002:52:0;2081:139;;;;;;;;2107:11;2081:139;;;;2120:12;2081:139;;;;2134:10;2081:139;;;;323:1;2081:139;;;;2154:8;2081:139;;;;2164:6;-1:-1:-1;;;;;2081:139:0;;;;;2172:8;-1:-1:-1;;;;;2081:139:0;;;;;2182:13;;2081:139;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;2081:139:0;;;-1:-1:-1;2081:139:0;;;;;;;;;;;;;;;;;;;;;;;;;;;2197:13;;;;;;2081:139;;2197:13;;;;2081:139;;;;;;;;-1:-1:-1;2081:139:0;;;;-1:-1:-1;;2065:13:0;;;;;;;;;;;;:155;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2065:155:0;;;-1:-1:-1;;;;;;2065:155:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:13;;-1:-1:-1;2065:155:0;;;;;;;;:::i;:::-;-1:-1:-1;2065:155:0;;;;;;;;;;;;:::i;:::-;;;;;2322:8;-1:-1:-1;;;;;2236:134:0;2314:6;-1:-1:-1;;;;;2236:134:0;2300:2;2236:134;2261:11;2274:12;2288:10;2304:8;2332:13;;2347;;2236:134;;;;;;;;;;;;;:::i;:::-;;;;;;;;1678:699;;;1438:939;;;;;;;;:::o;53:49::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;53:49:0;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;3519:329::-;3577:14;3638:13;;;;;;;;;;;3603:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3603:48:0;;;;;;;;;;;;;;;;;;;;;3577:14;;3603:48;3638:13;3603:48;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;323:1;3666:12;:19;;;:29;:74;;;;;3725:15;3699:12;:23;;;:41;3666:74;3662:180;;;550:1;3756:16;;3662:180;;;3812:19;;;;3519:329;-1:-1:-1;;3519:329:0:o;14:127:1:-;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:1115;230:6;261:2;304;292:9;283:7;279:23;275:32;272:52;;;320:1;317;310:12;272:52;360:9;347:23;389:18;430:2;422:6;419:14;416:34;;;446:1;443;436:12;416:34;484:6;473:9;469:22;459:32;;529:7;522:4;518:2;514:13;510:27;500:55;;551:1;548;541:12;500:55;587:2;574:16;609:2;605;602:10;599:36;;;615:18;;:::i;:::-;661:2;658:1;654:10;693:2;687:9;756:2;752:7;747:2;743;739:11;735:25;727:6;723:38;811:6;799:10;796:22;791:2;779:10;776:18;773:46;770:72;;;822:18;;:::i;:::-;858:2;851:22;908:18;;;942:15;;;;-1:-1:-1;984:11:1;;;980:20;;;1012:19;;;1009:39;;;1044:1;1041;1034:12;1009:39;1068:11;;;;1088:142;1104:6;1099:3;1096:15;1088:142;;;1170:17;;1158:30;;1121:12;;;;1208;;;;1088:142;;;1249:6;146:1115;-1:-1:-1;;;;;;;;146:1115:1:o;1266:632::-;1437:2;1489:21;;;1559:13;;1462:18;;;1581:22;;;1408:4;;1437:2;1660:15;;;;1634:2;1619:18;;;1408:4;1703:169;1717:6;1714:1;1711:13;1703:169;;;1778:13;;1766:26;;1847:15;;;;1812:12;;;;1739:1;1732:9;1703:169;;;-1:-1:-1;1889:3:1;;1266:632;-1:-1:-1;;;;;;1266:632:1:o;1903:248::-;1971:6;1979;2032:2;2020:9;2011:7;2007:23;2003:32;2000:52;;;2048:1;2045;2038:12;2000:52;-1:-1:-1;;2071:23:1;;;2141:2;2126:18;;;2113:32;;-1:-1:-1;1903:248:1:o;2156:180::-;2215:6;2268:2;2256:9;2247:7;2243:23;2239:32;2236:52;;;2284:1;2281;2274:12;2236:52;-1:-1:-1;2307:23:1;;2156:180;-1:-1:-1;2156:180:1:o;2533:348::-;2585:8;2595:6;2649:3;2642:4;2634:6;2630:17;2626:27;2616:55;;2667:1;2664;2657:12;2616:55;-1:-1:-1;2690:20:1;;2733:18;2722:30;;2719:50;;;2765:1;2762;2755:12;2719:50;2802:4;2794:6;2790:17;2778:29;;2854:3;2847:4;2838:6;2830;2826:19;2822:30;2819:39;2816:59;;;2871:1;2868;2861:12;2816:59;2533:348;;;;;:::o;2886:1110::-;3022:6;3030;3038;3046;3054;3062;3070;3078;3131:3;3119:9;3110:7;3106:23;3102:33;3099:53;;;3148:1;3145;3138:12;3099:53;3171:23;;;-1:-1:-1;3241:2:1;3226:18;;3213:32;;-1:-1:-1;3292:2:1;3277:18;;3264:32;;-1:-1:-1;3346:2:1;3331:18;;3318:32;-1:-1:-1;;;;;3379:31:1;;3369:42;;3359:70;;3425:1;3422;3415:12;3359:70;3448:5;-1:-1:-1;3504:3:1;3489:19;;3476:33;3528:18;3558:14;;;3555:34;;;3585:1;3582;3575:12;3555:34;3624:59;3675:7;3666:6;3655:9;3651:22;3624:59;:::i;:::-;3702:8;;-1:-1:-1;3598:85:1;-1:-1:-1;3790:3:1;3775:19;;3762:33;;-1:-1:-1;3807:16:1;;;3804:36;;;3836:1;3833;3826:12;3804:36;;3875:61;3928:7;3917:8;3906:9;3902:24;3875:61;:::i;:::-;2886:1110;;;;-1:-1:-1;2886:1110:1;;-1:-1:-1;2886:1110:1;;;;;;3955:8;-1:-1:-1;;;2886:1110:1:o;4001:250::-;4086:1;4096:113;4110:6;4107:1;4104:13;4096:113;;;4186:11;;;4180:18;4167:11;;;4160:39;4132:2;4125:10;4096:113;;;-1:-1:-1;;4243:1:1;4225:16;;4218:27;4001:250::o;4256:271::-;4298:3;4336:5;4330:12;4363:6;4358:3;4351:19;4379:76;4448:6;4441:4;4436:3;4432:14;4425:4;4418:5;4414:16;4379:76;:::i;:::-;4509:2;4488:15;-1:-1:-1;;4484:29:1;4475:39;;;;4516:4;4471:50;;4256:271;-1:-1:-1;;4256:271:1:o;4532:995::-;4920:4;4949:3;4979:6;4968:9;4961:25;5022:6;5017:2;5006:9;5002:18;4995:34;5065:6;5060:2;5049:9;5045:18;5038:34;5108:6;5103:2;5092:9;5088:18;5081:34;5152:6;5146:3;5135:9;5131:19;5124:35;5195:1;5191;5186:3;5182:11;5178:19;5246:2;5238:6;5234:15;5228:3;5217:9;5213:19;5206:44;5299:2;5291:6;5287:15;5281:3;5270:9;5266:19;5259:44;;5340:2;5334:3;5323:9;5319:19;5312:31;5366:45;5407:2;5396:9;5392:18;5384:6;5366:45;:::i;:::-;5352:59;;5460:9;5452:6;5448:22;5442:3;5431:9;5427:19;5420:51;5488:33;5514:6;5506;5488:33;:::i;:::-;5480:41;4532:995;-1:-1:-1;;;;;;;;;;;;4532:995:1:o;5714:127::-;5775:10;5770:3;5766:20;5763:1;5756:31;5806:4;5803:1;5796:15;5830:4;5827:1;5820:15;5846:232;5885:3;5906:17;;;5903:140;;5965:10;5960:3;5956:20;5953:1;5946:31;6000:4;5997:1;5990:15;6028:4;6025:1;6018:15;5903:140;-1:-1:-1;6070:1:1;6059:13;;5846:232::o;6427:336::-;6629:2;6611:21;;;6668:2;6648:18;;;6641:30;-1:-1:-1;;;6702:2:1;6687:18;;6680:42;6754:2;6739:18;;6427:336::o;7551:380::-;7630:1;7626:12;;;;7673;;;7694:61;;7748:4;7740:6;7736:17;7726:27;;7694:61;7801:2;7793:6;7790:14;7770:18;7767:38;7764:161;;7847:10;7842:3;7838:20;7835:1;7828:31;7882:4;7879:1;7872:15;7910:4;7907:1;7900:15;9028:287;9157:3;9195:6;9189:13;9211:66;9270:6;9265:3;9258:4;9250:6;9246:17;9211:66;:::i;:::-;9293:16;;;;;9028:287;-1:-1:-1;;9028:287:1:o;9320:184::-;9390:6;9443:2;9431:9;9422:7;9418:23;9414:32;9411:52;;;9459:1;9456;9449:12;9411:52;-1:-1:-1;9482:16:1;;9320:184;-1:-1:-1;9320:184:1:o;9975:545::-;10077:2;10072:3;10069:11;10066:448;;;10113:1;10138:5;10134:2;10127:17;10183:4;10179:2;10169:19;10253:2;10241:10;10237:19;10234:1;10230:27;10224:4;10220:38;10289:4;10277:10;10274:20;10271:47;;;-1:-1:-1;10312:4:1;10271:47;10367:2;10362:3;10358:12;10355:1;10351:20;10345:4;10341:31;10331:41;;10422:82;10440:2;10433:5;10430:13;10422:82;;;10485:17;;;10466:1;10455:13;10422:82;;;10426:3;;;10066:448;9975:545;;;:::o;10696:1352::-;10822:3;10816:10;10849:18;10841:6;10838:30;10835:56;;;10871:18;;:::i;:::-;10900:97;10990:6;10950:38;10982:4;10976:11;10950:38;:::i;:::-;10944:4;10900:97;:::i;:::-;11052:4;;11116:2;11105:14;;11133:1;11128:663;;;;11835:1;11852:6;11849:89;;;-1:-1:-1;11904:19:1;;;11898:26;11849:89;-1:-1:-1;;10653:1:1;10649:11;;;10645:24;10641:29;10631:40;10677:1;10673:11;;;10628:57;11951:81;;11098:944;;11128:663;9922:1;9915:14;;;9959:4;9946:18;;-1:-1:-1;;11164:20:1;;;11282:236;11296:7;11293:1;11290:14;11282:236;;;11385:19;;;11379:26;11364:42;;11477:27;;;;11445:1;11433:14;;;;11312:19;;11282:236;;;11286:3;11546:6;11537:7;11534:19;11531:201;;;11607:19;;;11601:26;-1:-1:-1;;11690:1:1;11686:14;;;11702:3;11682:24;11678:37;11674:42;11659:58;11644:74;;11531:201;-1:-1:-1;;;;;11778:1:1;11762:14;;;11758:22;11745:36;;-1:-1:-1;10696:1352:1:o;12053:267::-;12142:6;12137:3;12130:19;12194:6;12187:5;12180:4;12175:3;12171:14;12158:43;-1:-1:-1;12246:1:1;12221:16;;;12239:4;12217:27;;;12210:38;;;;12302:2;12281:15;;;-1:-1:-1;;12277:29:1;12268:39;;;12264:50;;12053:267::o;12325:725::-;12654:6;12643:9;12636:25;12697:6;12692:2;12681:9;12677:18;12670:34;12740:6;12735:2;12724:9;12720:18;12713:34;12783:6;12778:2;12767:9;12763:18;12756:34;12827:3;12821;12810:9;12806:19;12799:32;12617:4;12854:63;12912:3;12901:9;12897:19;12889:6;12881;12854:63;:::i;:::-;12966:9;12958:6;12954:22;12948:3;12937:9;12933:19;12926:51;12994:50;13037:6;13029;13021;12994:50;:::i;:::-;12986:58;12325:725;-1:-1:-1;;;;;;;;;;;12325:725:1:o", - "sourcePath": "/workspaces/cacti/packages/cactus-plugin-htlc-eth-besu/src/main/solidity/contracts/HashTimeLock.sol", + "metadata": "{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"inputAmount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"outputAmount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"expiration\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"hashLock\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"outputNetwork\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"outputAddress\",\"type\":\"string\"}],\"name\":\"NewContract\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"hashLock\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"Refund\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"secret\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"hashLock\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"Withdraw\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"}],\"name\":\"contractExists\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"result\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"contracts\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"inputAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"outputAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expiration\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"status\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"hashLock\",\"type\":\"bytes32\"},{\"internalType\":\"address payable\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"address payable\",\"name\":\"receiver\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"outputNetwork\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"outputAddress\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"}],\"name\":\"getSingleStatus\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"result\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"ids\",\"type\":\"bytes32[]\"}],\"name\":\"getStatus\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"outputAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expiration\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"hashLock\",\"type\":\"bytes32\"},{\"internalType\":\"address payable\",\"name\":\"receiver\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"outputNetwork\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"outputAddress\",\"type\":\"string\"}],\"name\":\"newContract\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"}],\"name\":\"refund\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"secret\",\"type\":\"bytes32\"}],\"name\":\"withdraw\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"/home/peter/a/cacti-1/packages/cactus-plugin-htlc-eth-besu/src/main/solidity/contracts/HashTimeLock.sol\":\"HashTimeLock\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/home/peter/a/cacti-1/packages/cactus-plugin-htlc-eth-besu/src/main/solidity/contracts/HashTimeLock.sol\":{\"keccak256\":\"0xef03f900c730f542f4cc625272085ccbc4e8318af9573b87d05779e6c0f3ac82\",\"urls\":[\"bzz-raw://2640489b365f0e9161335e75a31fc0c103550e6015d28dd035eca0e6537724c1\",\"dweb:/ipfs/QmWunBXi4R2jntRrCVLriicBGFUVQ35DUCiyyaV59y45nm\"]}},\"version\":1}", + "bytecode": "608060405234801561001057600080fd5b506111dd806100206000396000f3fe6080604052600436106100705760003560e01c80637249fbb61161004e5780637249fbb6146100fd578063d36320951461011d578063ec56a37314610130578063fbdf3b431461016557600080fd5b80632f21a6631461007557806363615149146100ab5780636c8244b8146100cd575b600080fd5b34801561008157600080fd5b50610095610090366004610ca4565b610193565b6040516100a29190610d62565b60405180910390f35b3480156100b757600080fd5b506100cb6100c6366004610da6565b610241565b005b3480156100d957600080fd5b506100ed6100e8366004610dc8565b6103cc565b60405190151581526020016100a2565b34801561010957600080fd5b506100cb610118366004610dc8565b610586565b6100cb61012b366004610e2a565b61069b565b34801561013c57600080fd5b5061015061014b366004610dc8565b610960565b6040516100a299989796959493929190610f1b565b34801561017157600080fd5b50610185610180366004610dc8565b610ac9565b6040519081526020016100a2565b60606000825167ffffffffffffffff8111156101b1576101b1610c8e565b6040519080825280602002602001820160405280156101da578160200160208202803683370190505b50905060005b835181101561023a5761020b8482815181106101fe576101fe610f8a565b6020026020010151610ac9565b82828151811061021d5761021d610f8a565b60209081029190910101528061023281610fa0565b9150506101e0565b5092915050565b6000828152602081905260409020600381015460011461029a5760405162461bcd60e51b815260206004820152600f60248201526e535741505f4e4f545f41435449564560881b60448201526064015b60405180910390fd5b428160020154116102bd5760405162461bcd60e51b815260040161029190610fc7565b604080516020810184905201604051602081830303815290604052805190602001208160040154146103225760405162461bcd60e51b815260206004820152600e60248201526d1253959053125117d4d150d4915560921b6044820152606401610291565b600381810155600681015481546040516001600160a01b039092169181156108fc0291906000818181858888f19350505050158015610365573d6000803e3d6000fd5b506006810154600582015460048301546040516001600160a01b0393841693929092169186917f2d3a5ed13d0553389b4078e01264416362e34d23520fda797fbc17f3905ed131916103bf91888252602082015260400190565b60405180910390a4505050565b60008181526020818152604080832081516101208101835281548152600182015493810193909352600281015491830191909152600381015460608301526004810154608083015260058101546001600160a01b0390811660a084015260068201541660c08301526007810180548493929160e084019161044c90610fed565b80601f016020809104026020016040519081016040528092919081815260200182805461047890610fed565b80156104c55780601f1061049a576101008083540402835291602001916104c5565b820191906000526020600020905b8154815290600101906020018083116104a857829003601f168201915b505050505081526020016008820180546104de90610fed565b80601f016020809104026020016040519081016040528092919081815260200182805461050a90610fed565b80156105575780601f1061052c57610100808354040283529160200191610557565b820191906000526020600020905b81548152906001019060200180831161053a57829003601f168201915b505050505081525050905060008160600151036105775750600092915050565b50600192915050565b50919050565b600081815260208190526040902060038101546001146105da5760405162461bcd60e51b815260206004820152600f60248201526e535741505f4e4f545f41435449564560881b6044820152606401610291565b42816002015411156105fe5760405162461bcd60e51b815260040161029190610fc7565b60026003820155600581015481546040516001600160a01b039092169181156108fc0291906000818181858888f19350505050158015610642573d6000803e3d6000fd5b506006810154600582015460048301546040519081526001600160a01b03928316929091169084907f6fa50d56c31f3efe0cb6ff06232bffce8fe8c4155e3cbb6f2d79dd12631c25229060200160405180910390a45050565b33344289116106bc5760405162461bcd60e51b815260040161029190610fc7565b600081116106fd5760405162461bcd60e51b815260206004820152600e60248201526d1253959053125117d05353d5539560921b6044820152606401610291565b604080516001600160a01b038085166020830152891691810191909152606081018290526080810189905260a081018a905260009060c00160408051601f1981840301815291815281516020928301206000818152928390529120600301549091501561079a5760405162461bcd60e51b815260206004820152600b60248201526a535741505f45584953545360a81b6044820152606401610291565b6040518061012001604052808381526020018c81526020018b8152602001600181526020018a8152602001846001600160a01b03168152602001896001600160a01b0316815260200188888080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250505090825250604080516020601f8901819004810282018101909252878152918101919088908890819084018382808284376000920182905250939094525050838152602081815260409182902084518155908401516001820155908301516002820155606083015160038201556080830151600482015560a08301516005820180546001600160a01b039283166001600160a01b03199182161790915560c085015160068401805491909316911617905560e083015190915060078201906108df9082611070565b5061010082015160088201906108f59082611070565b50905050876001600160a01b0316836001600160a01b0316827f767d0ffbc3d16cc51fc05770a22976e4b0fda9198e37878b76979429b2d5d88c858f8f8f8e8e8e8e60405161094b989796959493929190611159565b60405180910390a45050505050505050505050565b60006020819052908152604090208054600182015460028301546003840154600485015460058601546006870154600788018054979896979596949593946001600160a01b039384169493909216926109b890610fed565b80601f01602080910402602001604051908101604052809291908181526020018280546109e490610fed565b8015610a315780601f10610a0657610100808354040283529160200191610a31565b820191906000526020600020905b815481529060010190602001808311610a1457829003601f168201915b505050505090806008018054610a4690610fed565b80601f0160208091040260200160405190810160405280929190818152602001828054610a7290610fed565b8015610abf5780601f10610a9457610100808354040283529160200191610abf565b820191906000526020600020905b815481529060010190602001808311610aa257829003601f168201915b5050505050905089565b60008181526020818152604080832081516101208101835281548152600182015493810193909352600281015491830191909152600381015460608301526004810154608083015260058101546001600160a01b0390811660a084015260068201541660c08301526007810180548493929160e0840191610b4990610fed565b80601f0160208091040260200160405190810160405280929190818152602001828054610b7590610fed565b8015610bc25780601f10610b9757610100808354040283529160200191610bc2565b820191906000526020600020905b815481529060010190602001808311610ba557829003601f168201915b50505050508152602001600882018054610bdb90610fed565b80601f0160208091040260200160405190810160405280929190818152602001828054610c0790610fed565b8015610c545780601f10610c2957610100808354040283529160200191610c54565b820191906000526020600020905b815481529060010190602001808311610c3757829003601f168201915b505050505081525050905060018160600151148015610c765750428160400151105b15610c845760049150610580565b6060015192915050565b634e487b7160e01b600052604160045260246000fd5b60006020808385031215610cb757600080fd5b823567ffffffffffffffff80821115610ccf57600080fd5b818501915085601f830112610ce357600080fd5b813581811115610cf557610cf5610c8e565b8060051b604051601f19603f83011681018181108582111715610d1a57610d1a610c8e565b604052918252848201925083810185019188831115610d3857600080fd5b938501935b82851015610d5657843584529385019392850192610d3d565b98975050505050505050565b6020808252825182820181905260009190848201906040850190845b81811015610d9a57835183529284019291840191600101610d7e565b50909695505050505050565b60008060408385031215610db957600080fd5b50508035926020909101359150565b600060208284031215610dda57600080fd5b5035919050565b60008083601f840112610df357600080fd5b50813567ffffffffffffffff811115610e0b57600080fd5b602083019150836020828501011115610e2357600080fd5b9250929050565b60008060008060008060008060c0898b031215610e4657600080fd5b88359750602089013596506040890135955060608901356001600160a01b0381168114610e7257600080fd5b9450608089013567ffffffffffffffff80821115610e8f57600080fd5b610e9b8c838d01610de1565b909650945060a08b0135915080821115610eb457600080fd5b50610ec18b828c01610de1565b999c989b5096995094979396929594505050565b6000815180845260005b81811015610efb57602081850181015186830182015201610edf565b506000602082860101526020601f19601f83011685010191505092915050565b60006101208b83528a602084015289604084015288606084015287608084015260018060a01b0380881660a085015280871660c0850152508060e0840152610f6581840186610ed5565b9050828103610100840152610f7a8185610ed5565b9c9b505050505050505050505050565b634e487b7160e01b600052603260045260246000fd5b600060018201610fc057634e487b7160e01b600052601160045260246000fd5b5060010190565b6020808252600c908201526b494e56414c49445f54494d4560a01b604082015260600190565b600181811c9082168061100157607f821691505b60208210810361058057634e487b7160e01b600052602260045260246000fd5b601f82111561106b57600081815260208120601f850160051c810160208610156110485750805b601f850160051c820191505b8181101561106757828155600101611054565b5050505b505050565b815167ffffffffffffffff81111561108a5761108a610c8e565b61109e816110988454610fed565b84611021565b602080601f8311600181146110d357600084156110bb5750858301515b600019600386901b1c1916600185901b178555611067565b600085815260208120601f198616915b82811015611102578886015182559484019460019091019084016110e3565b50858210156111205787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b88815287602082015286604082015285606082015260c06080820152600061118560c083018688611130565b82810360a0840152611198818587611130565b9b9a505050505050505050505056fea264697066735822122030bbf0da5a4d9f76e8e8e188736a3c81e856842b4cb98fa89761c5b98db9504364736f6c63430008130033", + "deployedBytecode": "6080604052600436106100705760003560e01c80637249fbb61161004e5780637249fbb6146100fd578063d36320951461011d578063ec56a37314610130578063fbdf3b431461016557600080fd5b80632f21a6631461007557806363615149146100ab5780636c8244b8146100cd575b600080fd5b34801561008157600080fd5b50610095610090366004610ca4565b610193565b6040516100a29190610d62565b60405180910390f35b3480156100b757600080fd5b506100cb6100c6366004610da6565b610241565b005b3480156100d957600080fd5b506100ed6100e8366004610dc8565b6103cc565b60405190151581526020016100a2565b34801561010957600080fd5b506100cb610118366004610dc8565b610586565b6100cb61012b366004610e2a565b61069b565b34801561013c57600080fd5b5061015061014b366004610dc8565b610960565b6040516100a299989796959493929190610f1b565b34801561017157600080fd5b50610185610180366004610dc8565b610ac9565b6040519081526020016100a2565b60606000825167ffffffffffffffff8111156101b1576101b1610c8e565b6040519080825280602002602001820160405280156101da578160200160208202803683370190505b50905060005b835181101561023a5761020b8482815181106101fe576101fe610f8a565b6020026020010151610ac9565b82828151811061021d5761021d610f8a565b60209081029190910101528061023281610fa0565b9150506101e0565b5092915050565b6000828152602081905260409020600381015460011461029a5760405162461bcd60e51b815260206004820152600f60248201526e535741505f4e4f545f41435449564560881b60448201526064015b60405180910390fd5b428160020154116102bd5760405162461bcd60e51b815260040161029190610fc7565b604080516020810184905201604051602081830303815290604052805190602001208160040154146103225760405162461bcd60e51b815260206004820152600e60248201526d1253959053125117d4d150d4915560921b6044820152606401610291565b600381810155600681015481546040516001600160a01b039092169181156108fc0291906000818181858888f19350505050158015610365573d6000803e3d6000fd5b506006810154600582015460048301546040516001600160a01b0393841693929092169186917f2d3a5ed13d0553389b4078e01264416362e34d23520fda797fbc17f3905ed131916103bf91888252602082015260400190565b60405180910390a4505050565b60008181526020818152604080832081516101208101835281548152600182015493810193909352600281015491830191909152600381015460608301526004810154608083015260058101546001600160a01b0390811660a084015260068201541660c08301526007810180548493929160e084019161044c90610fed565b80601f016020809104026020016040519081016040528092919081815260200182805461047890610fed565b80156104c55780601f1061049a576101008083540402835291602001916104c5565b820191906000526020600020905b8154815290600101906020018083116104a857829003601f168201915b505050505081526020016008820180546104de90610fed565b80601f016020809104026020016040519081016040528092919081815260200182805461050a90610fed565b80156105575780601f1061052c57610100808354040283529160200191610557565b820191906000526020600020905b81548152906001019060200180831161053a57829003601f168201915b505050505081525050905060008160600151036105775750600092915050565b50600192915050565b50919050565b600081815260208190526040902060038101546001146105da5760405162461bcd60e51b815260206004820152600f60248201526e535741505f4e4f545f41435449564560881b6044820152606401610291565b42816002015411156105fe5760405162461bcd60e51b815260040161029190610fc7565b60026003820155600581015481546040516001600160a01b039092169181156108fc0291906000818181858888f19350505050158015610642573d6000803e3d6000fd5b506006810154600582015460048301546040519081526001600160a01b03928316929091169084907f6fa50d56c31f3efe0cb6ff06232bffce8fe8c4155e3cbb6f2d79dd12631c25229060200160405180910390a45050565b33344289116106bc5760405162461bcd60e51b815260040161029190610fc7565b600081116106fd5760405162461bcd60e51b815260206004820152600e60248201526d1253959053125117d05353d5539560921b6044820152606401610291565b604080516001600160a01b038085166020830152891691810191909152606081018290526080810189905260a081018a905260009060c00160408051601f1981840301815291815281516020928301206000818152928390529120600301549091501561079a5760405162461bcd60e51b815260206004820152600b60248201526a535741505f45584953545360a81b6044820152606401610291565b6040518061012001604052808381526020018c81526020018b8152602001600181526020018a8152602001846001600160a01b03168152602001896001600160a01b0316815260200188888080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250505090825250604080516020601f8901819004810282018101909252878152918101919088908890819084018382808284376000920182905250939094525050838152602081815260409182902084518155908401516001820155908301516002820155606083015160038201556080830151600482015560a08301516005820180546001600160a01b039283166001600160a01b03199182161790915560c085015160068401805491909316911617905560e083015190915060078201906108df9082611070565b5061010082015160088201906108f59082611070565b50905050876001600160a01b0316836001600160a01b0316827f767d0ffbc3d16cc51fc05770a22976e4b0fda9198e37878b76979429b2d5d88c858f8f8f8e8e8e8e60405161094b989796959493929190611159565b60405180910390a45050505050505050505050565b60006020819052908152604090208054600182015460028301546003840154600485015460058601546006870154600788018054979896979596949593946001600160a01b039384169493909216926109b890610fed565b80601f01602080910402602001604051908101604052809291908181526020018280546109e490610fed565b8015610a315780601f10610a0657610100808354040283529160200191610a31565b820191906000526020600020905b815481529060010190602001808311610a1457829003601f168201915b505050505090806008018054610a4690610fed565b80601f0160208091040260200160405190810160405280929190818152602001828054610a7290610fed565b8015610abf5780601f10610a9457610100808354040283529160200191610abf565b820191906000526020600020905b815481529060010190602001808311610aa257829003601f168201915b5050505050905089565b60008181526020818152604080832081516101208101835281548152600182015493810193909352600281015491830191909152600381015460608301526004810154608083015260058101546001600160a01b0390811660a084015260068201541660c08301526007810180548493929160e0840191610b4990610fed565b80601f0160208091040260200160405190810160405280929190818152602001828054610b7590610fed565b8015610bc25780601f10610b9757610100808354040283529160200191610bc2565b820191906000526020600020905b815481529060010190602001808311610ba557829003601f168201915b50505050508152602001600882018054610bdb90610fed565b80601f0160208091040260200160405190810160405280929190818152602001828054610c0790610fed565b8015610c545780601f10610c2957610100808354040283529160200191610c54565b820191906000526020600020905b815481529060010190602001808311610c3757829003601f168201915b505050505081525050905060018160600151148015610c765750428160400151105b15610c845760049150610580565b6060015192915050565b634e487b7160e01b600052604160045260246000fd5b60006020808385031215610cb757600080fd5b823567ffffffffffffffff80821115610ccf57600080fd5b818501915085601f830112610ce357600080fd5b813581811115610cf557610cf5610c8e565b8060051b604051601f19603f83011681018181108582111715610d1a57610d1a610c8e565b604052918252848201925083810185019188831115610d3857600080fd5b938501935b82851015610d5657843584529385019392850192610d3d565b98975050505050505050565b6020808252825182820181905260009190848201906040850190845b81811015610d9a57835183529284019291840191600101610d7e565b50909695505050505050565b60008060408385031215610db957600080fd5b50508035926020909101359150565b600060208284031215610dda57600080fd5b5035919050565b60008083601f840112610df357600080fd5b50813567ffffffffffffffff811115610e0b57600080fd5b602083019150836020828501011115610e2357600080fd5b9250929050565b60008060008060008060008060c0898b031215610e4657600080fd5b88359750602089013596506040890135955060608901356001600160a01b0381168114610e7257600080fd5b9450608089013567ffffffffffffffff80821115610e8f57600080fd5b610e9b8c838d01610de1565b909650945060a08b0135915080821115610eb457600080fd5b50610ec18b828c01610de1565b999c989b5096995094979396929594505050565b6000815180845260005b81811015610efb57602081850181015186830182015201610edf565b506000602082860101526020601f19601f83011685010191505092915050565b60006101208b83528a602084015289604084015288606084015287608084015260018060a01b0380881660a085015280871660c0850152508060e0840152610f6581840186610ed5565b9050828103610100840152610f7a8185610ed5565b9c9b505050505050505050505050565b634e487b7160e01b600052603260045260246000fd5b600060018201610fc057634e487b7160e01b600052601160045260246000fd5b5060010190565b6020808252600c908201526b494e56414c49445f54494d4560a01b604082015260600190565b600181811c9082168061100157607f821691505b60208210810361058057634e487b7160e01b600052602260045260246000fd5b601f82111561106b57600081815260208120601f850160051c810160208610156110485750805b601f850160051c820191505b8181101561106757828155600101611054565b5050505b505050565b815167ffffffffffffffff81111561108a5761108a610c8e565b61109e816110988454610fed565b84611021565b602080601f8311600181146110d357600084156110bb5750858301515b600019600386901b1c1916600185901b178555611067565b600085815260208120601f198616915b82811015611102578886015182559484019460019091019084016110e3565b50858210156111205787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b88815287602082015286604082015285606082015260c06080820152600061118560c083018688611130565b82810360a0840152611198818587611130565b9b9a505050505050505050505056fea264697066735822122030bbf0da5a4d9f76e8e8e188736a3c81e856842b4cb98fa89761c5b98db9504364736f6c63430008130033", + "sourceMap": "25:4079:0:-:0;;;;;;;;;;;;;;;;;;;", + "deployedSourceMap": "25:4079:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3201:303;;;;;;;;;;-1:-1:-1;3201:303:0;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2380:460;;;;;;;;;;-1:-1:-1;2380:460:0;;;;;:::i;:::-;;:::i;:::-;;3845:257;;;;;;;;;;-1:-1:-1;3845:257:0;;;;;:::i;:::-;;:::i;:::-;;;2506:14:1;;2499:22;2481:41;;2469:2;2454:18;3845:257:0;2341:187:1;2846:349:0;;;;;;;;;;-1:-1:-1;2846:349:0;;;;;:::i;:::-;;:::i;1438:936::-;;;;;;:::i;:::-;;:::i;53:49::-;;;;;;;;;;-1:-1:-1;53:49:0;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;;;;:::i;3510:329::-;;;;;;;;;;-1:-1:-1;3510:329:0;;;;;:::i;:::-;;:::i;:::-;;;5575:25:1;;;5563:2;5548:18;3510:329:0;5429:177:1;3201:303:0;3263:16;3291:23;3331:3;:10;3317:25;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3317:25:0;;3291:51;;3358:13;3353:121;3385:3;:10;3377:5;:18;3353:121;;;3436:27;3452:3;3456:5;3452:10;;;;;;;;:::i;:::-;;;;;;;3436:15;:27::i;:::-;3420:6;3427:5;3420:13;;;;;;;;:::i;:::-;;;;;;;;;;:43;3397:7;;;;:::i;:::-;;;;3353:121;;;-1:-1:-1;3491:6:0;3201:303;-1:-1:-1;;3201:303:0:o;2380:460::-;2445:22;2470:13;;;;;;;;;;2502:8;;;;323:1;2502:18;2494:46;;;;-1:-1:-1;;;2494:46:0;;6182:2:1;2494:46:0;;;6164:21:1;6221:2;6201:18;;;6194:30;-1:-1:-1;;;6240:18:1;;;6233:45;6295:18;;2494:46:0;;;;;;;;;2574:15;2559:1;:12;;;:30;2551:55;;;;-1:-1:-1;;;2551:55:0;;;;;;;:::i;:::-;2649:18;;;;;;5575:25:1;;;5548:18;2649::0;;;;;;;;;;;;2639:29;;;;;;2625:1;:10;;;:43;2617:70;;;;-1:-1:-1;;;2617:70:0;;7049:2:1;2617:70:0;;;7031:21:1;7088:2;7068:18;;;7061:30;-1:-1:-1;;;7107:18:1;;;7100:44;7161:18;;2617:70:0;6847:338:1;2617:70:0;479:1;2698:8;;;:20;2729:10;;;;2749:13;;2729:34;;-1:-1:-1;;;;;2729:10:0;;;;:34;;;;;2749:13;2729:10;:34;:10;:34;2749:13;2729:10;:34;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2822:10:0;;;;2812:8;;;;2800:10;;;;2779:54;;-1:-1:-1;;;;;2822:10:0;;;;2812:8;;;;;2788:2;;2779:54;;;;2792:6;7364:25:1;;7420:2;7405:18;;7398:34;7352:2;7337:18;;7190:248;2779:54:0;;;;;;;;2435:405;2380:460;;:::o;3845:257::-;3902:11;3960:13;;;;;;;;;;;3925:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3925:48:0;;;;;;;;;;;;;;;;;;;;;3902:11;;3925:48;3960:13;3925:48;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;247:1;3988:12;:19;;;:27;3984:112;;-1:-1:-1;4038:5:0;;3845:257;-1:-1:-1;;3845:257:0:o;3984:112::-;-1:-1:-1;4081:4:0;;3845:257;-1:-1:-1;;3845:257:0:o;3984:112::-;3915:187;3845:257;;;:::o;2846:349::-;2893:22;2918:13;;;;;;;;;;2950:8;;;;323:1;2950:18;2942:46;;;;-1:-1:-1;;;2942:46:0;;6182:2:1;2942:46:0;;;6164:21:1;6221:2;6201:18;;;6194:30;-1:-1:-1;;;6240:18:1;;;6233:45;6295:18;;2942:46:0;5980:339:1;2942:46:0;3023:15;3007:1;:12;;;:31;;2999:56;;;;-1:-1:-1;;;2999:56:0;;;;;;;:::i;:::-;407:1;3066:8;;;:19;3096:8;;;;3114:13;;3096:32;;-1:-1:-1;;;;;3096:8:0;;;;:32;;;;;3114:13;3096:8;:32;:8;:32;3114:13;3096:8;:32;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3177:10:0;;;;3167:8;;;;3155:10;;;;3144:44;;5575:25:1;;;-1:-1:-1;;;;;3177:10:0;;;;3167:8;;;;3151:2;;3144:44;;5563:2:1;5548:18;3144:44:0;;;;;;;2883:312;2846:349;:::o;1438:936::-;1721:10;1764:9;1805:15;1792:28;;1784:53;;;;-1:-1:-1;;;1784:53:0;;;;;;;:::i;:::-;1870:1;1856:11;:15;1848:42;;;;-1:-1:-1;;;1848:42:0;;8030:2:1;1848:42:0;;;8012:21:1;8069:2;8049:18;;;8042:30;-1:-1:-1;;;8088:18:1;;;8081:44;8142:18;;1848:42:0;7828:338:1;1848:42:0;1924:63;;;-1:-1:-1;;;;;8518:15:1;;;1924:63:0;;;8500:34:1;8570:15;;8550:18;;;8543:43;;;;8602:18;;;8595:34;;;8645:18;;;8638:34;;;8688:19;;;8681:35;;;1901:10:0;;8434:19:1;;1924:63:0;;;-1:-1:-1;;1924:63:0;;;;;;;;;1914:74;;1924:63;1914:74;;;;247:1;2007:13;;;;;;;;;:20;;;1914:74;;-1:-1:-1;2007:28:0;1999:52;;;;-1:-1:-1;;;1999:52:0;;8929:2:1;1999:52:0;;;8911:21:1;8968:2;8948:18;;;8941:30;-1:-1:-1;;;8987:18:1;;;8980:41;9038:18;;1999:52:0;8727:335:1;1999:52:0;2078:139;;;;;;;;2104:11;2078:139;;;;2117:12;2078:139;;;;2131:10;2078:139;;;;323:1;2078:139;;;;2151:8;2078:139;;;;2161:6;-1:-1:-1;;;;;2078:139:0;;;;;2169:8;-1:-1:-1;;;;;2078:139:0;;;;;2179:13;;2078:139;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;2078:139:0;;;-1:-1:-1;2078:139:0;;;;;;;;;;;;;;;;;;;;;;;;;;;2194:13;;;;;;2078:139;;2194:13;;;;2078:139;;;;;;;;-1:-1:-1;2078:139:0;;;;-1:-1:-1;;2062:13:0;;;;;;;;;;;;:155;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2062:155:0;;;-1:-1:-1;;;;;;2062:155:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:13;;-1:-1:-1;2062:155:0;;;;;;;;:::i;:::-;-1:-1:-1;2062:155:0;;;;;;;;;;;;:::i;:::-;;;;;2319:8;-1:-1:-1;;;;;2233:134:0;2311:6;-1:-1:-1;;;;;2233:134:0;2297:2;2233:134;2258:11;2271:12;2285:10;2301:8;2329:13;;2344;;2233:134;;;;;;;;;;;;;:::i;:::-;;;;;;;;1678:696;;;1438:936;;;;;;;;:::o;53:49::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;53:49:0;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;3510:329::-;3568:14;3629:13;;;;;;;;;;;3594:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3594:48:0;;;;;;;;;;;;;;;;;;;;;3568:14;;3594:48;3629:13;3594:48;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;323:1;3657:12;:19;;;:29;:74;;;;;3716:15;3690:12;:23;;;:41;3657:74;3653:180;;;550:1;3747:16;;3653:180;;;3803:19;;;;3510:329;-1:-1:-1;;3510:329:0:o;14:127:1:-;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:1115;230:6;261:2;304;292:9;283:7;279:23;275:32;272:52;;;320:1;317;310:12;272:52;360:9;347:23;389:18;430:2;422:6;419:14;416:34;;;446:1;443;436:12;416:34;484:6;473:9;469:22;459:32;;529:7;522:4;518:2;514:13;510:27;500:55;;551:1;548;541:12;500:55;587:2;574:16;609:2;605;602:10;599:36;;;615:18;;:::i;:::-;661:2;658:1;654:10;693:2;687:9;756:2;752:7;747:2;743;739:11;735:25;727:6;723:38;811:6;799:10;796:22;791:2;779:10;776:18;773:46;770:72;;;822:18;;:::i;:::-;858:2;851:22;908:18;;;942:15;;;;-1:-1:-1;984:11:1;;;980:20;;;1012:19;;;1009:39;;;1044:1;1041;1034:12;1009:39;1068:11;;;;1088:142;1104:6;1099:3;1096:15;1088:142;;;1170:17;;1158:30;;1121:12;;;;1208;;;;1088:142;;;1249:6;146:1115;-1:-1:-1;;;;;;;;146:1115:1:o;1266:632::-;1437:2;1489:21;;;1559:13;;1462:18;;;1581:22;;;1408:4;;1437:2;1660:15;;;;1634:2;1619:18;;;1408:4;1703:169;1717:6;1714:1;1711:13;1703:169;;;1778:13;;1766:26;;1847:15;;;;1812:12;;;;1739:1;1732:9;1703:169;;;-1:-1:-1;1889:3:1;;1266:632;-1:-1:-1;;;;;;1266:632:1:o;1903:248::-;1971:6;1979;2032:2;2020:9;2011:7;2007:23;2003:32;2000:52;;;2048:1;2045;2038:12;2000:52;-1:-1:-1;;2071:23:1;;;2141:2;2126:18;;;2113:32;;-1:-1:-1;1903:248:1:o;2156:180::-;2215:6;2268:2;2256:9;2247:7;2243:23;2239:32;2236:52;;;2284:1;2281;2274:12;2236:52;-1:-1:-1;2307:23:1;;2156:180;-1:-1:-1;2156:180:1:o;2533:348::-;2585:8;2595:6;2649:3;2642:4;2634:6;2630:17;2626:27;2616:55;;2667:1;2664;2657:12;2616:55;-1:-1:-1;2690:20:1;;2733:18;2722:30;;2719:50;;;2765:1;2762;2755:12;2719:50;2802:4;2794:6;2790:17;2778:29;;2854:3;2847:4;2838:6;2830;2826:19;2822:30;2819:39;2816:59;;;2871:1;2868;2861:12;2816:59;2533:348;;;;;:::o;2886:1110::-;3022:6;3030;3038;3046;3054;3062;3070;3078;3131:3;3119:9;3110:7;3106:23;3102:33;3099:53;;;3148:1;3145;3138:12;3099:53;3171:23;;;-1:-1:-1;3241:2:1;3226:18;;3213:32;;-1:-1:-1;3292:2:1;3277:18;;3264:32;;-1:-1:-1;3346:2:1;3331:18;;3318:32;-1:-1:-1;;;;;3379:31:1;;3369:42;;3359:70;;3425:1;3422;3415:12;3359:70;3448:5;-1:-1:-1;3504:3:1;3489:19;;3476:33;3528:18;3558:14;;;3555:34;;;3585:1;3582;3575:12;3555:34;3624:59;3675:7;3666:6;3655:9;3651:22;3624:59;:::i;:::-;3702:8;;-1:-1:-1;3598:85:1;-1:-1:-1;3790:3:1;3775:19;;3762:33;;-1:-1:-1;3807:16:1;;;3804:36;;;3836:1;3833;3826:12;3804:36;;3875:61;3928:7;3917:8;3906:9;3902:24;3875:61;:::i;:::-;2886:1110;;;;-1:-1:-1;2886:1110:1;;-1:-1:-1;2886:1110:1;;;;;;3955:8;-1:-1:-1;;;2886:1110:1:o;4001:423::-;4043:3;4081:5;4075:12;4108:6;4103:3;4096:19;4133:1;4143:162;4157:6;4154:1;4151:13;4143:162;;;4219:4;4275:13;;;4271:22;;4265:29;4247:11;;;4243:20;;4236:59;4172:12;4143:162;;;4147:3;4350:1;4343:4;4334:6;4329:3;4325:16;4321:27;4314:38;4413:4;4406:2;4402:7;4397:2;4389:6;4385:15;4381:29;4376:3;4372:39;4368:50;4361:57;;;4001:423;;;;:::o;4429:995::-;4817:4;4846:3;4876:6;4865:9;4858:25;4919:6;4914:2;4903:9;4899:18;4892:34;4962:6;4957:2;4946:9;4942:18;4935:34;5005:6;5000:2;4989:9;4985:18;4978:34;5049:6;5043:3;5032:9;5028:19;5021:35;5092:1;5088;5083:3;5079:11;5075:19;5143:2;5135:6;5131:15;5125:3;5114:9;5110:19;5103:44;5196:2;5188:6;5184:15;5178:3;5167:9;5163:19;5156:44;;5237:2;5231:3;5220:9;5216:19;5209:31;5263:45;5304:2;5293:9;5289:18;5281:6;5263:45;:::i;:::-;5249:59;;5357:9;5349:6;5345:22;5339:3;5328:9;5324:19;5317:51;5385:33;5411:6;5403;5385:33;:::i;:::-;5377:41;4429:995;-1:-1:-1;;;;;;;;;;;;4429:995:1:o;5611:127::-;5672:10;5667:3;5663:20;5660:1;5653:31;5703:4;5700:1;5693:15;5727:4;5724:1;5717:15;5743:232;5782:3;5803:17;;;5800:140;;5862:10;5857:3;5853:20;5850:1;5843:31;5897:4;5894:1;5887:15;5925:4;5922:1;5915:15;5800:140;-1:-1:-1;5967:1:1;5956:13;;5743:232::o;6324:336::-;6526:2;6508:21;;;6565:2;6545:18;;;6538:30;-1:-1:-1;;;6599:2:1;6584:18;;6577:42;6651:2;6636:18;;6324:336::o;7443:380::-;7522:1;7518:12;;;;7565;;;7586:61;;7640:4;7632:6;7628:17;7618:27;;7586:61;7693:2;7685:6;7682:14;7662:18;7659:38;7656:161;;7739:10;7734:3;7730:20;7727:1;7720:31;7774:4;7771:1;7764:15;7802:4;7799:1;7792:15;9193:545;9295:2;9290:3;9287:11;9284:448;;;9331:1;9356:5;9352:2;9345:17;9401:4;9397:2;9387:19;9471:2;9459:10;9455:19;9452:1;9448:27;9442:4;9438:38;9507:4;9495:10;9492:20;9489:47;;;-1:-1:-1;9530:4:1;9489:47;9585:2;9580:3;9576:12;9573:1;9569:20;9563:4;9559:31;9549:41;;9640:82;9658:2;9651:5;9648:13;9640:82;;;9703:17;;;9684:1;9673:13;9640:82;;;9644:3;;;9284:448;9193:545;;;:::o;9914:1352::-;10040:3;10034:10;10067:18;10059:6;10056:30;10053:56;;;10089:18;;:::i;:::-;10118:97;10208:6;10168:38;10200:4;10194:11;10168:38;:::i;:::-;10162:4;10118:97;:::i;:::-;10270:4;;10334:2;10323:14;;10351:1;10346:663;;;;11053:1;11070:6;11067:89;;;-1:-1:-1;11122:19:1;;;11116:26;11067:89;-1:-1:-1;;9871:1:1;9867:11;;;9863:24;9859:29;9849:40;9895:1;9891:11;;;9846:57;11169:81;;10316:944;;10346:663;9140:1;9133:14;;;9177:4;9164:18;;-1:-1:-1;;10382:20:1;;;10500:236;10514:7;10511:1;10508:14;10500:236;;;10603:19;;;10597:26;10582:42;;10695:27;;;;10663:1;10651:14;;;;10530:19;;10500:236;;;10504:3;10764:6;10755:7;10752:19;10749:201;;;10825:19;;;10819:26;-1:-1:-1;;10908:1:1;10904:14;;;10920:3;10900:24;10896:37;10892:42;10877:58;10862:74;;10749:201;-1:-1:-1;;;;;10996:1:1;10980:14;;;10976:22;10963:36;;-1:-1:-1;9914:1352:1:o;11271:267::-;11360:6;11355:3;11348:19;11412:6;11405:5;11398:4;11393:3;11389:14;11376:43;-1:-1:-1;11464:1:1;11439:16;;;11457:4;11435:27;;;11428:38;;;;11520:2;11499:15;;;-1:-1:-1;;11495:29:1;11486:39;;;11482:50;;11271:267::o;11543:725::-;11872:6;11861:9;11854:25;11915:6;11910:2;11899:9;11895:18;11888:34;11958:6;11953:2;11942:9;11938:18;11931:34;12001:6;11996:2;11985:9;11981:18;11974:34;12045:3;12039;12028:9;12024:19;12017:32;11835:4;12072:63;12130:3;12119:9;12115:19;12107:6;12099;12072:63;:::i;:::-;12184:9;12176:6;12172:22;12166:3;12155:9;12151:19;12144:51;12212:50;12255:6;12247;12239;12212:50;:::i;:::-;12204:58;11543:725;-1:-1:-1;;;;;;;;;;;11543:725:1:o", + "sourcePath": "/home/peter/a/cacti-1/packages/cactus-plugin-htlc-eth-besu/src/main/solidity/contracts/HashTimeLock.sol", "compiler": { "name": "solc", "version": "0.8.19+commit.7dd6d404" }, "ast": { - "absolutePath": "/workspaces/cacti/packages/cactus-plugin-htlc-eth-besu/src/main/solidity/contracts/HashTimeLock.sol", + "absolutePath": "/home/peter/a/cacti-1/packages/cactus-plugin-htlc-eth-besu/src/main/solidity/contracts/HashTimeLock.sol", "exportedSymbols": { "HashTimeLock": [ 414 @@ -1456,7 +1456,7 @@ "body": { "id": 176, "nodeType": "Block", - "src": "1678:699:0", + "src": "1678:696:0", "statements": [ { "assignments": [ @@ -1910,7 +1910,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 98, - "src": "1938:6:0", + "src": "1935:6:0", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -1922,7 +1922,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 90, - "src": "1946:8:0", + "src": "1943:8:0", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -1934,7 +1934,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 106, - "src": "1956:11:0", + "src": "1953:11:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1946,7 +1946,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 88, - "src": "1969:8:0", + "src": "1966:8:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -1958,7 +1958,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 86, - "src": "1979:10:0", + "src": "1976:10:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1994,7 +1994,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4294967295, - "src": "1921:3:0", + "src": "1924:3:0", "typeDescriptions": { "typeIdentifier": "t_magic_abi", "typeString": "abi" @@ -2005,12 +2005,12 @@ "isLValue": false, "isPure": true, "lValueRequested": false, - "memberLocation": "1925:12:0", - "memberName": "encodePacked", + "memberLocation": "1928:6:0", + "memberName": "encode", "nodeType": "MemberAccess", - "src": "1921:16:0", + "src": "1924:10:0", "typeDescriptions": { - "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", + "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", "typeString": "function () pure returns (bytes memory)" } }, @@ -2023,7 +2023,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "1921:69:0", + "src": "1924:63:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", @@ -2039,13 +2039,13 @@ } ], "id": 127, - "name": "sha256", + "name": "keccak256", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4294967274, - "src": "1914:6:0", + "referencedDeclaration": 4294967288, + "src": "1914:9:0", "typeDescriptions": { - "typeIdentifier": "t_function_sha256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", "typeString": "function (bytes memory) pure returns (bytes32)" } }, @@ -2058,7 +2058,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "1914:77:0", + "src": "1914:74:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -2066,7 +2066,7 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "1901:90:0" + "src": "1901:87:0" }, { "expression": { @@ -2089,7 +2089,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6, - "src": "2010:9:0", + "src": "2007:9:0", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_LockContract_$40_storage_$", "typeString": "mapping(bytes32 => struct HashTimeLock.LockContract storage ref)" @@ -2102,7 +2102,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 126, - "src": "2020:2:0", + "src": "2017:2:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -2113,7 +2113,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "2010:13:0", + "src": "2007:13:0", "typeDescriptions": { "typeIdentifier": "t_struct$_LockContract_$40_storage", "typeString": "struct HashTimeLock.LockContract storage ref" @@ -2124,11 +2124,11 @@ "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "2024:6:0", + "memberLocation": "2021:6:0", "memberName": "status", "nodeType": "MemberAccess", "referencedDeclaration": 29, - "src": "2010:20:0", + "src": "2007:20:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2142,13 +2142,13 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9, - "src": "2034:4:0", + "src": "2031:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "2010:28:0", + "src": "2007:28:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2163,7 +2163,7 @@ "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "2040:13:0", + "src": "2037:13:0", "typeDescriptions": { "typeIdentifier": "t_stringliteral_10858945dd31484ce6a77564821a1a6ff0e82939d9bea2b8e6caae50c7fc3750", "typeString": "literal_string \"SWAP_EXISTS\"" @@ -2190,7 +2190,7 @@ 4294967278 ], "referencedDeclaration": 4294967278, - "src": "2002:7:0", + "src": "1999:7:0", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" @@ -2205,7 +2205,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "2002:52:0", + "src": "1999:52:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", @@ -2214,7 +2214,7 @@ }, "id": 147, "nodeType": "ExpressionStatement", - "src": "2002:52:0" + "src": "1999:52:0" }, { "expression": { @@ -2230,7 +2230,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6, - "src": "2065:9:0", + "src": "2062:9:0", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_LockContract_$40_storage_$", "typeString": "mapping(bytes32 => struct HashTimeLock.LockContract storage ref)" @@ -2243,7 +2243,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 126, - "src": "2075:2:0", + "src": "2072:2:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -2254,7 +2254,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "2065:13:0", + "src": "2062:13:0", "typeDescriptions": { "typeIdentifier": "t_struct$_LockContract_$40_storage", "typeString": "struct HashTimeLock.LockContract storage ref" @@ -2270,7 +2270,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 106, - "src": "2107:11:0", + "src": "2104:11:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2282,7 +2282,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 84, - "src": "2120:12:0", + "src": "2117:12:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2294,7 +2294,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 86, - "src": "2134:10:0", + "src": "2131:10:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2306,7 +2306,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12, - "src": "2146:6:0", + "src": "2143:6:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2318,7 +2318,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 88, - "src": "2154:8:0", + "src": "2151:8:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -2330,7 +2330,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 98, - "src": "2164:6:0", + "src": "2161:6:0", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -2342,7 +2342,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 90, - "src": "2172:8:0", + "src": "2169:8:0", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -2354,7 +2354,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 92, - "src": "2182:13:0", + "src": "2179:13:0", "typeDescriptions": { "typeIdentifier": "t_string_calldata_ptr", "typeString": "string calldata" @@ -2366,7 +2366,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 94, - "src": "2197:13:0", + "src": "2194:13:0", "typeDescriptions": { "typeIdentifier": "t_string_calldata_ptr", "typeString": "string calldata" @@ -2417,7 +2417,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 40, - "src": "2081:12:0", + "src": "2078:12:0", "typeDescriptions": { "typeIdentifier": "t_type$_t_struct$_LockContract_$40_storage_ptr_$", "typeString": "type(struct HashTimeLock.LockContract storage pointer)" @@ -2432,14 +2432,14 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "2081:139:0", + "src": "2078:139:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_struct$_LockContract_$40_memory_ptr", "typeString": "struct HashTimeLock.LockContract memory" } }, - "src": "2065:155:0", + "src": "2062:155:0", "typeDescriptions": { "typeIdentifier": "t_struct$_LockContract_$40_storage", "typeString": "struct HashTimeLock.LockContract storage ref" @@ -2447,7 +2447,7 @@ }, "id": 163, "nodeType": "ExpressionStatement", - "src": "2065:155:0" + "src": "2062:155:0" }, { "eventCall": { @@ -2458,7 +2458,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 106, - "src": "2261:11:0", + "src": "2258:11:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2470,7 +2470,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 84, - "src": "2274:12:0", + "src": "2271:12:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2482,7 +2482,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 86, - "src": "2288:10:0", + "src": "2285:10:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2494,7 +2494,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 126, - "src": "2300:2:0", + "src": "2297:2:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -2506,7 +2506,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 88, - "src": "2304:8:0", + "src": "2301:8:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -2518,7 +2518,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 98, - "src": "2314:6:0", + "src": "2311:6:0", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -2530,7 +2530,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 90, - "src": "2322:8:0", + "src": "2319:8:0", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -2542,7 +2542,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 92, - "src": "2332:13:0", + "src": "2329:13:0", "typeDescriptions": { "typeIdentifier": "t_string_calldata_ptr", "typeString": "string calldata" @@ -2554,7 +2554,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 94, - "src": "2347:13:0", + "src": "2344:13:0", "typeDescriptions": { "typeIdentifier": "t_string_calldata_ptr", "typeString": "string calldata" @@ -2605,7 +2605,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 82, - "src": "2236:11:0", + "src": "2233:11:0", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_uint256_$_t_uint256_$_t_bytes32_$_t_bytes32_$_t_address_$_t_address_$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$", "typeString": "function (uint256,uint256,uint256,bytes32,bytes32,address,address,string memory,string memory)" @@ -2620,7 +2620,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "2236:134:0", + "src": "2233:134:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", @@ -2629,7 +2629,7 @@ }, "id": 175, "nodeType": "EmitStatement", - "src": "2231:139:0" + "src": "2228:139:0" } ] }, @@ -2818,7 +2818,7 @@ "src": "1678:0:0" }, "scope": 414, - "src": "1438:939:0", + "src": "1438:936:0", "stateMutability": "payable", "virtual": false, "visibility": "external" @@ -2827,7 +2827,7 @@ "body": { "id": 247, "nodeType": "Block", - "src": "2438:411:0", + "src": "2435:405:0", "statements": [ { "assignments": [ @@ -2839,10 +2839,10 @@ "id": 186, "mutability": "mutable", "name": "c", - "nameLocation": "2469:1:0", + "nameLocation": "2466:1:0", "nodeType": "VariableDeclaration", "scope": 247, - "src": "2448:22:0", + "src": "2445:22:0", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { @@ -2856,14 +2856,14 @@ "id": 184, "name": "LockContract", "nameLocations": [ - "2448:12:0" + "2445:12:0" ], "nodeType": "IdentifierPath", "referencedDeclaration": 40, - "src": "2448:12:0" + "src": "2445:12:0" }, "referencedDeclaration": 40, - "src": "2448:12:0", + "src": "2445:12:0", "typeDescriptions": { "typeIdentifier": "t_struct$_LockContract_$40_storage_ptr", "typeString": "struct HashTimeLock.LockContract" @@ -2880,7 +2880,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6, - "src": "2473:9:0", + "src": "2470:9:0", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_LockContract_$40_storage_$", "typeString": "mapping(bytes32 => struct HashTimeLock.LockContract storage ref)" @@ -2893,7 +2893,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 179, - "src": "2483:2:0", + "src": "2480:2:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -2904,14 +2904,14 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "2473:13:0", + "src": "2470:13:0", "typeDescriptions": { "typeIdentifier": "t_struct$_LockContract_$40_storage", "typeString": "struct HashTimeLock.LockContract storage ref" } }, "nodeType": "VariableDeclarationStatement", - "src": "2448:38:0" + "src": "2445:38:0" }, { "expression": { @@ -2933,7 +2933,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 186, - "src": "2505:1:0", + "src": "2502:1:0", "typeDescriptions": { "typeIdentifier": "t_struct$_LockContract_$40_storage_ptr", "typeString": "struct HashTimeLock.LockContract storage pointer" @@ -2944,11 +2944,11 @@ "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "2507:6:0", + "memberLocation": "2504:6:0", "memberName": "status", "nodeType": "MemberAccess", "referencedDeclaration": 29, - "src": "2505:8:0", + "src": "2502:8:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2962,13 +2962,13 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12, - "src": "2517:6:0", + "src": "2514:6:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "2505:18:0", + "src": "2502:18:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2983,7 +2983,7 @@ "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "2525:17:0", + "src": "2522:17:0", "typeDescriptions": { "typeIdentifier": "t_stringliteral_afbfa7d3db262df0c92c413f0113503b1c1332dc5a4a874fcd8d6a6de57b74dd", "typeString": "literal_string \"SWAP_NOT_ACTIVE\"" @@ -3010,7 +3010,7 @@ 4294967278 ], "referencedDeclaration": 4294967278, - "src": "2497:7:0", + "src": "2494:7:0", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" @@ -3025,7 +3025,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "2497:46:0", + "src": "2494:46:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", @@ -3034,7 +3034,7 @@ }, "id": 198, "nodeType": "ExpressionStatement", - "src": "2497:46:0" + "src": "2494:46:0" }, { "expression": { @@ -3056,7 +3056,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 186, - "src": "2562:1:0", + "src": "2559:1:0", "typeDescriptions": { "typeIdentifier": "t_struct$_LockContract_$40_storage_ptr", "typeString": "struct HashTimeLock.LockContract storage pointer" @@ -3067,11 +3067,11 @@ "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "2564:10:0", + "memberLocation": "2561:10:0", "memberName": "expiration", "nodeType": "MemberAccess", "referencedDeclaration": 27, - "src": "2562:12:0", + "src": "2559:12:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3086,7 +3086,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4294967292, - "src": "2577:5:0", + "src": "2574:5:0", "typeDescriptions": { "typeIdentifier": "t_magic_block", "typeString": "block" @@ -3097,16 +3097,16 @@ "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "2583:9:0", + "memberLocation": "2580:9:0", "memberName": "timestamp", "nodeType": "MemberAccess", - "src": "2577:15:0", + "src": "2574:15:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "2562:30:0", + "src": "2559:30:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -3121,7 +3121,7 @@ "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "2594:14:0", + "src": "2591:14:0", "typeDescriptions": { "typeIdentifier": "t_stringliteral_b98f3e47db5919a8c78ec10ff6bf7d1326066d3facdc164cf7441d38cae771df", "typeString": "literal_string \"INVALID_TIME\"" @@ -3148,7 +3148,7 @@ 4294967278 ], "referencedDeclaration": 4294967278, - "src": "2554:7:0", + "src": "2551:7:0", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" @@ -3163,7 +3163,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "2554:55:0", + "src": "2551:55:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", @@ -3172,7 +3172,7 @@ }, "id": 207, "nodeType": "ExpressionStatement", - "src": "2554:55:0" + "src": "2551:55:0" }, { "expression": { @@ -3194,7 +3194,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 186, - "src": "2628:1:0", + "src": "2625:1:0", "typeDescriptions": { "typeIdentifier": "t_struct$_LockContract_$40_storage_ptr", "typeString": "struct HashTimeLock.LockContract storage pointer" @@ -3205,11 +3205,11 @@ "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "2630:8:0", + "memberLocation": "2627:8:0", "memberName": "hashLock", "nodeType": "MemberAccess", "referencedDeclaration": 31, - "src": "2628:10:0", + "src": "2625:10:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -3227,7 +3227,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 181, - "src": "2669:6:0", + "src": "2660:6:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -3247,7 +3247,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4294967295, - "src": "2652:3:0", + "src": "2649:3:0", "typeDescriptions": { "typeIdentifier": "t_magic_abi", "typeString": "abi" @@ -3258,12 +3258,12 @@ "isLValue": false, "isPure": true, "lValueRequested": false, - "memberLocation": "2656:12:0", - "memberName": "encodePacked", + "memberLocation": "2653:6:0", + "memberName": "encode", "nodeType": "MemberAccess", - "src": "2652:16:0", + "src": "2649:10:0", "typeDescriptions": { - "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", + "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", "typeString": "function () pure returns (bytes memory)" } }, @@ -3276,7 +3276,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "2652:24:0", + "src": "2649:18:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", @@ -3296,7 +3296,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4294967288, - "src": "2642:9:0", + "src": "2639:9:0", "typeDescriptions": { "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", "typeString": "function (bytes memory) pure returns (bytes32)" @@ -3311,14 +3311,14 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "2642:35:0", + "src": "2639:29:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "src": "2628:49:0", + "src": "2625:43:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -3333,7 +3333,7 @@ "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "2679:16:0", + "src": "2670:16:0", "typeDescriptions": { "typeIdentifier": "t_stringliteral_20442b474b3561be70a7e12c2acf875277f59e68e7748337cd68bf5c8ada064b", "typeString": "literal_string \"INVALID_SECRET\"" @@ -3360,7 +3360,7 @@ 4294967278 ], "referencedDeclaration": 4294967278, - "src": "2620:7:0", + "src": "2617:7:0", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" @@ -3375,7 +3375,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "2620:76:0", + "src": "2617:70:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", @@ -3384,7 +3384,7 @@ }, "id": 220, "nodeType": "ExpressionStatement", - "src": "2620:76:0" + "src": "2617:70:0" }, { "expression": { @@ -3400,7 +3400,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 186, - "src": "2707:1:0", + "src": "2698:1:0", "typeDescriptions": { "typeIdentifier": "t_struct$_LockContract_$40_storage_ptr", "typeString": "struct HashTimeLock.LockContract storage pointer" @@ -3411,11 +3411,11 @@ "isLValue": true, "isPure": false, "lValueRequested": true, - "memberLocation": "2709:6:0", + "memberLocation": "2700:6:0", "memberName": "status", "nodeType": "MemberAccess", "referencedDeclaration": 29, - "src": "2707:8:0", + "src": "2698:8:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3429,13 +3429,13 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 18, - "src": "2718:9:0", + "src": "2709:9:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "2707:20:0", + "src": "2698:20:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3443,7 +3443,7 @@ }, "id": 226, "nodeType": "ExpressionStatement", - "src": "2707:20:0" + "src": "2698:20:0" }, { "expression": { @@ -3455,7 +3455,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 186, - "src": "2758:1:0", + "src": "2749:1:0", "typeDescriptions": { "typeIdentifier": "t_struct$_LockContract_$40_storage_ptr", "typeString": "struct HashTimeLock.LockContract storage pointer" @@ -3466,11 +3466,11 @@ "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "2760:11:0", + "memberLocation": "2751:11:0", "memberName": "inputAmount", "nodeType": "MemberAccess", "referencedDeclaration": 23, - "src": "2758:13:0", + "src": "2749:13:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3491,7 +3491,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 186, - "src": "2738:1:0", + "src": "2729:1:0", "typeDescriptions": { "typeIdentifier": "t_struct$_LockContract_$40_storage_ptr", "typeString": "struct HashTimeLock.LockContract storage pointer" @@ -3502,11 +3502,11 @@ "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "2740:8:0", + "memberLocation": "2731:8:0", "memberName": "receiver", "nodeType": "MemberAccess", "referencedDeclaration": 35, - "src": "2738:10:0", + "src": "2729:10:0", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -3517,10 +3517,10 @@ "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "2749:8:0", + "memberLocation": "2740:8:0", "memberName": "transfer", "nodeType": "MemberAccess", - "src": "2738:19:0", + "src": "2729:19:0", "typeDescriptions": { "typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$", "typeString": "function (uint256)" @@ -3535,7 +3535,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "2738:34:0", + "src": "2729:34:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", @@ -3544,7 +3544,7 @@ }, "id": 235, "nodeType": "ExpressionStatement", - "src": "2738:34:0" + "src": "2729:34:0" }, { "eventCall": { @@ -3555,7 +3555,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 179, - "src": "2797:2:0", + "src": "2788:2:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -3567,7 +3567,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 181, - "src": "2801:6:0", + "src": "2792:6:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -3580,7 +3580,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 186, - "src": "2809:1:0", + "src": "2800:1:0", "typeDescriptions": { "typeIdentifier": "t_struct$_LockContract_$40_storage_ptr", "typeString": "struct HashTimeLock.LockContract storage pointer" @@ -3591,11 +3591,11 @@ "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "2811:8:0", + "memberLocation": "2802:8:0", "memberName": "hashLock", "nodeType": "MemberAccess", "referencedDeclaration": 31, - "src": "2809:10:0", + "src": "2800:10:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -3608,7 +3608,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 186, - "src": "2821:1:0", + "src": "2812:1:0", "typeDescriptions": { "typeIdentifier": "t_struct$_LockContract_$40_storage_ptr", "typeString": "struct HashTimeLock.LockContract storage pointer" @@ -3619,11 +3619,11 @@ "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "2823:6:0", + "memberLocation": "2814:6:0", "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": 33, - "src": "2821:8:0", + "src": "2812:8:0", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -3636,7 +3636,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 186, - "src": "2831:1:0", + "src": "2822:1:0", "typeDescriptions": { "typeIdentifier": "t_struct$_LockContract_$40_storage_ptr", "typeString": "struct HashTimeLock.LockContract storage pointer" @@ -3647,11 +3647,11 @@ "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "2833:8:0", + "memberLocation": "2824:8:0", "memberName": "receiver", "nodeType": "MemberAccess", "referencedDeclaration": 35, - "src": "2831:10:0", + "src": "2822:10:0", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -3686,7 +3686,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 52, - "src": "2788:8:0", + "src": "2779:8:0", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_bytes32_$_t_bytes32_$_t_address_$_t_address_$returns$__$", "typeString": "function (bytes32,bytes32,bytes32,address,address)" @@ -3701,7 +3701,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "2788:54:0", + "src": "2779:54:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", @@ -3710,7 +3710,7 @@ }, "id": 246, "nodeType": "EmitStatement", - "src": "2783:59:0" + "src": "2774:59:0" } ] }, @@ -3720,7 +3720,7 @@ "kind": "function", "modifiers": [], "name": "withdraw", - "nameLocation": "2392:8:0", + "nameLocation": "2389:8:0", "nodeType": "FunctionDefinition", "parameters": { "id": 182, @@ -3731,10 +3731,10 @@ "id": 179, "mutability": "mutable", "name": "id", - "nameLocation": "2409:2:0", + "nameLocation": "2406:2:0", "nodeType": "VariableDeclaration", "scope": 248, - "src": "2401:10:0", + "src": "2398:10:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3745,7 +3745,7 @@ "id": 178, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "2401:7:0", + "src": "2398:7:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -3758,10 +3758,10 @@ "id": 181, "mutability": "mutable", "name": "secret", - "nameLocation": "2421:6:0", + "nameLocation": "2418:6:0", "nodeType": "VariableDeclaration", "scope": 248, - "src": "2413:14:0", + "src": "2410:14:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3772,7 +3772,7 @@ "id": 180, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "2413:7:0", + "src": "2410:7:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -3781,16 +3781,16 @@ "visibility": "internal" } ], - "src": "2400:28:0" + "src": "2397:28:0" }, "returnParameters": { "id": 183, "nodeType": "ParameterList", "parameters": [], - "src": "2438:0:0" + "src": "2435:0:0" }, "scope": 414, - "src": "2383:466:0", + "src": "2380:460:0", "stateMutability": "nonpayable", "virtual": false, "visibility": "external" @@ -3799,7 +3799,7 @@ "body": { "id": 302, "nodeType": "Block", - "src": "2892:312:0", + "src": "2883:312:0", "statements": [ { "assignments": [ @@ -3811,10 +3811,10 @@ "id": 255, "mutability": "mutable", "name": "c", - "nameLocation": "2923:1:0", + "nameLocation": "2914:1:0", "nodeType": "VariableDeclaration", "scope": 302, - "src": "2902:22:0", + "src": "2893:22:0", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { @@ -3828,14 +3828,14 @@ "id": 253, "name": "LockContract", "nameLocations": [ - "2902:12:0" + "2893:12:0" ], "nodeType": "IdentifierPath", "referencedDeclaration": 40, - "src": "2902:12:0" + "src": "2893:12:0" }, "referencedDeclaration": 40, - "src": "2902:12:0", + "src": "2893:12:0", "typeDescriptions": { "typeIdentifier": "t_struct$_LockContract_$40_storage_ptr", "typeString": "struct HashTimeLock.LockContract" @@ -3852,7 +3852,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6, - "src": "2927:9:0", + "src": "2918:9:0", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_LockContract_$40_storage_$", "typeString": "mapping(bytes32 => struct HashTimeLock.LockContract storage ref)" @@ -3865,7 +3865,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 250, - "src": "2937:2:0", + "src": "2928:2:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -3876,14 +3876,14 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "2927:13:0", + "src": "2918:13:0", "typeDescriptions": { "typeIdentifier": "t_struct$_LockContract_$40_storage", "typeString": "struct HashTimeLock.LockContract storage ref" } }, "nodeType": "VariableDeclarationStatement", - "src": "2902:38:0" + "src": "2893:38:0" }, { "expression": { @@ -3905,7 +3905,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 255, - "src": "2959:1:0", + "src": "2950:1:0", "typeDescriptions": { "typeIdentifier": "t_struct$_LockContract_$40_storage_ptr", "typeString": "struct HashTimeLock.LockContract storage pointer" @@ -3916,11 +3916,11 @@ "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "2961:6:0", + "memberLocation": "2952:6:0", "memberName": "status", "nodeType": "MemberAccess", "referencedDeclaration": 29, - "src": "2959:8:0", + "src": "2950:8:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3934,13 +3934,13 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12, - "src": "2971:6:0", + "src": "2962:6:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "2959:18:0", + "src": "2950:18:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -3955,7 +3955,7 @@ "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "2979:17:0", + "src": "2970:17:0", "typeDescriptions": { "typeIdentifier": "t_stringliteral_afbfa7d3db262df0c92c413f0113503b1c1332dc5a4a874fcd8d6a6de57b74dd", "typeString": "literal_string \"SWAP_NOT_ACTIVE\"" @@ -3982,7 +3982,7 @@ 4294967278 ], "referencedDeclaration": 4294967278, - "src": "2951:7:0", + "src": "2942:7:0", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" @@ -3997,7 +3997,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "2951:46:0", + "src": "2942:46:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", @@ -4006,7 +4006,7 @@ }, "id": 267, "nodeType": "ExpressionStatement", - "src": "2951:46:0" + "src": "2942:46:0" }, { "expression": { @@ -4028,7 +4028,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 255, - "src": "3016:1:0", + "src": "3007:1:0", "typeDescriptions": { "typeIdentifier": "t_struct$_LockContract_$40_storage_ptr", "typeString": "struct HashTimeLock.LockContract storage pointer" @@ -4039,11 +4039,11 @@ "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "3018:10:0", + "memberLocation": "3009:10:0", "memberName": "expiration", "nodeType": "MemberAccess", "referencedDeclaration": 27, - "src": "3016:12:0", + "src": "3007:12:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4058,7 +4058,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4294967292, - "src": "3032:5:0", + "src": "3023:5:0", "typeDescriptions": { "typeIdentifier": "t_magic_block", "typeString": "block" @@ -4069,16 +4069,16 @@ "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "3038:9:0", + "memberLocation": "3029:9:0", "memberName": "timestamp", "nodeType": "MemberAccess", - "src": "3032:15:0", + "src": "3023:15:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3016:31:0", + "src": "3007:31:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -4093,7 +4093,7 @@ "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "3049:14:0", + "src": "3040:14:0", "typeDescriptions": { "typeIdentifier": "t_stringliteral_b98f3e47db5919a8c78ec10ff6bf7d1326066d3facdc164cf7441d38cae771df", "typeString": "literal_string \"INVALID_TIME\"" @@ -4120,7 +4120,7 @@ 4294967278 ], "referencedDeclaration": 4294967278, - "src": "3008:7:0", + "src": "2999:7:0", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" @@ -4135,7 +4135,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "3008:56:0", + "src": "2999:56:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", @@ -4144,7 +4144,7 @@ }, "id": 276, "nodeType": "ExpressionStatement", - "src": "3008:56:0" + "src": "2999:56:0" }, { "expression": { @@ -4160,7 +4160,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 255, - "src": "3075:1:0", + "src": "3066:1:0", "typeDescriptions": { "typeIdentifier": "t_struct$_LockContract_$40_storage_ptr", "typeString": "struct HashTimeLock.LockContract storage pointer" @@ -4171,11 +4171,11 @@ "isLValue": true, "isPure": false, "lValueRequested": true, - "memberLocation": "3077:6:0", + "memberLocation": "3068:6:0", "memberName": "status", "nodeType": "MemberAccess", "referencedDeclaration": 29, - "src": "3075:8:0", + "src": "3066:8:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4189,13 +4189,13 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 15, - "src": "3086:8:0", + "src": "3077:8:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3075:19:0", + "src": "3066:19:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4203,7 +4203,7 @@ }, "id": 282, "nodeType": "ExpressionStatement", - "src": "3075:19:0" + "src": "3066:19:0" }, { "expression": { @@ -4215,7 +4215,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 255, - "src": "3123:1:0", + "src": "3114:1:0", "typeDescriptions": { "typeIdentifier": "t_struct$_LockContract_$40_storage_ptr", "typeString": "struct HashTimeLock.LockContract storage pointer" @@ -4226,11 +4226,11 @@ "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "3125:11:0", + "memberLocation": "3116:11:0", "memberName": "inputAmount", "nodeType": "MemberAccess", "referencedDeclaration": 23, - "src": "3123:13:0", + "src": "3114:13:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4251,7 +4251,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 255, - "src": "3105:1:0", + "src": "3096:1:0", "typeDescriptions": { "typeIdentifier": "t_struct$_LockContract_$40_storage_ptr", "typeString": "struct HashTimeLock.LockContract storage pointer" @@ -4262,11 +4262,11 @@ "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "3107:6:0", + "memberLocation": "3098:6:0", "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": 33, - "src": "3105:8:0", + "src": "3096:8:0", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -4277,10 +4277,10 @@ "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "3114:8:0", + "memberLocation": "3105:8:0", "memberName": "transfer", "nodeType": "MemberAccess", - "src": "3105:17:0", + "src": "3096:17:0", "typeDescriptions": { "typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$", "typeString": "function (uint256)" @@ -4295,7 +4295,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "3105:32:0", + "src": "3096:32:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", @@ -4304,7 +4304,7 @@ }, "id": 291, "nodeType": "ExpressionStatement", - "src": "3105:32:0" + "src": "3096:32:0" }, { "eventCall": { @@ -4315,7 +4315,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 250, - "src": "3160:2:0", + "src": "3151:2:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -4328,7 +4328,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 255, - "src": "3164:1:0", + "src": "3155:1:0", "typeDescriptions": { "typeIdentifier": "t_struct$_LockContract_$40_storage_ptr", "typeString": "struct HashTimeLock.LockContract storage pointer" @@ -4339,11 +4339,11 @@ "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "3166:8:0", + "memberLocation": "3157:8:0", "memberName": "hashLock", "nodeType": "MemberAccess", "referencedDeclaration": 31, - "src": "3164:10:0", + "src": "3155:10:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -4356,7 +4356,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 255, - "src": "3176:1:0", + "src": "3167:1:0", "typeDescriptions": { "typeIdentifier": "t_struct$_LockContract_$40_storage_ptr", "typeString": "struct HashTimeLock.LockContract storage pointer" @@ -4367,11 +4367,11 @@ "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "3178:6:0", + "memberLocation": "3169:6:0", "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": 33, - "src": "3176:8:0", + "src": "3167:8:0", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -4384,7 +4384,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 255, - "src": "3186:1:0", + "src": "3177:1:0", "typeDescriptions": { "typeIdentifier": "t_struct$_LockContract_$40_storage_ptr", "typeString": "struct HashTimeLock.LockContract storage pointer" @@ -4395,11 +4395,11 @@ "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "3188:8:0", + "memberLocation": "3179:8:0", "memberName": "receiver", "nodeType": "MemberAccess", "referencedDeclaration": 35, - "src": "3186:10:0", + "src": "3177:10:0", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -4430,7 +4430,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 62, - "src": "3153:6:0", + "src": "3144:6:0", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_bytes32_$_t_address_$_t_address_$returns$__$", "typeString": "function (bytes32,bytes32,address,address)" @@ -4445,7 +4445,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "3153:44:0", + "src": "3144:44:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", @@ -4454,7 +4454,7 @@ }, "id": 301, "nodeType": "EmitStatement", - "src": "3148:49:0" + "src": "3139:49:0" } ] }, @@ -4464,7 +4464,7 @@ "kind": "function", "modifiers": [], "name": "refund", - "nameLocation": "2864:6:0", + "nameLocation": "2855:6:0", "nodeType": "FunctionDefinition", "parameters": { "id": 251, @@ -4475,10 +4475,10 @@ "id": 250, "mutability": "mutable", "name": "id", - "nameLocation": "2879:2:0", + "nameLocation": "2870:2:0", "nodeType": "VariableDeclaration", "scope": 303, - "src": "2871:10:0", + "src": "2862:10:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4489,7 +4489,7 @@ "id": 249, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "2871:7:0", + "src": "2862:7:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -4498,16 +4498,16 @@ "visibility": "internal" } ], - "src": "2870:12:0" + "src": "2861:12:0" }, "returnParameters": { "id": 252, "nodeType": "ParameterList", "parameters": [], - "src": "2892:0:0" + "src": "2883:0:0" }, "scope": 414, - "src": "2855:349:0", + "src": "2846:349:0", "stateMutability": "nonpayable", "virtual": false, "visibility": "external" @@ -4516,7 +4516,7 @@ "body": { "id": 349, "nodeType": "Block", - "src": "3290:223:0", + "src": "3281:223:0", "statements": [ { "assignments": [ @@ -4528,10 +4528,10 @@ "id": 316, "mutability": "mutable", "name": "result", - "nameLocation": "3317:6:0", + "nameLocation": "3308:6:0", "nodeType": "VariableDeclaration", "scope": 349, - "src": "3300:23:0", + "src": "3291:23:0", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -4543,7 +4543,7 @@ "id": 314, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "3300:7:0", + "src": "3291:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4551,7 +4551,7 @@ }, "id": 315, "nodeType": "ArrayTypeName", - "src": "3300:9:0", + "src": "3291:9:0", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", "typeString": "uint256[]" @@ -4570,7 +4570,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 306, - "src": "3340:3:0", + "src": "3331:3:0", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr", "typeString": "bytes32[] memory" @@ -4581,10 +4581,10 @@ "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "3344:6:0", + "memberLocation": "3335:6:0", "memberName": "length", "nodeType": "MemberAccess", - "src": "3340:10:0", + "src": "3331:10:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4604,7 +4604,7 @@ "isPure": true, "lValueRequested": false, "nodeType": "NewExpression", - "src": "3326:13:0", + "src": "3317:13:0", "typeDescriptions": { "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$", "typeString": "function (uint256) pure returns (uint256[] memory)" @@ -4614,7 +4614,7 @@ "id": 317, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "3330:7:0", + "src": "3321:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4622,7 +4622,7 @@ }, "id": 318, "nodeType": "ArrayTypeName", - "src": "3330:9:0", + "src": "3321:9:0", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", "typeString": "uint256[]" @@ -4638,7 +4638,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "3326:25:0", + "src": "3317:25:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", @@ -4646,13 +4646,13 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "3300:51:0" + "src": "3291:51:0" }, { "body": { "id": 345, "nodeType": "Block", - "src": "3415:68:0", + "src": "3406:68:0", "statements": [ { "expression": { @@ -4668,7 +4668,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 316, - "src": "3429:6:0", + "src": "3420:6:0", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", "typeString": "uint256[] memory" @@ -4681,7 +4681,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 325, - "src": "3436:5:0", + "src": "3427:5:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4692,7 +4692,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "3429:13:0", + "src": "3420:13:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4709,7 +4709,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 306, - "src": "3461:3:0", + "src": "3452:3:0", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr", "typeString": "bytes32[] memory" @@ -4722,7 +4722,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 325, - "src": "3465:5:0", + "src": "3456:5:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4733,7 +4733,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3461:10:0", + "src": "3452:10:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -4752,7 +4752,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 387, - "src": "3445:15:0", + "src": "3436:15:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_uint256_$", "typeString": "function (bytes32) view returns (uint256)" @@ -4767,14 +4767,14 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "3445:27:0", + "src": "3436:27:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3429:43:0", + "src": "3420:43:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4782,7 +4782,7 @@ }, "id": 344, "nodeType": "ExpressionStatement", - "src": "3429:43:0" + "src": "3420:43:0" } ] }, @@ -4802,7 +4802,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 325, - "src": "3386:5:0", + "src": "3377:5:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4817,7 +4817,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 306, - "src": "3394:3:0", + "src": "3385:3:0", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr", "typeString": "bytes32[] memory" @@ -4828,16 +4828,16 @@ "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "3398:6:0", + "memberLocation": "3389:6:0", "memberName": "length", "nodeType": "MemberAccess", - "src": "3394:10:0", + "src": "3385:10:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3386:18:0", + "src": "3377:18:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -4854,10 +4854,10 @@ "id": 325, "mutability": "mutable", "name": "index", - "nameLocation": "3375:5:0", + "nameLocation": "3366:5:0", "nodeType": "VariableDeclaration", "scope": 346, - "src": "3367:13:0", + "src": "3358:13:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4868,7 +4868,7 @@ "id": 324, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "3367:7:0", + "src": "3358:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4887,7 +4887,7 @@ "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3383:1:0", + "src": "3374:1:0", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -4895,7 +4895,7 @@ "value": "0" }, "nodeType": "VariableDeclarationStatement", - "src": "3367:17:0" + "src": "3358:17:0" }, "loopExpression": { "expression": { @@ -4907,14 +4907,14 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "3406:7:0", + "src": "3397:7:0", "subExpression": { "id": 332, "name": "index", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 325, - "src": "3406:5:0", + "src": "3397:5:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4927,10 +4927,10 @@ }, "id": 334, "nodeType": "ExpressionStatement", - "src": "3406:7:0" + "src": "3397:7:0" }, "nodeType": "ForStatement", - "src": "3362:121:0" + "src": "3353:121:0" }, { "expression": { @@ -4939,7 +4939,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 316, - "src": "3500:6:0", + "src": "3491:6:0", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", "typeString": "uint256[] memory" @@ -4948,7 +4948,7 @@ "functionReturnParameters": 311, "id": 348, "nodeType": "Return", - "src": "3493:13:0" + "src": "3484:13:0" } ] }, @@ -4958,7 +4958,7 @@ "kind": "function", "modifiers": [], "name": "getStatus", - "nameLocation": "3219:9:0", + "nameLocation": "3210:9:0", "nodeType": "FunctionDefinition", "parameters": { "id": 307, @@ -4969,10 +4969,10 @@ "id": 306, "mutability": "mutable", "name": "ids", - "nameLocation": "3246:3:0", + "nameLocation": "3237:3:0", "nodeType": "VariableDeclaration", "scope": 350, - "src": "3229:20:0", + "src": "3220:20:0", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -4984,7 +4984,7 @@ "id": 304, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "3229:7:0", + "src": "3220:7:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -4992,7 +4992,7 @@ }, "id": 305, "nodeType": "ArrayTypeName", - "src": "3229:9:0", + "src": "3220:9:0", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", "typeString": "bytes32[]" @@ -5001,7 +5001,7 @@ "visibility": "internal" } ], - "src": "3228:22:0" + "src": "3219:22:0" }, "returnParameters": { "id": 311, @@ -5015,7 +5015,7 @@ "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 350, - "src": "3272:16:0", + "src": "3263:16:0", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -5027,7 +5027,7 @@ "id": 308, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "3272:7:0", + "src": "3263:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5035,7 +5035,7 @@ }, "id": 309, "nodeType": "ArrayTypeName", - "src": "3272:9:0", + "src": "3263:9:0", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", "typeString": "uint256[]" @@ -5044,10 +5044,10 @@ "visibility": "internal" } ], - "src": "3271:18:0" + "src": "3262:18:0" }, "scope": 414, - "src": "3210:303:0", + "src": "3201:303:0", "stateMutability": "view", "virtual": false, "visibility": "public" @@ -5056,7 +5056,7 @@ "body": { "id": 386, "nodeType": "Block", - "src": "3593:255:0", + "src": "3584:255:0", "statements": [ { "assignments": [ @@ -5068,10 +5068,10 @@ "id": 359, "mutability": "mutable", "name": "tempContract", - "nameLocation": "3623:12:0", + "nameLocation": "3614:12:0", "nodeType": "VariableDeclaration", "scope": 386, - "src": "3603:32:0", + "src": "3594:32:0", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -5085,14 +5085,14 @@ "id": 357, "name": "LockContract", "nameLocations": [ - "3603:12:0" + "3594:12:0" ], "nodeType": "IdentifierPath", "referencedDeclaration": 40, - "src": "3603:12:0" + "src": "3594:12:0" }, "referencedDeclaration": 40, - "src": "3603:12:0", + "src": "3594:12:0", "typeDescriptions": { "typeIdentifier": "t_struct$_LockContract_$40_storage_ptr", "typeString": "struct HashTimeLock.LockContract" @@ -5109,7 +5109,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6, - "src": "3638:9:0", + "src": "3629:9:0", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_LockContract_$40_storage_$", "typeString": "mapping(bytes32 => struct HashTimeLock.LockContract storage ref)" @@ -5122,7 +5122,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 352, - "src": "3648:2:0", + "src": "3639:2:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -5133,14 +5133,14 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3638:13:0", + "src": "3629:13:0", "typeDescriptions": { "typeIdentifier": "t_struct$_LockContract_$40_storage", "typeString": "struct HashTimeLock.LockContract storage ref" } }, "nodeType": "VariableDeclarationStatement", - "src": "3603:48:0" + "src": "3594:48:0" }, { "condition": { @@ -5170,7 +5170,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 359, - "src": "3666:12:0", + "src": "3657:12:0", "typeDescriptions": { "typeIdentifier": "t_struct$_LockContract_$40_memory_ptr", "typeString": "struct HashTimeLock.LockContract memory" @@ -5181,11 +5181,11 @@ "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "3679:6:0", + "memberLocation": "3670:6:0", "memberName": "status", "nodeType": "MemberAccess", "referencedDeclaration": 29, - "src": "3666:19:0", + "src": "3657:19:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5199,13 +5199,13 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12, - "src": "3689:6:0", + "src": "3680:6:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3666:29:0", + "src": "3657:29:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -5230,7 +5230,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 359, - "src": "3699:12:0", + "src": "3690:12:0", "typeDescriptions": { "typeIdentifier": "t_struct$_LockContract_$40_memory_ptr", "typeString": "struct HashTimeLock.LockContract memory" @@ -5241,11 +5241,11 @@ "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "3712:10:0", + "memberLocation": "3703:10:0", "memberName": "expiration", "nodeType": "MemberAccess", "referencedDeclaration": 27, - "src": "3699:23:0", + "src": "3690:23:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5260,7 +5260,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4294967292, - "src": "3725:5:0", + "src": "3716:5:0", "typeDescriptions": { "typeIdentifier": "t_magic_block", "typeString": "block" @@ -5271,22 +5271,22 @@ "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "3731:9:0", + "memberLocation": "3722:9:0", "memberName": "timestamp", "nodeType": "MemberAccess", - "src": "3725:15:0", + "src": "3716:15:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3699:41:0", + "src": "3690:41:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "3666:74:0", + "src": "3657:74:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -5295,7 +5295,7 @@ "falseBody": { "id": 384, "nodeType": "Block", - "src": "3789:53:0", + "src": "3780:53:0", "statements": [ { "expression": { @@ -5310,7 +5310,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 355, - "src": "3803:6:0", + "src": "3794:6:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5325,7 +5325,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 359, - "src": "3812:12:0", + "src": "3803:12:0", "typeDescriptions": { "typeIdentifier": "t_struct$_LockContract_$40_memory_ptr", "typeString": "struct HashTimeLock.LockContract memory" @@ -5336,17 +5336,17 @@ "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "3825:6:0", + "memberLocation": "3816:6:0", "memberName": "status", "nodeType": "MemberAccess", "referencedDeclaration": 29, - "src": "3812:19:0", + "src": "3803:19:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3803:28:0", + "src": "3794:28:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5354,17 +5354,17 @@ }, "id": 383, "nodeType": "ExpressionStatement", - "src": "3803:28:0" + "src": "3794:28:0" } ] }, "id": 385, "nodeType": "IfStatement", - "src": "3662:180:0", + "src": "3653:180:0", "trueBody": { "id": 378, "nodeType": "Block", - "src": "3742:41:0", + "src": "3733:41:0", "statements": [ { "expression": { @@ -5379,7 +5379,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 355, - "src": "3756:6:0", + "src": "3747:6:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5393,13 +5393,13 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 21, - "src": "3765:7:0", + "src": "3756:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3756:16:0", + "src": "3747:16:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5407,7 +5407,7 @@ }, "id": 377, "nodeType": "ExpressionStatement", - "src": "3756:16:0" + "src": "3747:16:0" } ] } @@ -5420,7 +5420,7 @@ "kind": "function", "modifiers": [], "name": "getSingleStatus", - "nameLocation": "3528:15:0", + "nameLocation": "3519:15:0", "nodeType": "FunctionDefinition", "parameters": { "id": 353, @@ -5431,10 +5431,10 @@ "id": 352, "mutability": "mutable", "name": "id", - "nameLocation": "3552:2:0", + "nameLocation": "3543:2:0", "nodeType": "VariableDeclaration", "scope": 387, - "src": "3544:10:0", + "src": "3535:10:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5445,7 +5445,7 @@ "id": 351, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "3544:7:0", + "src": "3535:7:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -5454,7 +5454,7 @@ "visibility": "internal" } ], - "src": "3543:12:0" + "src": "3534:12:0" }, "returnParameters": { "id": 356, @@ -5465,10 +5465,10 @@ "id": 355, "mutability": "mutable", "name": "result", - "nameLocation": "3585:6:0", + "nameLocation": "3576:6:0", "nodeType": "VariableDeclaration", "scope": 387, - "src": "3577:14:0", + "src": "3568:14:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5479,7 +5479,7 @@ "id": 354, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "3577:7:0", + "src": "3568:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5488,10 +5488,10 @@ "visibility": "internal" } ], - "src": "3576:16:0" + "src": "3567:16:0" }, "scope": 414, - "src": "3519:329:0", + "src": "3510:329:0", "stateMutability": "view", "virtual": false, "visibility": "public" @@ -5500,7 +5500,7 @@ "body": { "id": 412, "nodeType": "Block", - "src": "3924:187:0", + "src": "3915:187:0", "statements": [ { "assignments": [ @@ -5512,10 +5512,10 @@ "id": 396, "mutability": "mutable", "name": "tempContract", - "nameLocation": "3954:12:0", + "nameLocation": "3945:12:0", "nodeType": "VariableDeclaration", "scope": 412, - "src": "3934:32:0", + "src": "3925:32:0", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -5529,14 +5529,14 @@ "id": 394, "name": "LockContract", "nameLocations": [ - "3934:12:0" + "3925:12:0" ], "nodeType": "IdentifierPath", "referencedDeclaration": 40, - "src": "3934:12:0" + "src": "3925:12:0" }, "referencedDeclaration": 40, - "src": "3934:12:0", + "src": "3925:12:0", "typeDescriptions": { "typeIdentifier": "t_struct$_LockContract_$40_storage_ptr", "typeString": "struct HashTimeLock.LockContract" @@ -5553,7 +5553,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6, - "src": "3969:9:0", + "src": "3960:9:0", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_LockContract_$40_storage_$", "typeString": "mapping(bytes32 => struct HashTimeLock.LockContract storage ref)" @@ -5566,7 +5566,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 389, - "src": "3979:2:0", + "src": "3970:2:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -5577,14 +5577,14 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3969:13:0", + "src": "3960:13:0", "typeDescriptions": { "typeIdentifier": "t_struct$_LockContract_$40_storage", "typeString": "struct HashTimeLock.LockContract storage ref" } }, "nodeType": "VariableDeclarationStatement", - "src": "3934:48:0" + "src": "3925:48:0" }, { "condition": { @@ -5604,7 +5604,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 396, - "src": "3997:12:0", + "src": "3988:12:0", "typeDescriptions": { "typeIdentifier": "t_struct$_LockContract_$40_memory_ptr", "typeString": "struct HashTimeLock.LockContract memory" @@ -5615,11 +5615,11 @@ "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "4010:6:0", + "memberLocation": "4001:6:0", "memberName": "status", "nodeType": "MemberAccess", "referencedDeclaration": 29, - "src": "3997:19:0", + "src": "3988:19:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5633,13 +5633,13 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9, - "src": "4020:4:0", + "src": "4011:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3997:27:0", + "src": "3988:27:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -5648,7 +5648,7 @@ "falseBody": { "id": 410, "nodeType": "Block", - "src": "4069:36:0", + "src": "4060:36:0", "statements": [ { "expression": { @@ -5660,7 +5660,7 @@ "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "4090:4:0", + "src": "4081:4:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -5670,17 +5670,17 @@ "functionReturnParameters": 393, "id": 409, "nodeType": "Return", - "src": "4083:11:0" + "src": "4074:11:0" } ] }, "id": 411, "nodeType": "IfStatement", - "src": "3993:112:0", + "src": "3984:112:0", "trueBody": { "id": 407, "nodeType": "Block", - "src": "4026:37:0", + "src": "4017:37:0", "statements": [ { "expression": { @@ -5692,7 +5692,7 @@ "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "4047:5:0", + "src": "4038:5:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -5702,7 +5702,7 @@ "functionReturnParameters": 393, "id": 406, "nodeType": "Return", - "src": "4040:12:0" + "src": "4031:12:0" } ] } @@ -5715,7 +5715,7 @@ "kind": "function", "modifiers": [], "name": "contractExists", - "nameLocation": "3863:14:0", + "nameLocation": "3854:14:0", "nodeType": "FunctionDefinition", "parameters": { "id": 390, @@ -5726,10 +5726,10 @@ "id": 389, "mutability": "mutable", "name": "id", - "nameLocation": "3886:2:0", + "nameLocation": "3877:2:0", "nodeType": "VariableDeclaration", "scope": 413, - "src": "3878:10:0", + "src": "3869:10:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5740,7 +5740,7 @@ "id": 388, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "3878:7:0", + "src": "3869:7:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -5749,7 +5749,7 @@ "visibility": "internal" } ], - "src": "3877:12:0" + "src": "3868:12:0" }, "returnParameters": { "id": 393, @@ -5760,10 +5760,10 @@ "id": 392, "mutability": "mutable", "name": "result", - "nameLocation": "3916:6:0", + "nameLocation": "3907:6:0", "nodeType": "VariableDeclaration", "scope": 413, - "src": "3911:11:0", + "src": "3902:11:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5774,7 +5774,7 @@ "id": 391, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "3911:4:0", + "src": "3902:4:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -5783,21 +5783,21 @@ "visibility": "internal" } ], - "src": "3910:13:0" + "src": "3901:13:0" }, "scope": 414, - "src": "3854:257:0", + "src": "3845:257:0", "stateMutability": "view", "virtual": false, "visibility": "public" } ], "scope": 415, - "src": "25:4088:0", + "src": "25:4079:0", "usedErrors": [] } ], - "src": "0:4114:0" + "src": "0:4105:0" }, "functionHashes": { "contractExists(bytes32)": "6c8244b8", @@ -5810,9 +5810,9 @@ }, "gasEstimates": { "creation": { - "codeDepositCost": "943400", - "executionCost": "981", - "totalCost": "944381" + "codeDepositCost": "914600", + "executionCost": "948", + "totalCost": "915548" }, "external": { "contractExists(bytes32)": "infinite", diff --git a/packages/cactus-plugin-htlc-eth-besu/src/main/solidity/contracts/HashTimeLock.sol b/packages/cactus-plugin-htlc-eth-besu/src/main/solidity/contracts/HashTimeLock.sol index 0f5696259b3..b13a2732537 100644 --- a/packages/cactus-plugin-htlc-eth-besu/src/main/solidity/contracts/HashTimeLock.sol +++ b/packages/cactus-plugin-htlc-eth-besu/src/main/solidity/contracts/HashTimeLock.sol @@ -58,7 +58,7 @@ contract HashTimeLock { require(inputAmount > 0, "INVALID_AMOUNT"); - bytes32 id = sha256(abi.encodePacked(sender, receiver, inputAmount, hashLock, expiration)); + bytes32 id = keccak256(abi.encode(sender, receiver, inputAmount, hashLock, expiration)); require(contracts[id].status == INIT, "SWAP_EXISTS"); @@ -78,7 +78,7 @@ contract HashTimeLock { require(c.expiration > block.timestamp, "INVALID_TIME"); - require(c.hashLock == keccak256(abi.encodePacked(secret)), "INVALID_SECRET"); + require(c.hashLock == keccak256(abi.encode(secret)), "INVALID_SECRET"); c.status = WITHDRAWN; diff --git a/packages/cactus-plugin-htlc-eth-besu/src/main/solidity/contracts/PrivateHashTimeLock.json b/packages/cactus-plugin-htlc-eth-besu/src/main/solidity/contracts/PrivateHashTimeLock.json new file mode 100644 index 00000000000..8629e7bc68f --- /dev/null +++ b/packages/cactus-plugin-htlc-eth-besu/src/main/solidity/contracts/PrivateHashTimeLock.json @@ -0,0 +1,7081 @@ +{ + "contractName": "PrivateHashTimeLock", + "abi": [ + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "inputAmount", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "outputAmount", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "expiration", + "type": "uint256" + }, + { + "indexed": true, + "internalType": "bytes32", + "name": "id", + "type": "bytes32" + }, + { + "indexed": false, + "internalType": "bytes32", + "name": "hashSecret", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "address", + "name": "sender", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "receiver", + "type": "address" + }, + { + "indexed": false, + "internalType": "string", + "name": "outputNetwork", + "type": "string" + }, + { + "indexed": false, + "internalType": "string", + "name": "outputAddress", + "type": "string" + }, + { + "components": [ + { + "internalType": "uint256", + "name": "generator", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "modulus", + "type": "uint256" + } + ], + "indexed": false, + "internalType": "struct PrivateHashTimeLock.PrivateEnhancing", + "name": "priv", + "type": "tuple" + } + ], + "name": "NewContract", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "id", + "type": "bytes32" + }, + { + "indexed": false, + "internalType": "bytes32", + "name": "hashSecret", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "address", + "name": "sender", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "receiver", + "type": "address" + } + ], + "name": "Refund", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "id", + "type": "bytes32" + }, + { + "indexed": false, + "internalType": "bytes32", + "name": "secret", + "type": "bytes32" + }, + { + "indexed": false, + "internalType": "bytes32", + "name": "hashSecret", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "address", + "name": "sender", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "receiver", + "type": "address" + } + ], + "name": "Withdraw", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "id", + "type": "bytes32" + } + ], + "name": "contractExists", + "outputs": [ + { + "internalType": "bool", + "name": "result", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "id", + "type": "bytes32" + } + ], + "name": "getSingleStatus", + "outputs": [ + { + "internalType": "uint256", + "name": "result", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32[]", + "name": "ids", + "type": "bytes32[]" + } + ], + "name": "getStatus", + "outputs": [ + { + "internalType": "uint256[]", + "name": "", + "type": "uint256[]" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "outputAmount", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "expiration", + "type": "uint256" + }, + { + "internalType": "bytes32", + "name": "hashLock", + "type": "bytes32" + }, + { + "internalType": "address payable", + "name": "receiver", + "type": "address" + }, + { + "internalType": "string", + "name": "outputNetwork", + "type": "string" + }, + { + "internalType": "string", + "name": "outputAddress", + "type": "string" + }, + { + "components": [ + { + "internalType": "uint256", + "name": "generator", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "modulus", + "type": "uint256" + } + ], + "internalType": "struct PrivateHashTimeLock.PrivateEnhancing", + "name": "priv", + "type": "tuple" + } + ], + "name": "newPrivateContract", + "outputs": [], + "stateMutability": "payable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "id", + "type": "bytes32" + } + ], + "name": "refund", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "id", + "type": "bytes32" + }, + { + "internalType": "bytes32", + "name": "secret", + "type": "bytes32" + } + ], + "name": "withdraw", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "metadata": "{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"inputAmount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"outputAmount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"expiration\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"hashSecret\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"outputNetwork\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"outputAddress\",\"type\":\"string\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"generator\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"modulus\",\"type\":\"uint256\"}],\"indexed\":false,\"internalType\":\"struct PrivateHashTimeLock.PrivateEnhancing\",\"name\":\"priv\",\"type\":\"tuple\"}],\"name\":\"NewContract\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"hashSecret\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"Refund\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"secret\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"hashSecret\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"Withdraw\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"}],\"name\":\"contractExists\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"result\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"}],\"name\":\"getSingleStatus\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"result\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"ids\",\"type\":\"bytes32[]\"}],\"name\":\"getStatus\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"outputAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expiration\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"hashLock\",\"type\":\"bytes32\"},{\"internalType\":\"address payable\",\"name\":\"receiver\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"outputNetwork\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"outputAddress\",\"type\":\"string\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"generator\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"modulus\",\"type\":\"uint256\"}],\"internalType\":\"struct PrivateHashTimeLock.PrivateEnhancing\",\"name\":\"priv\",\"type\":\"tuple\"}],\"name\":\"newPrivateContract\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"}],\"name\":\"refund\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"secret\",\"type\":\"bytes32\"}],\"name\":\"withdraw\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"/home/peter/a/cacti-1/packages/cactus-plugin-htlc-eth-besu/src/main/solidity/contracts/PrivateHashTimeLock.sol\":\"PrivateHashTimeLock\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/home/peter/a/cacti-1/packages/cactus-plugin-htlc-eth-besu/src/main/solidity/contracts/PrivateHashTimeLock.sol\":{\"keccak256\":\"0x81cf8051705e20f124f71e0c33a8c7c76d943619aafcb84b1d9e9d1f3bb032a7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ddbbc8a037c7d7d678cf2e63802f3e9936d097656cc22aeb3df2757a96f469af\",\"dweb:/ipfs/QmTKzaS9Y8RzoBfBpyuycsJMoSNQEm5PFnQZ9YaTEq39vC\"]}},\"version\":1}", + "bytecode": "608060405234801561001057600080fd5b50611266806100206000396000f3fe6080604052600436106100555760003560e01c80632f21a6631461005a57806363615149146100905780636c8244b8146100b25780637249fbb6146100e25780639b0bcdcb14610102578063fbdf3b4314610115575b600080fd5b34801561006657600080fd5b5061007a610075366004610c41565b610143565b6040516100879190610ce7565b60405180910390f35b34801561009c57600080fd5b506100b06100ab366004610d2b565b6101f1565b005b3480156100be57600080fd5b506100d26100cd366004610d4d565b610370565b6040519015158152602001610087565b3480156100ee57600080fd5b506100b06100fd366004610d4d565b610549565b6100b0610110366004610dd6565b61065e565b34801561012157600080fd5b50610135610130366004610d4d565b610923565b604051908152602001610087565b60606000825167ffffffffffffffff81111561016157610161610bfa565b60405190808252806020026020018201604052801561018a578160200160208202803683370190505b50905060005b83518110156101ea576101bb8482815181106101ae576101ae610ec1565b6020026020010151610923565b8282815181106101cd576101cd610ec1565b6020908102919091010152806101e281610eed565b915050610190565b5092915050565b6000828152602081905260409020600381015460011461024a5760405162461bcd60e51b815260206004820152600f60248201526e535741505f4e4f545f41435449564560881b60448201526064015b60405180910390fd5b4281600201541161026d5760405162461bcd60e51b815260040161024190610f06565b6009810154600a82015461028391908490610b0a565b8160040154146102c65760405162461bcd60e51b815260206004820152600e60248201526d1253959053125117d4d150d4915560921b6044820152606401610241565b600381810155600681015481546040516001600160a01b039092169181156108fc0291906000818181858888f19350505050158015610309573d6000803e3d6000fd5b506006810154600582015460048301546040516001600160a01b0393841693929092169186917f2d3a5ed13d0553389b4078e01264416362e34d23520fda797fbc17f3905ed1319161036391888252602082015260400190565b60405180910390a4505050565b60008181526020818152604080832081516101408101835281548152600182015493810193909352600281015491830191909152600381015460608301526004810154608083015260058101546001600160a01b0390811660a084015260068201541660c08301526007810180548493929160e08401916103f090610f2c565b80601f016020809104026020016040519081016040528092919081815260200182805461041c90610f2c565b80156104695780601f1061043e57610100808354040283529160200191610469565b820191906000526020600020905b81548152906001019060200180831161044c57829003601f168201915b5050505050815260200160088201805461048290610f2c565b80601f01602080910402602001604051908101604052809291908181526020018280546104ae90610f2c565b80156104fb5780601f106104d0576101008083540402835291602001916104fb565b820191906000526020600020905b8154815290600101906020018083116104de57829003601f168201915b50505091835250506040805180820190915260098301548152600a909201546020838101919091520152606081015190915061053a5750600092915050565b50600192915050565b50919050565b6000818152602081905260409020600381015460011461059d5760405162461bcd60e51b815260206004820152600f60248201526e535741505f4e4f545f41435449564560881b6044820152606401610241565b42816002015411156105c15760405162461bcd60e51b815260040161024190610f06565b60026003820155600581015481546040516001600160a01b039092169181156108fc0291906000818181858888f19350505050158015610605573d6000803e3d6000fd5b506006810154600582015460048301546040519081526001600160a01b03928316929091169084907f6fa50d56c31f3efe0cb6ff06232bffce8fe8c4155e3cbb6f2d79dd12631c25229060200160405180910390a45050565b333442881161067f5760405162461bcd60e51b815260040161024190610f06565b600081116106c05760405162461bcd60e51b815260206004820152600e60248201526d1253959053125117d05353d5539560921b6044820152606401610241565b604080516001600160a01b038085166020830152881691810191909152606081018290526080810188905260a0810189905260009060c00160408051601f1981840301815291815281516020928301206000818152928390529120600301549091501561075d5760405162461bcd60e51b815260206004820152600b60248201526a535741505f45584953545360a81b6044820152606401610241565b835161076857600080fd5b600084602001511161077957600080fd5b6040518061014001604052808381526020018b81526020018a815260200160018152602001898152602001846001600160a01b03168152602001886001600160a01b0316815260200187815260200186815260200185815250600080838152602001908152602001600020600082015181600001556020820151816001015560408201518160020155606082015181600301556080820151816004015560a08201518160050160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060c08201518160060160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060e08201518160070190816108859190610faf565b50610100820151600882019061089b9082610faf565b506101208201518160090160008201518160000155602082015181600101555050905050866001600160a01b0316836001600160a01b0316827f1d31774ea86d945735b69a4af1ba1a0a71287ba386bc3fe658ae84927d2995c7858e8e8e8d8d8d60405161090f97969594939291906110b5565b60405180910390a450505050505050505050565b60008181526020818152604080832081516101408101835281548152600182015493810193909352600281015491830191909152600381015460608301526004810154608083015260058101546001600160a01b0390811660a084015260068201541660c08301526007810180548493929160e08401916109a390610f2c565b80601f01602080910402602001604051908101604052809291908181526020018280546109cf90610f2c565b8015610a1c5780601f106109f157610100808354040283529160200191610a1c565b820191906000526020600020905b8154815290600101906020018083116109ff57829003601f168201915b50505050508152602001600882018054610a3590610f2c565b80601f0160208091040260200160405190810160405280929190818152602001828054610a6190610f2c565b8015610aae5780601f10610a8357610100808354040283529160200191610aae565b820191906000526020600020905b815481529060010190602001808311610a9157829003601f168201915b50505091835250506040805180820190915260098301548152600a90920154602083810191909152015260608101519091506001148015610af25750428160400151105b15610b005760049150610543565b6060015192915050565b6000808211610b515760405162461bcd60e51b815260206004820152601360248201527204d6f64756c75732063616e6e6f74206265203606c1b6044820152606401610241565b60008411610b945760405162461bcd60e51b815260206004820152601060248201526f0626173652063616e6e6f7420626520360841b6044820152606401610241565b60008311610bdd5760405162461bcd60e51b815260206004820152601660248201527506578706f6e656e745f312063616e6e6f7420626520360541b6044820152606401610241565b81610be884866111fb565b610bf2919061120e565b949350505050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715610c3957610c39610bfa565b604052919050565b60006020808385031215610c5457600080fd5b823567ffffffffffffffff80821115610c6c57600080fd5b818501915085601f830112610c8057600080fd5b813581811115610c9257610c92610bfa565b8060051b9150610ca3848301610c10565b8181529183018401918481019088841115610cbd57600080fd5b938501935b83851015610cdb57843582529385019390850190610cc2565b98975050505050505050565b6020808252825182820181905260009190848201906040850190845b81811015610d1f57835183529284019291840191600101610d03565b50909695505050505050565b60008060408385031215610d3e57600080fd5b50508035926020909101359150565b600060208284031215610d5f57600080fd5b5035919050565b600082601f830112610d7757600080fd5b813567ffffffffffffffff811115610d9157610d91610bfa565b610da4601f8201601f1916602001610c10565b818152846020838601011115610db957600080fd5b816020850160208301376000918101602001919091529392505050565b6000806000806000806000878903610100811215610df357600080fd5b88359750602089013596506040890135955060608901356001600160a01b0381168114610e1f57600080fd5b9450608089013567ffffffffffffffff80821115610e3c57600080fd5b610e488c838d01610d66565b955060a08b0135915080821115610e5e57600080fd5b610e6a8c838d01610d66565b9450604060bf1984011215610e7e57600080fd5b60405192506040830191508282108183111715610e9d57610e9d610bfa565b5060405260c0890135815260e0909801356020890152509497939650919490939192565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600060018201610eff57610eff610ed7565b5060010190565b6020808252600c908201526b494e56414c49445f54494d4560a01b604082015260600190565b600181811c90821680610f4057607f821691505b60208210810361054357634e487b7160e01b600052602260045260246000fd5b601f821115610faa57600081815260208120601f850160051c81016020861015610f875750805b601f850160051c820191505b81811015610fa657828155600101610f93565b5050505b505050565b815167ffffffffffffffff811115610fc957610fc9610bfa565b610fdd81610fd78454610f2c565b84610f60565b602080601f8311600181146110125760008415610ffa5750858301515b600019600386901b1c1916600185901b178555610fa6565b600085815260208120601f198616915b8281101561104157888601518255948401946001909101908401611022565b508582101561105f5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6000815180845260005b8181101561109557602081850181015186830182015201611079565b506000602082860101526020601f19601f83011685010191505092915050565b60006101008983528860208401528760408401528660608401528060808401526110e18184018761106f565b905082810360a08401526110f5818661106f565b915050825160c0830152602083015160e083015298975050505050505050565b600181815b8085111561115057816000190482111561113657611136610ed7565b8085161561114357918102915b93841c939080029061111a565b509250929050565b600082611167575060016111f5565b81611174575060006111f5565b816001811461118a5760028114611194576111b0565b60019150506111f5565b60ff8411156111a5576111a5610ed7565b50506001821b6111f5565b5060208310610133831016604e8410600b84101617156111d3575081810a6111f5565b6111dd8383611115565b80600019048211156111f1576111f1610ed7565b0290505b92915050565b60006112078383611158565b9392505050565b60008261122b57634e487b7160e01b600052601260045260246000fd5b50069056fea26469706673582212201394af3c806f40ac6e19a695e00b9e526948e3236a710a5c9d21625c9c979f1f64736f6c63430008130033", + "deployedBytecode": "6080604052600436106100555760003560e01c80632f21a6631461005a57806363615149146100905780636c8244b8146100b25780637249fbb6146100e25780639b0bcdcb14610102578063fbdf3b4314610115575b600080fd5b34801561006657600080fd5b5061007a610075366004610c41565b610143565b6040516100879190610ce7565b60405180910390f35b34801561009c57600080fd5b506100b06100ab366004610d2b565b6101f1565b005b3480156100be57600080fd5b506100d26100cd366004610d4d565b610370565b6040519015158152602001610087565b3480156100ee57600080fd5b506100b06100fd366004610d4d565b610549565b6100b0610110366004610dd6565b61065e565b34801561012157600080fd5b50610135610130366004610d4d565b610923565b604051908152602001610087565b60606000825167ffffffffffffffff81111561016157610161610bfa565b60405190808252806020026020018201604052801561018a578160200160208202803683370190505b50905060005b83518110156101ea576101bb8482815181106101ae576101ae610ec1565b6020026020010151610923565b8282815181106101cd576101cd610ec1565b6020908102919091010152806101e281610eed565b915050610190565b5092915050565b6000828152602081905260409020600381015460011461024a5760405162461bcd60e51b815260206004820152600f60248201526e535741505f4e4f545f41435449564560881b60448201526064015b60405180910390fd5b4281600201541161026d5760405162461bcd60e51b815260040161024190610f06565b6009810154600a82015461028391908490610b0a565b8160040154146102c65760405162461bcd60e51b815260206004820152600e60248201526d1253959053125117d4d150d4915560921b6044820152606401610241565b600381810155600681015481546040516001600160a01b039092169181156108fc0291906000818181858888f19350505050158015610309573d6000803e3d6000fd5b506006810154600582015460048301546040516001600160a01b0393841693929092169186917f2d3a5ed13d0553389b4078e01264416362e34d23520fda797fbc17f3905ed1319161036391888252602082015260400190565b60405180910390a4505050565b60008181526020818152604080832081516101408101835281548152600182015493810193909352600281015491830191909152600381015460608301526004810154608083015260058101546001600160a01b0390811660a084015260068201541660c08301526007810180548493929160e08401916103f090610f2c565b80601f016020809104026020016040519081016040528092919081815260200182805461041c90610f2c565b80156104695780601f1061043e57610100808354040283529160200191610469565b820191906000526020600020905b81548152906001019060200180831161044c57829003601f168201915b5050505050815260200160088201805461048290610f2c565b80601f01602080910402602001604051908101604052809291908181526020018280546104ae90610f2c565b80156104fb5780601f106104d0576101008083540402835291602001916104fb565b820191906000526020600020905b8154815290600101906020018083116104de57829003601f168201915b50505091835250506040805180820190915260098301548152600a909201546020838101919091520152606081015190915061053a5750600092915050565b50600192915050565b50919050565b6000818152602081905260409020600381015460011461059d5760405162461bcd60e51b815260206004820152600f60248201526e535741505f4e4f545f41435449564560881b6044820152606401610241565b42816002015411156105c15760405162461bcd60e51b815260040161024190610f06565b60026003820155600581015481546040516001600160a01b039092169181156108fc0291906000818181858888f19350505050158015610605573d6000803e3d6000fd5b506006810154600582015460048301546040519081526001600160a01b03928316929091169084907f6fa50d56c31f3efe0cb6ff06232bffce8fe8c4155e3cbb6f2d79dd12631c25229060200160405180910390a45050565b333442881161067f5760405162461bcd60e51b815260040161024190610f06565b600081116106c05760405162461bcd60e51b815260206004820152600e60248201526d1253959053125117d05353d5539560921b6044820152606401610241565b604080516001600160a01b038085166020830152881691810191909152606081018290526080810188905260a0810189905260009060c00160408051601f1981840301815291815281516020928301206000818152928390529120600301549091501561075d5760405162461bcd60e51b815260206004820152600b60248201526a535741505f45584953545360a81b6044820152606401610241565b835161076857600080fd5b600084602001511161077957600080fd5b6040518061014001604052808381526020018b81526020018a815260200160018152602001898152602001846001600160a01b03168152602001886001600160a01b0316815260200187815260200186815260200185815250600080838152602001908152602001600020600082015181600001556020820151816001015560408201518160020155606082015181600301556080820151816004015560a08201518160050160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060c08201518160060160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060e08201518160070190816108859190610faf565b50610100820151600882019061089b9082610faf565b506101208201518160090160008201518160000155602082015181600101555050905050866001600160a01b0316836001600160a01b0316827f1d31774ea86d945735b69a4af1ba1a0a71287ba386bc3fe658ae84927d2995c7858e8e8e8d8d8d60405161090f97969594939291906110b5565b60405180910390a450505050505050505050565b60008181526020818152604080832081516101408101835281548152600182015493810193909352600281015491830191909152600381015460608301526004810154608083015260058101546001600160a01b0390811660a084015260068201541660c08301526007810180548493929160e08401916109a390610f2c565b80601f01602080910402602001604051908101604052809291908181526020018280546109cf90610f2c565b8015610a1c5780601f106109f157610100808354040283529160200191610a1c565b820191906000526020600020905b8154815290600101906020018083116109ff57829003601f168201915b50505050508152602001600882018054610a3590610f2c565b80601f0160208091040260200160405190810160405280929190818152602001828054610a6190610f2c565b8015610aae5780601f10610a8357610100808354040283529160200191610aae565b820191906000526020600020905b815481529060010190602001808311610a9157829003601f168201915b50505091835250506040805180820190915260098301548152600a90920154602083810191909152015260608101519091506001148015610af25750428160400151105b15610b005760049150610543565b6060015192915050565b6000808211610b515760405162461bcd60e51b815260206004820152601360248201527204d6f64756c75732063616e6e6f74206265203606c1b6044820152606401610241565b60008411610b945760405162461bcd60e51b815260206004820152601060248201526f0626173652063616e6e6f7420626520360841b6044820152606401610241565b60008311610bdd5760405162461bcd60e51b815260206004820152601660248201527506578706f6e656e745f312063616e6e6f7420626520360541b6044820152606401610241565b81610be884866111fb565b610bf2919061120e565b949350505050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715610c3957610c39610bfa565b604052919050565b60006020808385031215610c5457600080fd5b823567ffffffffffffffff80821115610c6c57600080fd5b818501915085601f830112610c8057600080fd5b813581811115610c9257610c92610bfa565b8060051b9150610ca3848301610c10565b8181529183018401918481019088841115610cbd57600080fd5b938501935b83851015610cdb57843582529385019390850190610cc2565b98975050505050505050565b6020808252825182820181905260009190848201906040850190845b81811015610d1f57835183529284019291840191600101610d03565b50909695505050505050565b60008060408385031215610d3e57600080fd5b50508035926020909101359150565b600060208284031215610d5f57600080fd5b5035919050565b600082601f830112610d7757600080fd5b813567ffffffffffffffff811115610d9157610d91610bfa565b610da4601f8201601f1916602001610c10565b818152846020838601011115610db957600080fd5b816020850160208301376000918101602001919091529392505050565b6000806000806000806000878903610100811215610df357600080fd5b88359750602089013596506040890135955060608901356001600160a01b0381168114610e1f57600080fd5b9450608089013567ffffffffffffffff80821115610e3c57600080fd5b610e488c838d01610d66565b955060a08b0135915080821115610e5e57600080fd5b610e6a8c838d01610d66565b9450604060bf1984011215610e7e57600080fd5b60405192506040830191508282108183111715610e9d57610e9d610bfa565b5060405260c0890135815260e0909801356020890152509497939650919490939192565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600060018201610eff57610eff610ed7565b5060010190565b6020808252600c908201526b494e56414c49445f54494d4560a01b604082015260600190565b600181811c90821680610f4057607f821691505b60208210810361054357634e487b7160e01b600052602260045260246000fd5b601f821115610faa57600081815260208120601f850160051c81016020861015610f875750805b601f850160051c820191505b81811015610fa657828155600101610f93565b5050505b505050565b815167ffffffffffffffff811115610fc957610fc9610bfa565b610fdd81610fd78454610f2c565b84610f60565b602080601f8311600181146110125760008415610ffa5750858301515b600019600386901b1c1916600185901b178555610fa6565b600085815260208120601f198616915b8281101561104157888601518255948401946001909101908401611022565b508582101561105f5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6000815180845260005b8181101561109557602081850181015186830182015201611079565b506000602082860101526020601f19601f83011685010191505092915050565b60006101008983528860208401528760408401528660608401528060808401526110e18184018761106f565b905082810360a08401526110f5818661106f565b915050825160c0830152602083015160e083015298975050505050505050565b600181815b8085111561115057816000190482111561113657611136610ed7565b8085161561114357918102915b93841c939080029061111a565b509250929050565b600082611167575060016111f5565b81611174575060006111f5565b816001811461118a5760028114611194576111b0565b60019150506111f5565b60ff8411156111a5576111a5610ed7565b50506001821b6111f5565b5060208310610133831016604e8410600b84101617156111d3575081810a6111f5565b6111dd8383611115565b80600019048211156111f1576111f1610ed7565b0290505b92915050565b60006112078383611158565b9392505050565b60008261122b57634e487b7160e01b600052601260045260246000fd5b50069056fea26469706673582212201394af3c806f40ac6e19a695e00b9e526948e3236a710a5c9d21625c9c979f1f64736f6c63430008130033", + "sourceMap": "57:5185:0:-:0;;;;;;;;;;;;;;;;;;;", + "deployedSourceMap": "57:5185:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4339:303;;;;;;;;;;-1:-1:-1;4339:303:0;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3080:526;;;;;;;;;;-1:-1:-1;3080:526:0;;;;;:::i;:::-;;:::i;:::-;;4983:257;;;;;;;;;;-1:-1:-1;4983:257:0;;;;;:::i;:::-;;:::i;:::-;;;2617:14:1;;2610:22;2592:41;;2580:2;2565:18;4983:257:0;2452:187:1;3982:351:0;;;;;;;;;;-1:-1:-1;3982:351:0;;;;;:::i;:::-;;:::i;1905:1169::-;;;;;;:::i;:::-;;:::i;4648:329::-;;;;;;;;;;-1:-1:-1;4648:329:0;;;;;:::i;:::-;;:::i;:::-;;;4724:25:1;;;4712:2;4697:18;4648:329:0;4578:177:1;4339:303:0;4401:16;4429:23;4469:3;:10;4455:25;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4455:25:0;;4429:51;;4496:13;4491:121;4523:3;:10;4515:5;:18;4491:121;;;4574:27;4590:3;4594:5;4590:10;;;;;;;;:::i;:::-;;;;;;;4574:15;:27::i;:::-;4558:6;4565:5;4558:13;;;;;;;;:::i;:::-;;;;;;;;;;:43;4535:7;;;;:::i;:::-;;;;4491:121;;;-1:-1:-1;4629:6:0;4339:303;-1:-1:-1;;4339:303:0:o;3080:526::-;3145:22;3170:13;;;;;;;;;;3201:8;;;;370:1;3201:18;3193:46;;;;-1:-1:-1;;;3193:46:0;;5366:2:1;3193:46:0;;;5348:21:1;5405:2;5385:18;;;5378:30;-1:-1:-1;;;5424:18:1;;;5417:45;5479:18;;3193:46:0;;;;;;;;;3273:15;3258:1;:12;;;:30;3250:55;;;;-1:-1:-1;;;3250:55:0;;;;;;;:::i;:::-;3373:6;;;:16;3408:14;;;;3353:70;;3373:16;3399:6;;3353:19;:70::i;:::-;3337:1;:12;;;:86;3316:135;;;;-1:-1:-1;;;3316:135:0;;6051:2:1;3316:135:0;;;6033:21:1;6090:2;6070:18;;;6063:30;-1:-1:-1;;;6109:18:1;;;6102:44;6163:18;;3316:135:0;5849:338:1;3316:135:0;542:1;3462:8;;;:20;3493:10;;;;3513:13;;3493:34;;-1:-1:-1;;;;;3493:10:0;;;;:34;;;;;3513:13;3493:10;:34;:10;:34;3513:13;3493:10;:34;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3588:10:0;;;;3578:8;;;;3564:12;;;;3543:56;;-1:-1:-1;;;;;3588:10:0;;;;3578:8;;;;;3552:2;;3543:56;;;;3556:6;6366:25:1;;6422:2;6407:18;;6400:34;6354:2;6339:18;;6192:248;3543:56:0;;;;;;;;3135:471;3080:526;;:::o;4983:257::-;5040:11;5098:13;;;;;;;;;;;5063:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5063:48:0;;;;;;;;;;;;;;;;;;;;;5040:11;;5063:48;5098:13;5063:48;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;5063:48:0;;;-1:-1:-1;;5063:48:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5126:19;;;;5063:48;;-1:-1:-1;5122:112:0;;-1:-1:-1;5176:5:0;;4983:257;-1:-1:-1;;4983:257:0:o;5122:112::-;-1:-1:-1;5219:4:0;;4983:257;-1:-1:-1;;4983:257:0:o;5122:112::-;5053:187;4983:257;;;:::o;3982:351::-;4029:22;4054:13;;;;;;;;;;4086:8;;;;370:1;4086:18;4078:46;;;;-1:-1:-1;;;4078:46:0;;5366:2:1;4078:46:0;;;5348:21:1;5405:2;5385:18;;;5378:30;-1:-1:-1;;;5424:18:1;;;5417:45;5479:18;;4078:46:0;5164:339:1;4078:46:0;4159:15;4143:1;:12;;;:31;;4135:56;;;;-1:-1:-1;;;4135:56:0;;;;;;;:::i;:::-;462:1;4202:8;;;:19;4232:8;;;;4250:13;;4232:32;;-1:-1:-1;;;;;4232:8:0;;;;:32;;;;;4250:13;4232:8;:32;:8;:32;4250:13;4232:8;:32;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4315:10:0;;;;4305:8;;;;4291:12;;;;4280:46;;4724:25:1;;;-1:-1:-1;;;;;4315:10:0;;;;4305:8;;;;4287:2;;4280:46;;4712:2:1;4697:18;4280:46:0;;;;;;;4019:314;3982:351;:::o;1905:1169::-;2229:10;2272:9;2313:15;2300:28;;2292:53;;;;-1:-1:-1;;;2292:53:0;;;;;;;:::i;:::-;2378:1;2364:11;:15;2356:42;;;;-1:-1:-1;;;2356:42:0;;7214:2:1;2356:42:0;;;7196:21:1;7253:2;7233:18;;;7226:30;-1:-1:-1;;;7272:18:1;;;7265:44;7326:18;;2356:42:0;7012:338:1;2356:42:0;2432:63;;;-1:-1:-1;;;;;7702:15:1;;;2432:63:0;;;7684:34:1;7754:15;;7734:18;;;7727:43;;;;7786:18;;;7779:34;;;7829:18;;;7822:34;;;7872:19;;;7865:35;;;2409:10:0;;7618:19:1;;2432:63:0;;;-1:-1:-1;;2432:63:0;;;;;;;;;2422:74;;2432:63;2422:74;;;;295:1;2515:13;;;;;;;;;:20;;;2422:74;;-1:-1:-1;2515:28:0;2507:52;;;;-1:-1:-1;;;2507:52:0;;8113:2:1;2507:52:0;;;8095:21:1;8152:2;8132:18;;;8125:30;-1:-1:-1;;;8171:18:1;;;8164:41;8222:18;;2507:52:0;7911:335:1;2507:52:0;2577:14;;2569:27;;;;;;2629:1;2614:4;:12;;;:16;2606:25;;;;;;2658:253;;;;;;;;2684:11;2658:253;;;;2709:12;2658:253;;;;2735:10;2658:253;;;;370:1;2658:253;;;;2779:8;2658:253;;;;2801:6;-1:-1:-1;;;;;2658:253:0;;;;;2821:8;-1:-1:-1;;;;;2658:253:0;;;;;2843:13;2658:253;;;;2870:13;2658:253;;;;2897:4;2658:253;;;2642:9;:13;2652:2;2642:13;;;;;;;;;;;:269;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2642:269:0;;;;;-1:-1:-1;;;;;2642:269:0;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2642:269:0;;;;;-1:-1:-1;;;;;2642:269:0;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;2642:269:0;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3013:8;-1:-1:-1;;;;;2927:140:0;3005:6;-1:-1:-1;;;;;2927:140:0;2991:2;2927:140;2952:11;2965:12;2979:10;2995:8;3023:13;3038;3053:4;2927:140;;;;;;;;;;;;:::i;:::-;;;;;;;;2186:888;;;1905:1169;;;;;;;:::o;4648:329::-;4706:14;4767:13;;;;;;;;;;;4732:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4732:48:0;;;;;;;;;;;;;;;;;;;;;4706:14;;4732:48;4767:13;4732:48;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;4732:48:0;;;-1:-1:-1;;4732:48:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4795:19;;;;4732:48;;-1:-1:-1;4732:48:0;4795:29;:74;;;;;4854:15;4828:12;:23;;;:41;4795:74;4791:180;;;621:1;4885:16;;4791:180;;;4941:19;;;;4648:329;-1:-1:-1;;4648:329:0:o;3612:364::-;3737:14;3785:1;3775:7;:11;3767:43;;;;-1:-1:-1;;;3767:43:0;;11984:2:1;3767:43:0;;;11966:21:1;12023:2;12003:18;;;11996:30;-1:-1:-1;;;12042:18:1;;;12035:49;12101:18;;3767:43:0;11782:343:1;3767:43:0;3835:1;3828:4;:8;3820:37;;;;-1:-1:-1;;;3820:37:0;;12332:2:1;3820:37:0;;;12314:21:1;12371:2;12351:18;;;12344:30;-1:-1:-1;;;12390:18:1;;;12383:46;12446:18;;3820:37:0;12130:340:1;3820:37:0;3886:1;3875:8;:12;3867:47;;;;-1:-1:-1;;;3867:47:0;;12677:2:1;3867:47:0;;;12659:21:1;12716:2;12696:18;;;12689:30;-1:-1:-1;;;12735:18:1;;;12728:52;12797:18;;3867:47:0;12475:346:1;3867:47:0;3961:7;3941:16;3949:8;3941:4;:16;:::i;:::-;3940:28;;;;:::i;:::-;3932:37;3612:364;-1:-1:-1;;;;3612:364:0:o;14:127:1:-;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:275;217:2;211:9;282:2;263:13;;-1:-1:-1;;259:27:1;247:40;;317:18;302:34;;338:22;;;299:62;296:88;;;364:18;;:::i;:::-;400:2;393:22;146:275;;-1:-1:-1;146:275:1:o;426:946::-;510:6;541:2;584;572:9;563:7;559:23;555:32;552:52;;;600:1;597;590:12;552:52;640:9;627:23;669:18;710:2;702:6;699:14;696:34;;;726:1;723;716:12;696:34;764:6;753:9;749:22;739:32;;809:7;802:4;798:2;794:13;790:27;780:55;;831:1;828;821:12;780:55;867:2;854:16;889:2;885;882:10;879:36;;;895:18;;:::i;:::-;941:2;938:1;934:10;924:20;;964:28;988:2;984;980:11;964:28;:::i;:::-;1026:15;;;1096:11;;;1092:20;;;1057:12;;;;1124:19;;;1121:39;;;1156:1;1153;1146:12;1121:39;1180:11;;;;1200:142;1216:6;1211:3;1208:15;1200:142;;;1282:17;;1270:30;;1233:12;;;;1320;;;;1200:142;;;1361:5;426:946;-1:-1:-1;;;;;;;;426:946:1:o;1377:632::-;1548:2;1600:21;;;1670:13;;1573:18;;;1692:22;;;1519:4;;1548:2;1771:15;;;;1745:2;1730:18;;;1519:4;1814:169;1828:6;1825:1;1822:13;1814:169;;;1889:13;;1877:26;;1958:15;;;;1923:12;;;;1850:1;1843:9;1814:169;;;-1:-1:-1;2000:3:1;;1377:632;-1:-1:-1;;;;;;1377:632:1:o;2014:248::-;2082:6;2090;2143:2;2131:9;2122:7;2118:23;2114:32;2111:52;;;2159:1;2156;2149:12;2111:52;-1:-1:-1;;2182:23:1;;;2252:2;2237:18;;;2224:32;;-1:-1:-1;2014:248:1:o;2267:180::-;2326:6;2379:2;2367:9;2358:7;2354:23;2350:32;2347:52;;;2395:1;2392;2385:12;2347:52;-1:-1:-1;2418:23:1;;2267:180;-1:-1:-1;2267:180:1:o;2644:531::-;2687:5;2740:3;2733:4;2725:6;2721:17;2717:27;2707:55;;2758:1;2755;2748:12;2707:55;2794:6;2781:20;2820:18;2816:2;2813:26;2810:52;;;2842:18;;:::i;:::-;2886:55;2929:2;2910:13;;-1:-1:-1;;2906:27:1;2935:4;2902:38;2886:55;:::i;:::-;2966:2;2957:7;2950:19;3012:3;3005:4;3000:2;2992:6;2988:15;2984:26;2981:35;2978:55;;;3029:1;3026;3019:12;2978:55;3094:2;3087:4;3079:6;3075:17;3068:4;3059:7;3055:18;3042:55;3142:1;3117:16;;;3135:4;3113:27;3106:38;;;;3121:7;2644:531;-1:-1:-1;;;2644:531:1:o;3180:1393::-;3353:6;3361;3369;3377;3385;3393;3401;3445:9;3436:7;3432:23;3475:3;3471:2;3467:12;3464:32;;;3492:1;3489;3482:12;3464:32;3515:23;;;-1:-1:-1;3585:2:1;3570:18;;3557:32;;-1:-1:-1;3636:2:1;3621:18;;3608:32;;-1:-1:-1;3690:2:1;3675:18;;3662:32;-1:-1:-1;;;;;3723:31:1;;3713:42;;3703:70;;3769:1;3766;3759:12;3703:70;3792:5;-1:-1:-1;3848:3:1;3833:19;;3820:33;3872:18;3902:14;;;3899:34;;;3929:1;3926;3919:12;3899:34;3952:50;3994:7;3985:6;3974:9;3970:22;3952:50;:::i;:::-;3942:60;;4055:3;4044:9;4040:19;4027:33;4011:49;;4085:2;4075:8;4072:16;4069:36;;;4101:1;4098;4091:12;4069:36;4124:52;4168:7;4157:8;4146:9;4142:24;4124:52;:::i;:::-;4114:62;-1:-1:-1;4211:2:1;-1:-1:-1;;4192:17:1;;4188:26;4185:46;;;4227:1;4224;4217:12;4185:46;4260:2;4254:9;4240:23;;4302:2;4294:6;4290:15;4272:33;;4355:6;4343:10;4340:22;4335:2;4323:10;4320:18;4317:46;4314:72;;;4366:18;;:::i;:::-;-1:-1:-1;4402:2:1;4395:22;4469:3;4454:19;;4441:33;4426:49;;4536:3;4521:19;;;4508:33;4503:2;4491:15;;4484:58;-1:-1:-1;3180:1393:1;;;;-1:-1:-1;3180:1393:1;;;;;;:::o;4760:127::-;4821:10;4816:3;4812:20;4809:1;4802:31;4852:4;4849:1;4842:15;4876:4;4873:1;4866:15;4892:127;4953:10;4948:3;4944:20;4941:1;4934:31;4984:4;4981:1;4974:15;5008:4;5005:1;4998:15;5024:135;5063:3;5084:17;;;5081:43;;5104:18;;:::i;:::-;-1:-1:-1;5151:1:1;5140:13;;5024:135::o;5508:336::-;5710:2;5692:21;;;5749:2;5729:18;;;5722:30;-1:-1:-1;;;5783:2:1;5768:18;;5761:42;5835:2;5820:18;;5508:336::o;6445:380::-;6524:1;6520:12;;;;6567;;;6588:61;;6642:4;6634:6;6630:17;6620:27;;6588:61;6695:2;6687:6;6684:14;6664:18;6661:38;6658:161;;6741:10;6736:3;6732:20;6729:1;6722:31;6776:4;6773:1;6766:15;6804:4;6801:1;6794:15;8377:545;8479:2;8474:3;8471:11;8468:448;;;8515:1;8540:5;8536:2;8529:17;8585:4;8581:2;8571:19;8655:2;8643:10;8639:19;8636:1;8632:27;8626:4;8622:38;8691:4;8679:10;8676:20;8673:47;;;-1:-1:-1;8714:4:1;8673:47;8769:2;8764:3;8760:12;8757:1;8753:20;8747:4;8743:31;8733:41;;8824:82;8842:2;8835:5;8832:13;8824:82;;;8887:17;;;8868:1;8857:13;8824:82;;;8828:3;;;8468:448;8377:545;;;:::o;9098:1352::-;9224:3;9218:10;9251:18;9243:6;9240:30;9237:56;;;9273:18;;:::i;:::-;9302:97;9392:6;9352:38;9384:4;9378:11;9352:38;:::i;:::-;9346:4;9302:97;:::i;:::-;9454:4;;9518:2;9507:14;;9535:1;9530:663;;;;10237:1;10254:6;10251:89;;;-1:-1:-1;10306:19:1;;;10300:26;10251:89;-1:-1:-1;;9055:1:1;9051:11;;;9047:24;9043:29;9033:40;9079:1;9075:11;;;9030:57;10353:81;;9500:944;;9530:663;8324:1;8317:14;;;8361:4;8348:18;;-1:-1:-1;;9566:20:1;;;9684:236;9698:7;9695:1;9692:14;9684:236;;;9787:19;;;9781:26;9766:42;;9879:27;;;;9847:1;9835:14;;;;9714:19;;9684:236;;;9688:3;9948:6;9939:7;9936:19;9933:201;;;10009:19;;;10003:26;-1:-1:-1;;10092:1:1;10088:14;;;10104:3;10084:24;10080:37;10076:42;10061:58;10046:74;;9933:201;-1:-1:-1;;;;;10180:1:1;10164:14;;;10160:22;10147:36;;-1:-1:-1;9098:1352:1:o;10455:423::-;10497:3;10535:5;10529:12;10562:6;10557:3;10550:19;10587:1;10597:162;10611:6;10608:1;10605:13;10597:162;;;10673:4;10729:13;;;10725:22;;10719:29;10701:11;;;10697:20;;10690:59;10626:12;10597:162;;;10601:3;10804:1;10797:4;10788:6;10783:3;10779:16;10775:27;10768:38;10867:4;10860:2;10856:7;10851:2;10843:6;10839:15;10835:29;10830:3;10826:39;10822:50;10815:57;;;10455:423;;;;:::o;10883:894::-;11247:4;11276:3;11306:6;11295:9;11288:25;11349:6;11344:2;11333:9;11329:18;11322:34;11392:6;11387:2;11376:9;11372:18;11365:34;11435:6;11430:2;11419:9;11415:18;11408:34;11479:2;11473:3;11462:9;11458:19;11451:31;11505:45;11546:2;11535:9;11531:18;11523:6;11505:45;:::i;:::-;11491:59;;11599:9;11591:6;11587:22;11581:3;11570:9;11566:19;11559:51;11627:33;11653:6;11645;11627:33;:::i;:::-;11619:41;;;11703:6;11697:13;11691:3;11680:9;11676:19;11669:42;11766:2;11758:6;11754:15;11748:22;11742:3;11731:9;11727:19;11720:51;10883:894;;;;;;;;;;:::o;12826:422::-;12915:1;12958:5;12915:1;12972:270;12993:7;12983:8;12980:21;12972:270;;;13052:4;13048:1;13044:6;13040:17;13034:4;13031:27;13028:53;;;13061:18;;:::i;:::-;13111:7;13101:8;13097:22;13094:55;;;13131:16;;;;13094:55;13210:22;;;;13170:15;;;;12972:270;;;12976:3;12826:422;;;;;:::o;13253:806::-;13302:5;13332:8;13322:80;;-1:-1:-1;13373:1:1;13387:5;;13322:80;13421:4;13411:76;;-1:-1:-1;13458:1:1;13472:5;;13411:76;13503:4;13521:1;13516:59;;;;13589:1;13584:130;;;;13496:218;;13516:59;13546:1;13537:10;;13560:5;;;13584:130;13621:3;13611:8;13608:17;13605:43;;;13628:18;;:::i;:::-;-1:-1:-1;;13684:1:1;13670:16;;13699:5;;13496:218;;13798:2;13788:8;13785:16;13779:3;13773:4;13770:13;13766:36;13760:2;13750:8;13747:16;13742:2;13736:4;13733:12;13729:35;13726:77;13723:159;;;-1:-1:-1;13835:19:1;;;13867:5;;13723:159;13914:34;13939:8;13933:4;13914:34;:::i;:::-;13984:6;13980:1;13976:6;13972:19;13963:7;13960:32;13957:58;;;13995:18;;:::i;:::-;14033:20;;-1:-1:-1;13253:806:1;;;;;:::o;14064:131::-;14124:5;14153:36;14180:8;14174:4;14153:36;:::i;:::-;14144:45;14064:131;-1:-1:-1;;;14064:131:1:o;14200:209::-;14232:1;14258;14248:132;;14302:10;14297:3;14293:20;14290:1;14283:31;14337:4;14334:1;14327:15;14365:4;14362:1;14355:15;14248:132;-1:-1:-1;14394:9:1;;14200:209::o", + "sourcePath": "/home/peter/a/cacti-1/packages/cactus-plugin-htlc-eth-besu/src/main/solidity/contracts/PrivateHashTimeLock.sol", + "compiler": { + "name": "solc", + "version": "0.8.19+commit.7dd6d404" + }, + "ast": { + "absolutePath": "/home/peter/a/cacti-1/packages/cactus-plugin-htlc-eth-besu/src/main/solidity/contracts/PrivateHashTimeLock.sol", + "exportedSymbols": { + "PrivateHashTimeLock": [ + 504 + ] + }, + "id": 505, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1, + "literals": [ + "solidity", + "0.8", + ".19" + ], + "nodeType": "PragmaDirective", + "src": "32:23:0" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "PrivateHashTimeLock", + "contractDependencies": [], + "contractKind": "contract", + "fullyImplemented": true, + "id": 504, + "linearizedBaseContracts": [ + 504 + ], + "name": "PrivateHashTimeLock", + "nameLocation": "66:19:0", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": false, + "id": 6, + "mutability": "mutable", + "name": "contracts", + "nameLocation": "133:9:0", + "nodeType": "VariableDeclaration", + "scope": 504, + "src": "92:50:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_LockContract_$59_storage_$", + "typeString": "mapping(bytes32 => struct PrivateHashTimeLock.LockContract)" + }, + "typeName": { + "id": 5, + "keyName": "", + "keyNameLocation": "-1:-1:-1", + "keyType": { + "id": 2, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "100:7:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "Mapping", + "src": "92:32:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_LockContract_$59_storage_$", + "typeString": "mapping(bytes32 => struct PrivateHashTimeLock.LockContract)" + }, + "valueName": "", + "valueNameLocation": "-1:-1:-1", + "valueType": { + "id": 4, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 3, + "name": "LockContract", + "nameLocations": [ + "111:12:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 59, + "src": "111:12:0" + }, + "referencedDeclaration": 59, + "src": "111:12:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_LockContract_$59_storage_ptr", + "typeString": "struct PrivateHashTimeLock.LockContract" + } + } + }, + "visibility": "private" + }, + { + "constant": true, + "id": 9, + "mutability": "constant", + "name": "INIT", + "nameLocation": "288:4:0", + "nodeType": "VariableDeclaration", + "scope": 504, + "src": "263:33:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "263:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "30", + "id": 8, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "295:1:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "visibility": "private" + }, + { + "constant": true, + "id": 12, + "mutability": "constant", + "name": "ACTIVE", + "nameLocation": "361:6:0", + "nodeType": "VariableDeclaration", + "scope": 504, + "src": "336:35:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "336:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "31", + "id": 11, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "370:1:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "visibility": "private" + }, + { + "constant": true, + "id": 15, + "mutability": "constant", + "name": "REFUNDED", + "nameLocation": "451:8:0", + "nodeType": "VariableDeclaration", + "scope": 504, + "src": "426:37:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 13, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "426:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "32", + "id": 14, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "462:1:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "visibility": "private" + }, + { + "constant": true, + "id": 18, + "mutability": "constant", + "name": "WITHDRAWN", + "nameLocation": "530:9:0", + "nodeType": "VariableDeclaration", + "scope": 504, + "src": "505:38:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 16, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "505:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "33", + "id": 17, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "542:1:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + }, + "value": "3" + }, + "visibility": "private" + }, + { + "constant": true, + "id": 21, + "mutability": "constant", + "name": "EXPIRED", + "nameLocation": "611:7:0", + "nodeType": "VariableDeclaration", + "scope": 504, + "src": "586:36:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 19, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "586:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "34", + "id": 20, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "621:1:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_4_by_1", + "typeString": "int_const 4" + }, + "value": "4" + }, + "visibility": "private" + }, + { + "canonicalName": "PrivateHashTimeLock.PrivateEnhancing", + "id": 26, + "members": [ + { + "constant": false, + "id": 23, + "mutability": "mutable", + "name": "generator", + "nameLocation": "739:9:0", + "nodeType": "VariableDeclaration", + "scope": 26, + "src": "731:17:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 22, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "731:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 25, + "mutability": "mutable", + "name": "modulus", + "nameLocation": "793:7:0", + "nodeType": "VariableDeclaration", + "scope": 26, + "src": "785:15:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 24, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "785:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "name": "PrivateEnhancing", + "nameLocation": "677:16:0", + "nodeType": "StructDefinition", + "scope": 504, + "src": "670:137:0", + "visibility": "public" + }, + { + "canonicalName": "PrivateHashTimeLock.SwapDetails", + "id": 37, + "members": [ + { + "constant": false, + "id": 28, + "mutability": "mutable", + "name": "sender", + "nameLocation": "858:6:0", + "nodeType": "VariableDeclaration", + "scope": 37, + "src": "842:22:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + "typeName": { + "id": 27, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "842:15:0", + "stateMutability": "payable", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 30, + "mutability": "mutable", + "name": "receiver", + "nameLocation": "890:8:0", + "nodeType": "VariableDeclaration", + "scope": 37, + "src": "874:24:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + "typeName": { + "id": 29, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "874:15:0", + "stateMutability": "payable", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 32, + "mutability": "mutable", + "name": "inputAmount", + "nameLocation": "916:11:0", + "nodeType": "VariableDeclaration", + "scope": 37, + "src": "908:19:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 31, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "908:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 34, + "mutability": "mutable", + "name": "hashSecret", + "nameLocation": "945:10:0", + "nodeType": "VariableDeclaration", + "scope": 37, + "src": "937:18:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 33, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "937:7:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 36, + "mutability": "mutable", + "name": "expiration", + "nameLocation": "973:10:0", + "nodeType": "VariableDeclaration", + "scope": 37, + "src": "965:18:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 35, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "965:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "name": "SwapDetails", + "nameLocation": "820:11:0", + "nodeType": "StructDefinition", + "scope": 504, + "src": "813:177:0", + "visibility": "public" + }, + { + "canonicalName": "PrivateHashTimeLock.LockContract", + "id": 59, + "members": [ + { + "constant": false, + "id": 39, + "mutability": "mutable", + "name": "inputAmount", + "nameLocation": "1034:11:0", + "nodeType": "VariableDeclaration", + "scope": 59, + "src": "1026:19:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 38, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1026:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 41, + "mutability": "mutable", + "name": "outputAmount", + "nameLocation": "1063:12:0", + "nodeType": "VariableDeclaration", + "scope": 59, + "src": "1055:20:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 40, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1055:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 43, + "mutability": "mutable", + "name": "expiration", + "nameLocation": "1093:10:0", + "nodeType": "VariableDeclaration", + "scope": 59, + "src": "1085:18:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 42, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1085:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 45, + "mutability": "mutable", + "name": "status", + "nameLocation": "1121:6:0", + "nodeType": "VariableDeclaration", + "scope": 59, + "src": "1113:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 44, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1113:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 47, + "mutability": "mutable", + "name": "hashSecret", + "nameLocation": "1145:10:0", + "nodeType": "VariableDeclaration", + "scope": 59, + "src": "1137:18:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 46, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1137:7:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 49, + "mutability": "mutable", + "name": "sender", + "nameLocation": "1181:6:0", + "nodeType": "VariableDeclaration", + "scope": 59, + "src": "1165:22:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + "typeName": { + "id": 48, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1165:15:0", + "stateMutability": "payable", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 51, + "mutability": "mutable", + "name": "receiver", + "nameLocation": "1213:8:0", + "nodeType": "VariableDeclaration", + "scope": 59, + "src": "1197:24:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + "typeName": { + "id": 50, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1197:15:0", + "stateMutability": "payable", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 53, + "mutability": "mutable", + "name": "outputNetwork", + "nameLocation": "1238:13:0", + "nodeType": "VariableDeclaration", + "scope": 59, + "src": "1231:20:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + }, + "typeName": { + "id": 52, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1231:6:0", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 55, + "mutability": "mutable", + "name": "outputAddress", + "nameLocation": "1268:13:0", + "nodeType": "VariableDeclaration", + "scope": 59, + "src": "1261:20:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + }, + "typeName": { + "id": 54, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1261:6:0", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 58, + "mutability": "mutable", + "name": "priv", + "nameLocation": "1308:4:0", + "nodeType": "VariableDeclaration", + "scope": 59, + "src": "1291:21:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_struct$_PrivateEnhancing_$26_storage_ptr", + "typeString": "struct PrivateHashTimeLock.PrivateEnhancing" + }, + "typeName": { + "id": 57, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 56, + "name": "PrivateEnhancing", + "nameLocations": [ + "1291:16:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 26, + "src": "1291:16:0" + }, + "referencedDeclaration": 26, + "src": "1291:16:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_PrivateEnhancing_$26_storage_ptr", + "typeString": "struct PrivateHashTimeLock.PrivateEnhancing" + } + }, + "visibility": "internal" + } + ], + "name": "LockContract", + "nameLocation": "1003:12:0", + "nodeType": "StructDefinition", + "scope": 504, + "src": "996:323:0", + "visibility": "public" + }, + { + "anonymous": false, + "eventSelector": "2d3a5ed13d0553389b4078e01264416362e34d23520fda797fbc17f3905ed131", + "id": 71, + "name": "Withdraw", + "nameLocation": "1331:8:0", + "nodeType": "EventDefinition", + "parameters": { + "id": 70, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 61, + "indexed": true, + "mutability": "mutable", + "name": "id", + "nameLocation": "1365:2:0", + "nodeType": "VariableDeclaration", + "scope": 71, + "src": "1349:18:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 60, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1349:7:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 63, + "indexed": false, + "mutability": "mutable", + "name": "secret", + "nameLocation": "1377:6:0", + "nodeType": "VariableDeclaration", + "scope": 71, + "src": "1369:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 62, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1369:7:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 65, + "indexed": false, + "mutability": "mutable", + "name": "hashSecret", + "nameLocation": "1393:10:0", + "nodeType": "VariableDeclaration", + "scope": 71, + "src": "1385:18:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 64, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1385:7:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 67, + "indexed": true, + "mutability": "mutable", + "name": "sender", + "nameLocation": "1421:6:0", + "nodeType": "VariableDeclaration", + "scope": 71, + "src": "1405:22:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 66, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1405:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 69, + "indexed": true, + "mutability": "mutable", + "name": "receiver", + "nameLocation": "1445:8:0", + "nodeType": "VariableDeclaration", + "scope": 71, + "src": "1429:24:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 68, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1429:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1339:120:0" + }, + "src": "1325:135:0" + }, + { + "anonymous": false, + "eventSelector": "6fa50d56c31f3efe0cb6ff06232bffce8fe8c4155e3cbb6f2d79dd12631c2522", + "id": 81, + "name": "Refund", + "nameLocation": "1472:6:0", + "nodeType": "EventDefinition", + "parameters": { + "id": 80, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 73, + "indexed": true, + "mutability": "mutable", + "name": "id", + "nameLocation": "1495:2:0", + "nodeType": "VariableDeclaration", + "scope": 81, + "src": "1479:18:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 72, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1479:7:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 75, + "indexed": false, + "mutability": "mutable", + "name": "hashSecret", + "nameLocation": "1507:10:0", + "nodeType": "VariableDeclaration", + "scope": 81, + "src": "1499:18:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 74, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1499:7:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 77, + "indexed": true, + "mutability": "mutable", + "name": "sender", + "nameLocation": "1535:6:0", + "nodeType": "VariableDeclaration", + "scope": 81, + "src": "1519:22:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 76, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1519:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 79, + "indexed": true, + "mutability": "mutable", + "name": "receiver", + "nameLocation": "1559:8:0", + "nodeType": "VariableDeclaration", + "scope": 81, + "src": "1543:24:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 78, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1543:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1478:90:0" + }, + "src": "1466:103:0" + }, + { + "anonymous": false, + "eventSelector": "1d31774ea86d945735b69a4af1ba1a0a71287ba386bc3fe658ae84927d2995c7", + "id": 104, + "name": "NewContract", + "nameLocation": "1581:11:0", + "nodeType": "EventDefinition", + "parameters": { + "id": 103, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 83, + "indexed": false, + "mutability": "mutable", + "name": "inputAmount", + "nameLocation": "1610:11:0", + "nodeType": "VariableDeclaration", + "scope": 104, + "src": "1602:19:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 82, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1602:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 85, + "indexed": false, + "mutability": "mutable", + "name": "outputAmount", + "nameLocation": "1639:12:0", + "nodeType": "VariableDeclaration", + "scope": 104, + "src": "1631:20:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 84, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1631:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 87, + "indexed": false, + "mutability": "mutable", + "name": "expiration", + "nameLocation": "1669:10:0", + "nodeType": "VariableDeclaration", + "scope": 104, + "src": "1661:18:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 86, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1661:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 89, + "indexed": true, + "mutability": "mutable", + "name": "id", + "nameLocation": "1705:2:0", + "nodeType": "VariableDeclaration", + "scope": 104, + "src": "1689:18:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 88, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1689:7:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 91, + "indexed": false, + "mutability": "mutable", + "name": "hashSecret", + "nameLocation": "1725:10:0", + "nodeType": "VariableDeclaration", + "scope": 104, + "src": "1717:18:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 90, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1717:7:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 93, + "indexed": true, + "mutability": "mutable", + "name": "sender", + "nameLocation": "1761:6:0", + "nodeType": "VariableDeclaration", + "scope": 104, + "src": "1745:22:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 92, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1745:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 95, + "indexed": true, + "mutability": "mutable", + "name": "receiver", + "nameLocation": "1793:8:0", + "nodeType": "VariableDeclaration", + "scope": 104, + "src": "1777:24:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 94, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1777:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 97, + "indexed": false, + "mutability": "mutable", + "name": "outputNetwork", + "nameLocation": "1818:13:0", + "nodeType": "VariableDeclaration", + "scope": 104, + "src": "1811:20:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 96, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1811:6:0", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 99, + "indexed": false, + "mutability": "mutable", + "name": "outputAddress", + "nameLocation": "1848:13:0", + "nodeType": "VariableDeclaration", + "scope": 104, + "src": "1841:20:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 98, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1841:6:0", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 102, + "indexed": false, + "mutability": "mutable", + "name": "priv", + "nameLocation": "1888:4:0", + "nodeType": "VariableDeclaration", + "scope": 104, + "src": "1871:21:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_struct$_PrivateEnhancing_$26_memory_ptr", + "typeString": "struct PrivateHashTimeLock.PrivateEnhancing" + }, + "typeName": { + "id": 101, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 100, + "name": "PrivateEnhancing", + "nameLocations": [ + "1871:16:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 26, + "src": "1871:16:0" + }, + "referencedDeclaration": 26, + "src": "1871:16:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_PrivateEnhancing_$26_storage_ptr", + "typeString": "struct PrivateHashTimeLock.PrivateEnhancing" + } + }, + "visibility": "internal" + } + ], + "src": "1592:306:0" + }, + "src": "1575:324:0" + }, + { + "body": { + "id": 217, + "nodeType": "Block", + "src": "2186:888:0", + "statements": [ + { + "assignments": [ + 123 + ], + "declarations": [ + { + "constant": false, + "id": 123, + "mutability": "mutable", + "name": "sender", + "nameLocation": "2212:6:0", + "nodeType": "VariableDeclaration", + "scope": 217, + "src": "2196:22:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + "typeName": { + "id": 122, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2196:15:0", + "stateMutability": "payable", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "visibility": "internal" + } + ], + "id": 129, + "initialValue": { + "arguments": [ + { + "expression": { + "id": 126, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "2229:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 127, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2233:6:0", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "2229:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 125, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2221:8:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_payable_$", + "typeString": "type(address payable)" + }, + "typeName": { + "id": 124, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2221:8:0", + "stateMutability": "payable", + "typeDescriptions": {} + } + }, + "id": 128, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2221:19:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2196:44:0" + }, + { + "assignments": [ + 131 + ], + "declarations": [ + { + "constant": false, + "id": 131, + "mutability": "mutable", + "name": "inputAmount", + "nameLocation": "2258:11:0", + "nodeType": "VariableDeclaration", + "scope": 217, + "src": "2250:19:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 130, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2250:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 134, + "initialValue": { + "expression": { + "id": 132, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "2272:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 133, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2276:5:0", + "memberName": "value", + "nodeType": "MemberAccess", + "src": "2272:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2250:31:0" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 139, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 136, + "name": "expiration", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 108, + "src": "2300:10:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "expression": { + "id": 137, + "name": "block", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967292, + "src": "2313:5:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_block", + "typeString": "block" + } + }, + "id": 138, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2319:9:0", + "memberName": "timestamp", + "nodeType": "MemberAccess", + "src": "2313:15:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2300:28:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "494e56414c49445f54494d45", + "id": 140, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2330:14:0", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_b98f3e47db5919a8c78ec10ff6bf7d1326066d3facdc164cf7441d38cae771df", + "typeString": "literal_string \"INVALID_TIME\"" + }, + "value": "INVALID_TIME" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_b98f3e47db5919a8c78ec10ff6bf7d1326066d3facdc164cf7441d38cae771df", + "typeString": "literal_string \"INVALID_TIME\"" + } + ], + "id": 135, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "2292:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 141, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2292:53:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 142, + "nodeType": "ExpressionStatement", + "src": "2292:53:0" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 146, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 144, + "name": "inputAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 131, + "src": "2364:11:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 145, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2378:1:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "2364:15:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "494e56414c49445f414d4f554e54", + "id": 147, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2381:16:0", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_eb6dbbf3194e9f4dd39c8dabe51ddb59ca6ad00c50b1bc74675ce4b263687722", + "typeString": "literal_string \"INVALID_AMOUNT\"" + }, + "value": "INVALID_AMOUNT" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_eb6dbbf3194e9f4dd39c8dabe51ddb59ca6ad00c50b1bc74675ce4b263687722", + "typeString": "literal_string \"INVALID_AMOUNT\"" + } + ], + "id": 143, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "2356:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 148, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2356:42:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 149, + "nodeType": "ExpressionStatement", + "src": "2356:42:0" + }, + { + "assignments": [ + 151 + ], + "declarations": [ + { + "constant": false, + "id": 151, + "mutability": "mutable", + "name": "id", + "nameLocation": "2417:2:0", + "nodeType": "VariableDeclaration", + "scope": 217, + "src": "2409:10:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 150, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "2409:7:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "id": 162, + "initialValue": { + "arguments": [ + { + "arguments": [ + { + "id": 155, + "name": "sender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 123, + "src": "2443:6:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "id": 156, + "name": "receiver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 112, + "src": "2451:8:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "id": 157, + "name": "inputAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 131, + "src": "2461:11:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 158, + "name": "hashLock", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 110, + "src": "2474:8:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 159, + "name": "expiration", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 108, + "src": "2484:10:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 153, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967295, + "src": "2432:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 154, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "2436:6:0", + "memberName": "encode", + "nodeType": "MemberAccess", + "src": "2432:10:0", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", + "typeString": "function () pure returns (bytes memory)" + } + }, + "id": 160, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2432:63:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 152, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967288, + "src": "2422:9:0", + "typeDescriptions": { + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" + } + }, + "id": 161, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2422:74:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2409:87:0" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 169, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "baseExpression": { + "id": 164, + "name": "contracts", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6, + "src": "2515:9:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_LockContract_$59_storage_$", + "typeString": "mapping(bytes32 => struct PrivateHashTimeLock.LockContract storage ref)" + } + }, + "id": 166, + "indexExpression": { + "id": 165, + "name": "id", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 151, + "src": "2525:2:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2515:13:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_LockContract_$59_storage", + "typeString": "struct PrivateHashTimeLock.LockContract storage ref" + } + }, + "id": 167, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2529:6:0", + "memberName": "status", + "nodeType": "MemberAccess", + "referencedDeclaration": 45, + "src": "2515:20:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "id": 168, + "name": "INIT", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9, + "src": "2539:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2515:28:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "535741505f455849535453", + "id": 170, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2545:13:0", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_10858945dd31484ce6a77564821a1a6ff0e82939d9bea2b8e6caae50c7fc3750", + "typeString": "literal_string \"SWAP_EXISTS\"" + }, + "value": "SWAP_EXISTS" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_10858945dd31484ce6a77564821a1a6ff0e82939d9bea2b8e6caae50c7fc3750", + "typeString": "literal_string \"SWAP_EXISTS\"" + } + ], + "id": 163, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "2507:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 171, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2507:52:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 172, + "nodeType": "ExpressionStatement", + "src": "2507:52:0" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 177, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 174, + "name": "priv", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 119, + "src": "2577:4:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_PrivateEnhancing_$26_memory_ptr", + "typeString": "struct PrivateHashTimeLock.PrivateEnhancing memory" + } + }, + "id": 175, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2582:9:0", + "memberName": "generator", + "nodeType": "MemberAccess", + "referencedDeclaration": 23, + "src": "2577:14:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 176, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2594:1:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "2577:18:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 173, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "2569:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 178, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2569:27:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 179, + "nodeType": "ExpressionStatement", + "src": "2569:27:0" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 184, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 181, + "name": "priv", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 119, + "src": "2614:4:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_PrivateEnhancing_$26_memory_ptr", + "typeString": "struct PrivateHashTimeLock.PrivateEnhancing memory" + } + }, + "id": 182, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2619:7:0", + "memberName": "modulus", + "nodeType": "MemberAccess", + "referencedDeclaration": 25, + "src": "2614:12:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 183, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2629:1:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "2614:16:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 180, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "2606:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 185, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2606:25:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 186, + "nodeType": "ExpressionStatement", + "src": "2606:25:0" + }, + { + "expression": { + "id": 202, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 187, + "name": "contracts", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6, + "src": "2642:9:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_LockContract_$59_storage_$", + "typeString": "mapping(bytes32 => struct PrivateHashTimeLock.LockContract storage ref)" + } + }, + "id": 189, + "indexExpression": { + "id": 188, + "name": "id", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 151, + "src": "2652:2:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "2642:13:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_LockContract_$59_storage", + "typeString": "struct PrivateHashTimeLock.LockContract storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 191, + "name": "inputAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 131, + "src": "2684:11:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 192, + "name": "outputAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 106, + "src": "2709:12:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 193, + "name": "expiration", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 108, + "src": "2735:10:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 194, + "name": "ACTIVE", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12, + "src": "2759:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 195, + "name": "hashLock", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 110, + "src": "2779:8:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 196, + "name": "sender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 123, + "src": "2801:6:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "id": 197, + "name": "receiver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 112, + "src": "2821:8:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "id": 198, + "name": "outputNetwork", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 114, + "src": "2843:13:0", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "id": 199, + "name": "outputAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 116, + "src": "2870:13:0", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "id": 200, + "name": "priv", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 119, + "src": "2897:4:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_PrivateEnhancing_$26_memory_ptr", + "typeString": "struct PrivateHashTimeLock.PrivateEnhancing memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_struct$_PrivateEnhancing_$26_memory_ptr", + "typeString": "struct PrivateHashTimeLock.PrivateEnhancing memory" + } + ], + "id": 190, + "name": "LockContract", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 59, + "src": "2658:12:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_struct$_LockContract_$59_storage_ptr_$", + "typeString": "type(struct PrivateHashTimeLock.LockContract storage pointer)" + } + }, + "id": 201, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "structConstructorCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2658:253:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_LockContract_$59_memory_ptr", + "typeString": "struct PrivateHashTimeLock.LockContract memory" + } + }, + "src": "2642:269:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_LockContract_$59_storage", + "typeString": "struct PrivateHashTimeLock.LockContract storage ref" + } + }, + "id": 203, + "nodeType": "ExpressionStatement", + "src": "2642:269:0" + }, + { + "eventCall": { + "arguments": [ + { + "id": 205, + "name": "inputAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 131, + "src": "2952:11:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 206, + "name": "outputAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 106, + "src": "2965:12:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 207, + "name": "expiration", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 108, + "src": "2979:10:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 208, + "name": "id", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 151, + "src": "2991:2:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 209, + "name": "hashLock", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 110, + "src": "2995:8:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 210, + "name": "sender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 123, + "src": "3005:6:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "id": 211, + "name": "receiver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 112, + "src": "3013:8:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "id": 212, + "name": "outputNetwork", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 114, + "src": "3023:13:0", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "id": 213, + "name": "outputAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 116, + "src": "3038:13:0", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "id": 214, + "name": "priv", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 119, + "src": "3053:4:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_PrivateEnhancing_$26_memory_ptr", + "typeString": "struct PrivateHashTimeLock.PrivateEnhancing memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_struct$_PrivateEnhancing_$26_memory_ptr", + "typeString": "struct PrivateHashTimeLock.PrivateEnhancing memory" + } + ], + "id": 204, + "name": "NewContract", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 104, + "src": "2927:11:0", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_uint256_$_t_uint256_$_t_bytes32_$_t_bytes32_$_t_address_$_t_address_$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_struct$_PrivateEnhancing_$26_memory_ptr_$returns$__$", + "typeString": "function (uint256,uint256,uint256,bytes32,bytes32,address,address,string memory,string memory,struct PrivateHashTimeLock.PrivateEnhancing memory)" + } + }, + "id": 215, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2927:140:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 216, + "nodeType": "EmitStatement", + "src": "2922:145:0" + } + ] + }, + "functionSelector": "9b0bcdcb", + "id": 218, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "newPrivateContract", + "nameLocation": "1914:18:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 120, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 106, + "mutability": "mutable", + "name": "outputAmount", + "nameLocation": "1950:12:0", + "nodeType": "VariableDeclaration", + "scope": 218, + "src": "1942:20:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 105, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1942:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 108, + "mutability": "mutable", + "name": "expiration", + "nameLocation": "1980:10:0", + "nodeType": "VariableDeclaration", + "scope": 218, + "src": "1972:18:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 107, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1972:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 110, + "mutability": "mutable", + "name": "hashLock", + "nameLocation": "2008:8:0", + "nodeType": "VariableDeclaration", + "scope": 218, + "src": "2000:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 109, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "2000:7:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 112, + "mutability": "mutable", + "name": "receiver", + "nameLocation": "2042:8:0", + "nodeType": "VariableDeclaration", + "scope": 218, + "src": "2026:24:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + "typeName": { + "id": 111, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2026:15:0", + "stateMutability": "payable", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 114, + "mutability": "mutable", + "name": "outputNetwork", + "nameLocation": "2074:13:0", + "nodeType": "VariableDeclaration", + "scope": 218, + "src": "2060:27:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 113, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "2060:6:0", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 116, + "mutability": "mutable", + "name": "outputAddress", + "nameLocation": "2111:13:0", + "nodeType": "VariableDeclaration", + "scope": 218, + "src": "2097:27:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 115, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "2097:6:0", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 119, + "mutability": "mutable", + "name": "priv", + "nameLocation": "2158:4:0", + "nodeType": "VariableDeclaration", + "scope": 218, + "src": "2134:28:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_PrivateEnhancing_$26_memory_ptr", + "typeString": "struct PrivateHashTimeLock.PrivateEnhancing" + }, + "typeName": { + "id": 118, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 117, + "name": "PrivateEnhancing", + "nameLocations": [ + "2134:16:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 26, + "src": "2134:16:0" + }, + "referencedDeclaration": 26, + "src": "2134:16:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_PrivateEnhancing_$26_storage_ptr", + "typeString": "struct PrivateHashTimeLock.PrivateEnhancing" + } + }, + "visibility": "internal" + } + ], + "src": "1932:236:0" + }, + "returnParameters": { + "id": 121, + "nodeType": "ParameterList", + "parameters": [], + "src": "2186:0:0" + }, + "scope": 504, + "src": "1905:1169:0", + "stateMutability": "payable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 294, + "nodeType": "Block", + "src": "3135:471:0", + "statements": [ + { + "assignments": [ + 227 + ], + "declarations": [ + { + "constant": false, + "id": 227, + "mutability": "mutable", + "name": "c", + "nameLocation": "3166:1:0", + "nodeType": "VariableDeclaration", + "scope": 294, + "src": "3145:22:0", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_LockContract_$59_storage_ptr", + "typeString": "struct PrivateHashTimeLock.LockContract" + }, + "typeName": { + "id": 226, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 225, + "name": "LockContract", + "nameLocations": [ + "3145:12:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 59, + "src": "3145:12:0" + }, + "referencedDeclaration": 59, + "src": "3145:12:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_LockContract_$59_storage_ptr", + "typeString": "struct PrivateHashTimeLock.LockContract" + } + }, + "visibility": "internal" + } + ], + "id": 231, + "initialValue": { + "baseExpression": { + "id": 228, + "name": "contracts", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6, + "src": "3170:9:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_LockContract_$59_storage_$", + "typeString": "mapping(bytes32 => struct PrivateHashTimeLock.LockContract storage ref)" + } + }, + "id": 230, + "indexExpression": { + "id": 229, + "name": "id", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 220, + "src": "3180:2:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3170:13:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_LockContract_$59_storage", + "typeString": "struct PrivateHashTimeLock.LockContract storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3145:38:0" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 236, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 233, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 227, + "src": "3201:1:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_LockContract_$59_storage_ptr", + "typeString": "struct PrivateHashTimeLock.LockContract storage pointer" + } + }, + "id": 234, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3203:6:0", + "memberName": "status", + "nodeType": "MemberAccess", + "referencedDeclaration": 45, + "src": "3201:8:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "id": 235, + "name": "ACTIVE", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12, + "src": "3213:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3201:18:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "535741505f4e4f545f414354495645", + "id": 237, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3221:17:0", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_afbfa7d3db262df0c92c413f0113503b1c1332dc5a4a874fcd8d6a6de57b74dd", + "typeString": "literal_string \"SWAP_NOT_ACTIVE\"" + }, + "value": "SWAP_NOT_ACTIVE" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_afbfa7d3db262df0c92c413f0113503b1c1332dc5a4a874fcd8d6a6de57b74dd", + "typeString": "literal_string \"SWAP_NOT_ACTIVE\"" + } + ], + "id": 232, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "3193:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 238, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3193:46:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 239, + "nodeType": "ExpressionStatement", + "src": "3193:46:0" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 245, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 241, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 227, + "src": "3258:1:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_LockContract_$59_storage_ptr", + "typeString": "struct PrivateHashTimeLock.LockContract storage pointer" + } + }, + "id": 242, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3260:10:0", + "memberName": "expiration", + "nodeType": "MemberAccess", + "referencedDeclaration": 43, + "src": "3258:12:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "expression": { + "id": 243, + "name": "block", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967292, + "src": "3273:5:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_block", + "typeString": "block" + } + }, + "id": 244, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3279:9:0", + "memberName": "timestamp", + "nodeType": "MemberAccess", + "src": "3273:15:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3258:30:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "494e56414c49445f54494d45", + "id": 246, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3290:14:0", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_b98f3e47db5919a8c78ec10ff6bf7d1326066d3facdc164cf7441d38cae771df", + "typeString": "literal_string \"INVALID_TIME\"" + }, + "value": "INVALID_TIME" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_b98f3e47db5919a8c78ec10ff6bf7d1326066d3facdc164cf7441d38cae771df", + "typeString": "literal_string \"INVALID_TIME\"" + } + ], + "id": 240, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "3250:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 247, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3250:55:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 248, + "nodeType": "ExpressionStatement", + "src": "3250:55:0" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "id": 264, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 250, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 227, + "src": "3337:1:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_LockContract_$59_storage_ptr", + "typeString": "struct PrivateHashTimeLock.LockContract storage pointer" + } + }, + "id": 251, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3339:10:0", + "memberName": "hashSecret", + "nodeType": "MemberAccess", + "referencedDeclaration": 47, + "src": "3337:12:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "arguments": [ + { + "expression": { + "expression": { + "id": 253, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 227, + "src": "3373:1:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_LockContract_$59_storage_ptr", + "typeString": "struct PrivateHashTimeLock.LockContract storage pointer" + } + }, + "id": 254, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3375:4:0", + "memberName": "priv", + "nodeType": "MemberAccess", + "referencedDeclaration": 58, + "src": "3373:6:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_PrivateEnhancing_$26_storage", + "typeString": "struct PrivateHashTimeLock.PrivateEnhancing storage ref" + } + }, + "id": 255, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3380:9:0", + "memberName": "generator", + "nodeType": "MemberAccess", + "referencedDeclaration": 23, + "src": "3373:16:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "arguments": [ + { + "id": 258, + "name": "secret", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 222, + "src": "3399:6:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 257, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3391:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 256, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3391:7:0", + "typeDescriptions": {} + } + }, + "id": 259, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3391:15:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "expression": { + "expression": { + "id": 260, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 227, + "src": "3408:1:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_LockContract_$59_storage_ptr", + "typeString": "struct PrivateHashTimeLock.LockContract storage pointer" + } + }, + "id": 261, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3410:4:0", + "memberName": "priv", + "nodeType": "MemberAccess", + "referencedDeclaration": 58, + "src": "3408:6:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_PrivateEnhancing_$26_storage", + "typeString": "struct PrivateHashTimeLock.PrivateEnhancing storage ref" + } + }, + "id": 262, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3415:7:0", + "memberName": "modulus", + "nodeType": "MemberAccess", + "referencedDeclaration": 25, + "src": "3408:14:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 252, + "name": "calculateHashSecret", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 338, + "src": "3353:19:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_bytes32_$", + "typeString": "function (uint256,uint256,uint256) pure returns (bytes32)" + } + }, + "id": 263, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3353:70:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "src": "3337:86:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "494e56414c49445f534543524554", + "id": 265, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3425:16:0", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_20442b474b3561be70a7e12c2acf875277f59e68e7748337cd68bf5c8ada064b", + "typeString": "literal_string \"INVALID_SECRET\"" + }, + "value": "INVALID_SECRET" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_20442b474b3561be70a7e12c2acf875277f59e68e7748337cd68bf5c8ada064b", + "typeString": "literal_string \"INVALID_SECRET\"" + } + ], + "id": 249, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "3316:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 266, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3316:135:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 267, + "nodeType": "ExpressionStatement", + "src": "3316:135:0" + }, + { + "expression": { + "id": 272, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "id": 268, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 227, + "src": "3462:1:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_LockContract_$59_storage_ptr", + "typeString": "struct PrivateHashTimeLock.LockContract storage pointer" + } + }, + "id": 270, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberLocation": "3464:6:0", + "memberName": "status", + "nodeType": "MemberAccess", + "referencedDeclaration": 45, + "src": "3462:8:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 271, + "name": "WITHDRAWN", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18, + "src": "3473:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3462:20:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 273, + "nodeType": "ExpressionStatement", + "src": "3462:20:0" + }, + { + "expression": { + "arguments": [ + { + "expression": { + "id": 279, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 227, + "src": "3513:1:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_LockContract_$59_storage_ptr", + "typeString": "struct PrivateHashTimeLock.LockContract storage pointer" + } + }, + "id": 280, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3515:11:0", + "memberName": "inputAmount", + "nodeType": "MemberAccess", + "referencedDeclaration": 39, + "src": "3513:13:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "expression": { + "id": 274, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 227, + "src": "3493:1:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_LockContract_$59_storage_ptr", + "typeString": "struct PrivateHashTimeLock.LockContract storage pointer" + } + }, + "id": 277, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3495:8:0", + "memberName": "receiver", + "nodeType": "MemberAccess", + "referencedDeclaration": 51, + "src": "3493:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "id": 278, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3504:8:0", + "memberName": "transfer", + "nodeType": "MemberAccess", + "src": "3493:19:0", + "typeDescriptions": { + "typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256)" + } + }, + "id": 281, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3493:34:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 282, + "nodeType": "ExpressionStatement", + "src": "3493:34:0" + }, + { + "eventCall": { + "arguments": [ + { + "id": 284, + "name": "id", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 220, + "src": "3552:2:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 285, + "name": "secret", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 222, + "src": "3556:6:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "expression": { + "id": 286, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 227, + "src": "3564:1:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_LockContract_$59_storage_ptr", + "typeString": "struct PrivateHashTimeLock.LockContract storage pointer" + } + }, + "id": 287, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3566:10:0", + "memberName": "hashSecret", + "nodeType": "MemberAccess", + "referencedDeclaration": 47, + "src": "3564:12:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "expression": { + "id": 288, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 227, + "src": "3578:1:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_LockContract_$59_storage_ptr", + "typeString": "struct PrivateHashTimeLock.LockContract storage pointer" + } + }, + "id": 289, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3580:6:0", + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": 49, + "src": "3578:8:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "expression": { + "id": 290, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 227, + "src": "3588:1:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_LockContract_$59_storage_ptr", + "typeString": "struct PrivateHashTimeLock.LockContract storage pointer" + } + }, + "id": 291, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3590:8:0", + "memberName": "receiver", + "nodeType": "MemberAccess", + "referencedDeclaration": 51, + "src": "3588:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "id": 283, + "name": "Withdraw", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 71, + "src": "3543:8:0", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_bytes32_$_t_bytes32_$_t_address_$_t_address_$returns$__$", + "typeString": "function (bytes32,bytes32,bytes32,address,address)" + } + }, + "id": 292, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3543:56:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 293, + "nodeType": "EmitStatement", + "src": "3538:61:0" + } + ] + }, + "functionSelector": "63615149", + "id": 295, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "withdraw", + "nameLocation": "3089:8:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 223, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 220, + "mutability": "mutable", + "name": "id", + "nameLocation": "3106:2:0", + "nodeType": "VariableDeclaration", + "scope": 295, + "src": "3098:10:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 219, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "3098:7:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 222, + "mutability": "mutable", + "name": "secret", + "nameLocation": "3118:6:0", + "nodeType": "VariableDeclaration", + "scope": 295, + "src": "3110:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 221, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "3110:7:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "3097:28:0" + }, + "returnParameters": { + "id": 224, + "nodeType": "ParameterList", + "parameters": [], + "src": "3135:0:0" + }, + "scope": 504, + "src": "3080:526:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 337, + "nodeType": "Block", + "src": "3757:219:0", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 309, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 307, + "name": "modulus", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 301, + "src": "3775:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 308, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3785:1:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "3775:11:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4d6f64756c75732063616e6e6f742062652030", + "id": 310, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3788:21:0", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_9abeeb3c73b526a3f82a7331ba0148e5c5651d567cb2589f67059a76ae4a2f81", + "typeString": "literal_string \"Modulus cannot be 0\"" + }, + "value": "Modulus cannot be 0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_9abeeb3c73b526a3f82a7331ba0148e5c5651d567cb2589f67059a76ae4a2f81", + "typeString": "literal_string \"Modulus cannot be 0\"" + } + ], + "id": 306, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "3767:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 311, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3767:43:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 312, + "nodeType": "ExpressionStatement", + "src": "3767:43:0" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 316, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 314, + "name": "base", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 297, + "src": "3828:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 315, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3835:1:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "3828:8:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "626173652063616e6e6f742062652030", + "id": 317, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3838:18:0", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_9d64bf9c86f6569726beb048e0d4ccfc36d1f1db25c857d0a597dd762f52b90f", + "typeString": "literal_string \"base cannot be 0\"" + }, + "value": "base cannot be 0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_9d64bf9c86f6569726beb048e0d4ccfc36d1f1db25c857d0a597dd762f52b90f", + "typeString": "literal_string \"base cannot be 0\"" + } + ], + "id": 313, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "3820:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 318, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3820:37:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 319, + "nodeType": "ExpressionStatement", + "src": "3820:37:0" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 323, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 321, + "name": "exponent", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 299, + "src": "3875:8:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 322, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3886:1:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "3875:12:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "6578706f6e656e745f312063616e6e6f742062652030", + "id": 324, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3889:24:0", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_cf1dcbcb74065c0b4cc75c49d3d558b90f1c4a7d0c11e0156bec635922502b78", + "typeString": "literal_string \"exponent_1 cannot be 0\"" + }, + "value": "exponent_1 cannot be 0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_cf1dcbcb74065c0b4cc75c49d3d558b90f1c4a7d0c11e0156bec635922502b78", + "typeString": "literal_string \"exponent_1 cannot be 0\"" + } + ], + "id": 320, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "3867:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 325, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3867:47:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 326, + "nodeType": "ExpressionStatement", + "src": "3867:47:0" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 334, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 331, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 329, + "name": "base", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 297, + "src": "3941:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "id": 330, + "name": "exponent", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 299, + "src": "3949:8:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3941:16:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 332, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "3940:18:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "%", + "rightExpression": { + "id": 333, + "name": "modulus", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 301, + "src": "3961:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3940:28:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 328, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3932:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes32_$", + "typeString": "type(bytes32)" + }, + "typeName": { + "id": 327, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "3932:7:0", + "typeDescriptions": {} + } + }, + "id": 335, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3932:37:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "functionReturnParameters": 305, + "id": 336, + "nodeType": "Return", + "src": "3925:44:0" + } + ] + }, + "id": 338, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "calculateHashSecret", + "nameLocation": "3621:19:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 302, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 297, + "mutability": "mutable", + "name": "base", + "nameLocation": "3649:4:0", + "nodeType": "VariableDeclaration", + "scope": 338, + "src": "3641:12:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 296, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3641:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 299, + "mutability": "mutable", + "name": "exponent", + "nameLocation": "3663:8:0", + "nodeType": "VariableDeclaration", + "scope": 338, + "src": "3655:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 298, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3655:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 301, + "mutability": "mutable", + "name": "modulus", + "nameLocation": "3681:7:0", + "nodeType": "VariableDeclaration", + "scope": 338, + "src": "3673:15:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 300, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3673:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3640:49:0" + }, + "returnParameters": { + "id": 305, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 304, + "mutability": "mutable", + "name": "result", + "nameLocation": "3745:6:0", + "nodeType": "VariableDeclaration", + "scope": 338, + "src": "3737:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 303, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "3737:7:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "3736:16:0" + }, + "scope": 504, + "src": "3612:364:0", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 392, + "nodeType": "Block", + "src": "4019:314:0", + "statements": [ + { + "assignments": [ + 345 + ], + "declarations": [ + { + "constant": false, + "id": 345, + "mutability": "mutable", + "name": "c", + "nameLocation": "4050:1:0", + "nodeType": "VariableDeclaration", + "scope": 392, + "src": "4029:22:0", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_LockContract_$59_storage_ptr", + "typeString": "struct PrivateHashTimeLock.LockContract" + }, + "typeName": { + "id": 344, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 343, + "name": "LockContract", + "nameLocations": [ + "4029:12:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 59, + "src": "4029:12:0" + }, + "referencedDeclaration": 59, + "src": "4029:12:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_LockContract_$59_storage_ptr", + "typeString": "struct PrivateHashTimeLock.LockContract" + } + }, + "visibility": "internal" + } + ], + "id": 349, + "initialValue": { + "baseExpression": { + "id": 346, + "name": "contracts", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6, + "src": "4054:9:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_LockContract_$59_storage_$", + "typeString": "mapping(bytes32 => struct PrivateHashTimeLock.LockContract storage ref)" + } + }, + "id": 348, + "indexExpression": { + "id": 347, + "name": "id", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 340, + "src": "4064:2:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4054:13:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_LockContract_$59_storage", + "typeString": "struct PrivateHashTimeLock.LockContract storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4029:38:0" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 354, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 351, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 345, + "src": "4086:1:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_LockContract_$59_storage_ptr", + "typeString": "struct PrivateHashTimeLock.LockContract storage pointer" + } + }, + "id": 352, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4088:6:0", + "memberName": "status", + "nodeType": "MemberAccess", + "referencedDeclaration": 45, + "src": "4086:8:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "id": 353, + "name": "ACTIVE", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12, + "src": "4098:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4086:18:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "535741505f4e4f545f414354495645", + "id": 355, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4106:17:0", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_afbfa7d3db262df0c92c413f0113503b1c1332dc5a4a874fcd8d6a6de57b74dd", + "typeString": "literal_string \"SWAP_NOT_ACTIVE\"" + }, + "value": "SWAP_NOT_ACTIVE" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_afbfa7d3db262df0c92c413f0113503b1c1332dc5a4a874fcd8d6a6de57b74dd", + "typeString": "literal_string \"SWAP_NOT_ACTIVE\"" + } + ], + "id": 350, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "4078:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 356, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4078:46:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 357, + "nodeType": "ExpressionStatement", + "src": "4078:46:0" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 363, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 359, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 345, + "src": "4143:1:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_LockContract_$59_storage_ptr", + "typeString": "struct PrivateHashTimeLock.LockContract storage pointer" + } + }, + "id": 360, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4145:10:0", + "memberName": "expiration", + "nodeType": "MemberAccess", + "referencedDeclaration": 43, + "src": "4143:12:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "expression": { + "id": 361, + "name": "block", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967292, + "src": "4159:5:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_block", + "typeString": "block" + } + }, + "id": 362, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4165:9:0", + "memberName": "timestamp", + "nodeType": "MemberAccess", + "src": "4159:15:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4143:31:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "494e56414c49445f54494d45", + "id": 364, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4176:14:0", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_b98f3e47db5919a8c78ec10ff6bf7d1326066d3facdc164cf7441d38cae771df", + "typeString": "literal_string \"INVALID_TIME\"" + }, + "value": "INVALID_TIME" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_b98f3e47db5919a8c78ec10ff6bf7d1326066d3facdc164cf7441d38cae771df", + "typeString": "literal_string \"INVALID_TIME\"" + } + ], + "id": 358, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "4135:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 365, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4135:56:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 366, + "nodeType": "ExpressionStatement", + "src": "4135:56:0" + }, + { + "expression": { + "id": 371, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "id": 367, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 345, + "src": "4202:1:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_LockContract_$59_storage_ptr", + "typeString": "struct PrivateHashTimeLock.LockContract storage pointer" + } + }, + "id": 369, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberLocation": "4204:6:0", + "memberName": "status", + "nodeType": "MemberAccess", + "referencedDeclaration": 45, + "src": "4202:8:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 370, + "name": "REFUNDED", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15, + "src": "4213:8:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4202:19:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 372, + "nodeType": "ExpressionStatement", + "src": "4202:19:0" + }, + { + "expression": { + "arguments": [ + { + "expression": { + "id": 378, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 345, + "src": "4250:1:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_LockContract_$59_storage_ptr", + "typeString": "struct PrivateHashTimeLock.LockContract storage pointer" + } + }, + "id": 379, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4252:11:0", + "memberName": "inputAmount", + "nodeType": "MemberAccess", + "referencedDeclaration": 39, + "src": "4250:13:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "expression": { + "id": 373, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 345, + "src": "4232:1:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_LockContract_$59_storage_ptr", + "typeString": "struct PrivateHashTimeLock.LockContract storage pointer" + } + }, + "id": 376, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4234:6:0", + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": 49, + "src": "4232:8:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "id": 377, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4241:8:0", + "memberName": "transfer", + "nodeType": "MemberAccess", + "src": "4232:17:0", + "typeDescriptions": { + "typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256)" + } + }, + "id": 380, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4232:32:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 381, + "nodeType": "ExpressionStatement", + "src": "4232:32:0" + }, + { + "eventCall": { + "arguments": [ + { + "id": 383, + "name": "id", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 340, + "src": "4287:2:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "expression": { + "id": 384, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 345, + "src": "4291:1:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_LockContract_$59_storage_ptr", + "typeString": "struct PrivateHashTimeLock.LockContract storage pointer" + } + }, + "id": 385, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4293:10:0", + "memberName": "hashSecret", + "nodeType": "MemberAccess", + "referencedDeclaration": 47, + "src": "4291:12:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "expression": { + "id": 386, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 345, + "src": "4305:1:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_LockContract_$59_storage_ptr", + "typeString": "struct PrivateHashTimeLock.LockContract storage pointer" + } + }, + "id": 387, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4307:6:0", + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": 49, + "src": "4305:8:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "expression": { + "id": 388, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 345, + "src": "4315:1:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_LockContract_$59_storage_ptr", + "typeString": "struct PrivateHashTimeLock.LockContract storage pointer" + } + }, + "id": 389, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4317:8:0", + "memberName": "receiver", + "nodeType": "MemberAccess", + "referencedDeclaration": 51, + "src": "4315:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "id": 382, + "name": "Refund", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 81, + "src": "4280:6:0", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_bytes32_$_t_address_$_t_address_$returns$__$", + "typeString": "function (bytes32,bytes32,address,address)" + } + }, + "id": 390, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4280:46:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 391, + "nodeType": "EmitStatement", + "src": "4275:51:0" + } + ] + }, + "functionSelector": "7249fbb6", + "id": 393, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "refund", + "nameLocation": "3991:6:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 341, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 340, + "mutability": "mutable", + "name": "id", + "nameLocation": "4006:2:0", + "nodeType": "VariableDeclaration", + "scope": 393, + "src": "3998:10:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 339, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "3998:7:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "3997:12:0" + }, + "returnParameters": { + "id": 342, + "nodeType": "ParameterList", + "parameters": [], + "src": "4019:0:0" + }, + "scope": 504, + "src": "3982:351:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 439, + "nodeType": "Block", + "src": "4419:223:0", + "statements": [ + { + "assignments": [ + 406 + ], + "declarations": [ + { + "constant": false, + "id": 406, + "mutability": "mutable", + "name": "result", + "nameLocation": "4446:6:0", + "nodeType": "VariableDeclaration", + "scope": 439, + "src": "4429:23:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 404, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4429:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 405, + "nodeType": "ArrayTypeName", + "src": "4429:9:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "visibility": "internal" + } + ], + "id": 413, + "initialValue": { + "arguments": [ + { + "expression": { + "id": 410, + "name": "ids", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 396, + "src": "4469:3:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr", + "typeString": "bytes32[] memory" + } + }, + "id": 411, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4473:6:0", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "4469:10:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 409, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "NewExpression", + "src": "4455:13:0", + "typeDescriptions": { + "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$", + "typeString": "function (uint256) pure returns (uint256[] memory)" + }, + "typeName": { + "baseType": { + "id": 407, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4459:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 408, + "nodeType": "ArrayTypeName", + "src": "4459:9:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + } + }, + "id": 412, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4455:25:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4429:51:0" + }, + { + "body": { + "id": 435, + "nodeType": "Block", + "src": "4544:68:0", + "statements": [ + { + "expression": { + "id": 433, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 425, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 406, + "src": "4558:6:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 427, + "indexExpression": { + "id": 426, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 415, + "src": "4565:5:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "4558:13:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "baseExpression": { + "id": 429, + "name": "ids", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 396, + "src": "4590:3:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr", + "typeString": "bytes32[] memory" + } + }, + "id": 431, + "indexExpression": { + "id": 430, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 415, + "src": "4594:5:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4590:10:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 428, + "name": "getSingleStatus", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 477, + "src": "4574:15:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_uint256_$", + "typeString": "function (bytes32) view returns (uint256)" + } + }, + "id": 432, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4574:27:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4558:43:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 434, + "nodeType": "ExpressionStatement", + "src": "4558:43:0" + } + ] + }, + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 421, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 418, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 415, + "src": "4515:5:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "expression": { + "id": 419, + "name": "ids", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 396, + "src": "4523:3:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr", + "typeString": "bytes32[] memory" + } + }, + "id": 420, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4527:6:0", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "4523:10:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4515:18:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 436, + "initializationExpression": { + "assignments": [ + 415 + ], + "declarations": [ + { + "constant": false, + "id": 415, + "mutability": "mutable", + "name": "index", + "nameLocation": "4504:5:0", + "nodeType": "VariableDeclaration", + "scope": 436, + "src": "4496:13:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 414, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4496:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 417, + "initialValue": { + "hexValue": "30", + "id": 416, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4512:1:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "4496:17:0" + }, + "loopExpression": { + "expression": { + "id": 423, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "4535:7:0", + "subExpression": { + "id": 422, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 415, + "src": "4535:5:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 424, + "nodeType": "ExpressionStatement", + "src": "4535:7:0" + }, + "nodeType": "ForStatement", + "src": "4491:121:0" + }, + { + "expression": { + "id": 437, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 406, + "src": "4629:6:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "functionReturnParameters": 401, + "id": 438, + "nodeType": "Return", + "src": "4622:13:0" + } + ] + }, + "functionSelector": "2f21a663", + "id": 440, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getStatus", + "nameLocation": "4348:9:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 397, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 396, + "mutability": "mutable", + "name": "ids", + "nameLocation": "4375:3:0", + "nodeType": "VariableDeclaration", + "scope": 440, + "src": "4358:20:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr", + "typeString": "bytes32[]" + }, + "typeName": { + "baseType": { + "id": 394, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "4358:7:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "id": 395, + "nodeType": "ArrayTypeName", + "src": "4358:9:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", + "typeString": "bytes32[]" + } + }, + "visibility": "internal" + } + ], + "src": "4357:22:0" + }, + "returnParameters": { + "id": 401, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 400, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 440, + "src": "4401:16:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 398, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4401:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 399, + "nodeType": "ArrayTypeName", + "src": "4401:9:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "visibility": "internal" + } + ], + "src": "4400:18:0" + }, + "scope": 504, + "src": "4339:303:0", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 476, + "nodeType": "Block", + "src": "4722:255:0", + "statements": [ + { + "assignments": [ + 449 + ], + "declarations": [ + { + "constant": false, + "id": 449, + "mutability": "mutable", + "name": "tempContract", + "nameLocation": "4752:12:0", + "nodeType": "VariableDeclaration", + "scope": 476, + "src": "4732:32:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_LockContract_$59_memory_ptr", + "typeString": "struct PrivateHashTimeLock.LockContract" + }, + "typeName": { + "id": 448, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 447, + "name": "LockContract", + "nameLocations": [ + "4732:12:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 59, + "src": "4732:12:0" + }, + "referencedDeclaration": 59, + "src": "4732:12:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_LockContract_$59_storage_ptr", + "typeString": "struct PrivateHashTimeLock.LockContract" + } + }, + "visibility": "internal" + } + ], + "id": 453, + "initialValue": { + "baseExpression": { + "id": 450, + "name": "contracts", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6, + "src": "4767:9:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_LockContract_$59_storage_$", + "typeString": "mapping(bytes32 => struct PrivateHashTimeLock.LockContract storage ref)" + } + }, + "id": 452, + "indexExpression": { + "id": 451, + "name": "id", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 442, + "src": "4777:2:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4767:13:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_LockContract_$59_storage", + "typeString": "struct PrivateHashTimeLock.LockContract storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4732:48:0" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 463, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 457, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 454, + "name": "tempContract", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 449, + "src": "4795:12:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_LockContract_$59_memory_ptr", + "typeString": "struct PrivateHashTimeLock.LockContract memory" + } + }, + "id": 455, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4808:6:0", + "memberName": "status", + "nodeType": "MemberAccess", + "referencedDeclaration": 45, + "src": "4795:19:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "id": 456, + "name": "ACTIVE", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12, + "src": "4818:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4795:29:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 462, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 458, + "name": "tempContract", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 449, + "src": "4828:12:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_LockContract_$59_memory_ptr", + "typeString": "struct PrivateHashTimeLock.LockContract memory" + } + }, + "id": 459, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4841:10:0", + "memberName": "expiration", + "nodeType": "MemberAccess", + "referencedDeclaration": 43, + "src": "4828:23:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "expression": { + "id": 460, + "name": "block", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967292, + "src": "4854:5:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_block", + "typeString": "block" + } + }, + "id": 461, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4860:9:0", + "memberName": "timestamp", + "nodeType": "MemberAccess", + "src": "4854:15:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4828:41:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "4795:74:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 474, + "nodeType": "Block", + "src": "4918:53:0", + "statements": [ + { + "expression": { + "id": 472, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 469, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 445, + "src": "4932:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "expression": { + "id": 470, + "name": "tempContract", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 449, + "src": "4941:12:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_LockContract_$59_memory_ptr", + "typeString": "struct PrivateHashTimeLock.LockContract memory" + } + }, + "id": 471, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4954:6:0", + "memberName": "status", + "nodeType": "MemberAccess", + "referencedDeclaration": 45, + "src": "4941:19:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4932:28:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 473, + "nodeType": "ExpressionStatement", + "src": "4932:28:0" + } + ] + }, + "id": 475, + "nodeType": "IfStatement", + "src": "4791:180:0", + "trueBody": { + "id": 468, + "nodeType": "Block", + "src": "4871:41:0", + "statements": [ + { + "expression": { + "id": 466, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 464, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 445, + "src": "4885:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 465, + "name": "EXPIRED", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21, + "src": "4894:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4885:16:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 467, + "nodeType": "ExpressionStatement", + "src": "4885:16:0" + } + ] + } + } + ] + }, + "functionSelector": "fbdf3b43", + "id": 477, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getSingleStatus", + "nameLocation": "4657:15:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 443, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 442, + "mutability": "mutable", + "name": "id", + "nameLocation": "4681:2:0", + "nodeType": "VariableDeclaration", + "scope": 477, + "src": "4673:10:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 441, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "4673:7:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "4672:12:0" + }, + "returnParameters": { + "id": 446, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 445, + "mutability": "mutable", + "name": "result", + "nameLocation": "4714:6:0", + "nodeType": "VariableDeclaration", + "scope": 477, + "src": "4706:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 444, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4706:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "4705:16:0" + }, + "scope": 504, + "src": "4648:329:0", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 502, + "nodeType": "Block", + "src": "5053:187:0", + "statements": [ + { + "assignments": [ + 486 + ], + "declarations": [ + { + "constant": false, + "id": 486, + "mutability": "mutable", + "name": "tempContract", + "nameLocation": "5083:12:0", + "nodeType": "VariableDeclaration", + "scope": 502, + "src": "5063:32:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_LockContract_$59_memory_ptr", + "typeString": "struct PrivateHashTimeLock.LockContract" + }, + "typeName": { + "id": 485, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 484, + "name": "LockContract", + "nameLocations": [ + "5063:12:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 59, + "src": "5063:12:0" + }, + "referencedDeclaration": 59, + "src": "5063:12:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_LockContract_$59_storage_ptr", + "typeString": "struct PrivateHashTimeLock.LockContract" + } + }, + "visibility": "internal" + } + ], + "id": 490, + "initialValue": { + "baseExpression": { + "id": 487, + "name": "contracts", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6, + "src": "5098:9:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_LockContract_$59_storage_$", + "typeString": "mapping(bytes32 => struct PrivateHashTimeLock.LockContract storage ref)" + } + }, + "id": 489, + "indexExpression": { + "id": 488, + "name": "id", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 479, + "src": "5108:2:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5098:13:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_LockContract_$59_storage", + "typeString": "struct PrivateHashTimeLock.LockContract storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "5063:48:0" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 494, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 491, + "name": "tempContract", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 486, + "src": "5126:12:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_LockContract_$59_memory_ptr", + "typeString": "struct PrivateHashTimeLock.LockContract memory" + } + }, + "id": 492, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5139:6:0", + "memberName": "status", + "nodeType": "MemberAccess", + "referencedDeclaration": 45, + "src": "5126:19:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "id": 493, + "name": "INIT", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9, + "src": "5149:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5126:27:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 500, + "nodeType": "Block", + "src": "5198:36:0", + "statements": [ + { + "expression": { + "hexValue": "74727565", + "id": 498, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5219:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 483, + "id": 499, + "nodeType": "Return", + "src": "5212:11:0" + } + ] + }, + "id": 501, + "nodeType": "IfStatement", + "src": "5122:112:0", + "trueBody": { + "id": 497, + "nodeType": "Block", + "src": "5155:37:0", + "statements": [ + { + "expression": { + "hexValue": "66616c7365", + "id": 495, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5176:5:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "functionReturnParameters": 483, + "id": 496, + "nodeType": "Return", + "src": "5169:12:0" + } + ] + } + } + ] + }, + "functionSelector": "6c8244b8", + "id": 503, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "contractExists", + "nameLocation": "4992:14:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 480, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 479, + "mutability": "mutable", + "name": "id", + "nameLocation": "5015:2:0", + "nodeType": "VariableDeclaration", + "scope": 503, + "src": "5007:10:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 478, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "5007:7:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "5006:12:0" + }, + "returnParameters": { + "id": 483, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 482, + "mutability": "mutable", + "name": "result", + "nameLocation": "5045:6:0", + "nodeType": "VariableDeclaration", + "scope": 503, + "src": "5040:11:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 481, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "5040:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "5039:13:0" + }, + "scope": 504, + "src": "4983:257:0", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + } + ], + "scope": 505, + "src": "57:5185:0", + "usedErrors": [] + } + ], + "src": "32:5211:0" + }, + "functionHashes": { + "contractExists(bytes32)": "6c8244b8", + "getSingleStatus(bytes32)": "fbdf3b43", + "getStatus(bytes32[])": "2f21a663", + "newPrivateContract(uint256,uint256,bytes32,address,string,string,(uint256,uint256))": "9b0bcdcb", + "refund(bytes32)": "7249fbb6", + "withdraw(bytes32,bytes32)": "63615149" + }, + "gasEstimates": { + "creation": { + "codeDepositCost": "942000", + "executionCost": "981", + "totalCost": "942981" + }, + "external": { + "contractExists(bytes32)": "infinite", + "getSingleStatus(bytes32)": "infinite", + "getStatus(bytes32[])": "infinite", + "newPrivateContract(uint256,uint256,bytes32,address,string,string,(uint256,uint256))": "infinite", + "refund(bytes32)": "infinite", + "withdraw(bytes32,bytes32)": "infinite" + }, + "internal": { + "calculateHashSecret(uint256,uint256,uint256)": "infinite" + } + } +} \ No newline at end of file diff --git a/packages/cactus-plugin-htlc-eth-besu/src/main/solidity/contracts/PrivateHashTimeLock.sol b/packages/cactus-plugin-htlc-eth-besu/src/main/solidity/contracts/PrivateHashTimeLock.sol index f546919c37d..e698a43277e 100644 --- a/packages/cactus-plugin-htlc-eth-besu/src/main/solidity/contracts/PrivateHashTimeLock.sol +++ b/packages/cactus-plugin-htlc-eth-besu/src/main/solidity/contracts/PrivateHashTimeLock.sol @@ -77,7 +77,7 @@ contract PrivateHashTimeLock { require(inputAmount > 0, "INVALID_AMOUNT"); - bytes32 id = keccak256(abi.encodePacked(sender, receiver, inputAmount, hashLock, expiration)); + bytes32 id = keccak256(abi.encode(sender, receiver, inputAmount, hashLock, expiration)); require(contracts[id].status == INIT, "SWAP_EXISTS"); require(priv.generator > 0); diff --git a/packages/cactus-plugin-htlc-eth-besu/src/test/solidity/integration/HashTimeLock.t.sol b/packages/cactus-plugin-htlc-eth-besu/src/test/solidity/integration/HashTimeLock.t.sol new file mode 100644 index 00000000000..e0ad117013f --- /dev/null +++ b/packages/cactus-plugin-htlc-eth-besu/src/test/solidity/integration/HashTimeLock.t.sol @@ -0,0 +1,119 @@ +pragma solidity 0.8.19; + +import {HashTimeLock} from "../../../main/solidity/contracts/HashTimeLock.sol"; +import "forge-std/Test.sol"; +import "forge-std/console2.sol"; + +contract HashTimeLockTest is Test { + + bytes32 AliceSecret; + bytes32 HashedAliceSecret; + bytes32 Z; + + function setUp() public { + AliceSecret = bytes32(0x0000000000000000000000000000000000000000000000000000000000000003); + // keccak256(abi.encodePacked(AliceSecret)); + HashedAliceSecret = bytes32(0xc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b); + } + + function test_Deployment() public { + new HashTimeLock(); + } + + function test_initializeHTLC() public { + // 5 eth + uint256 inputAmountEth = 5; + uint256 outputAmount = 5000000000000000000; + // 1/1/2030 + uint256 expiration = 1893515539; + // account # 1 of anvil -a 10 + address payable receiver = payable(0x70997970C51812dc3A010C7d01b50e0d17dc79C8); + string memory outputNetwork = "anvil"; + string memory outputAddress = vm.toString(msg.sender); + + + HashTimeLock HtlcManager = new HashTimeLock(); + console.log("Deployed HTLC: ", address(HtlcManager)); + + vm.expectCall( + address(HtlcManager), + 5, + abi.encodeWithSelector( + HtlcManager.newContract.selector, + outputAmount, + expiration, + HashedAliceSecret, + receiver, + outputNetwork, + outputAddress + ), + 1 + ); + + //vm.expectEmit(true, true, false, true, address(HtlcManager)); + vm.recordLogs(); + + HtlcManager.newContract{value: inputAmountEth}( + outputAmount, expiration, HashedAliceSecret, receiver, outputNetwork, outputAddress + ); + + Vm.Log[] memory entries = vm.getRecordedLogs(); + + // get contract id from event + assertEq(entries.length, 1); + bytes32 id = entries[0].topics[1]; + + bool exists = HtlcManager.contractExists(id); + assert(exists); + + // state is active + assert(HtlcManager.getSingleStatus(id) == 1); + } + + function test_process_secret() public { + // 5 eth + uint256 inputAmountEth = 5; + uint256 outputAmount = 5000000000000000000; + // 1/1/2030 + uint256 expiration = 1893515539; + // account # 1 of anvil -a 10 + address payable receiver = payable(0x70997970C51812dc3A010C7d01b50e0d17dc79C8); + string memory outputNetwork = "anvil"; + string memory outputAddress = vm.toString(msg.sender); + + + HashTimeLock HtlcManager = new HashTimeLock(); + console.log("Deployed HTLC: ", address(HtlcManager)); + + vm.expectCall( + address(HtlcManager), + 5, + abi.encodeWithSelector( + HtlcManager.newContract.selector, + outputAmount, + expiration, + HashedAliceSecret, + receiver, + outputNetwork, + outputAddress + ), + 1 + ); + + //vm.expectEmit(true, true, false, true, address(HtlcManager)); + vm.recordLogs(); + + HtlcManager.newContract{value: inputAmountEth}( + outputAmount, expiration, HashedAliceSecret, receiver, outputNetwork, outputAddress + ); + + Vm.Log[] memory entries = vm.getRecordedLogs(); + + // get contract id from event + assertEq(entries.length, 1); + bytes32 id = entries[0].topics[1]; + assertEq(HashedAliceSecret, keccak256(abi.encode(AliceSecret))); + HtlcManager.withdraw(id, AliceSecret); + } + +}