diff --git a/build/contracts/Escrow_v1_0.json b/build/contracts/Escrow_v1_0.json index d44be3e..6378f32 100644 --- a/build/contracts/Escrow_v1_0.json +++ b/build/contracts/Escrow_v1_0.json @@ -11,10 +11,6 @@ ], "name": "transactions", "outputs": [ - { - "name": "scriptHash", - "type": "bytes32" - }, { "name": "value", "type": "uint256" @@ -74,34 +70,11 @@ "stateMutability": "view", "type": "function" }, - { - "constant": true, - "inputs": [ - { - "name": "", - "type": "address" - }, - { - "name": "", - "type": "uint256" - } - ], - "name": "partyVsTransaction", - "outputs": [ - { - "name": "", - "type": "bytes32" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, { "anonymous": false, "inputs": [ { - "indexed": false, + "indexed": true, "name": "scriptHash", "type": "bytes32" }, @@ -123,7 +96,7 @@ "anonymous": false, "inputs": [ { - "indexed": false, + "indexed": true, "name": "scriptHash", "type": "bytes32" }, @@ -145,7 +118,7 @@ "anonymous": false, "inputs": [ { - "indexed": false, + "indexed": true, "name": "scriptHash", "type": "bytes32" }, @@ -262,7 +235,7 @@ "name": "checkBeneficiary", "outputs": [ { - "name": "check", + "name": "", "type": "bool" } ], @@ -285,7 +258,7 @@ "name": "checkVote", "outputs": [ { - "name": "vote", + "name": "", "type": "bool" } ], @@ -336,7 +309,7 @@ "name": "getAllTransactionsForParty", "outputs": [ { - "name": "scriptHashes", + "name": "", "type": "bytes32[]" } ], @@ -413,7 +386,7 @@ "name": "calculateRedeemScriptHash", "outputs": [ { - "name": "hash", + "name": "", "type": "bytes32" } ], @@ -422,20 +395,20 @@ "type": "function" } ], - "bytecode": "0x6080604052600060015534801561001557600080fd5b50614296806100256000396000f3006080604052600436106100ba576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806323b6fd3f146100bf5780632d9ef96e1461017957806346fbcdeb1461019d57806357bced7614610292578063642f2eaf14610383578063b0550c66146104f4578063b719e2801461055d578063b77bf60014610598578063be84ceaf146105c3578063e4ec8b001461065b578063f078656214610704578063f5dbe09c1461076d575b600080fd5b610177600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803560ff169060200190929190803563ffffffff169060200190929190803560001916906020019092919080356bffffffffffffffffffffffff191690602001909291905050506107d6565b005b61019b6004803603810190808035600019169060200190929190505050610a35565b005b3480156101a957600080fd5b5061027460048036038101908080356bffffffffffffffffffffffff19169060200190929190803560ff169060200190929190803563ffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610ec3565b60405180826000191660001916815260200191505060405180910390f35b34801561029e57600080fd5b50610381600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803560ff169060200190929190803563ffffffff16906020019092919080356000191690602001909291908035906020019092919080356bffffffffffffffffffffffff19169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061136f565b005b34801561038f57600080fd5b506103b2600480360381019080803560001916906020019092919050505061184f565b604051808c600019166000191681526020018b81526020018a81526020018960018111156103dc57fe5b60ff1681526020018860018111156103f057fe5b60ff1681526020018760ff1660ff1681526020018663ffffffff1663ffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019b50505050505050505050505060405180910390f35b34801561050057600080fd5b506105436004803603810190808035600019169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611960565b604051808215151515815260200191505060405180910390f35b34801561056957600080fd5b506105966004803603810190808035600019169060200190929190803590602001909291905050506119d2565b005b3480156105a457600080fd5b506105ad6120b2565b6040518082815260200191505060405180910390f35b3480156105cf57600080fd5b50610604600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506120b8565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b8381101561064757808201518184015260208101905061062c565b505050509050019250505060405180910390f35b34801561066757600080fd5b506107026004803603810190808035906020019082018035906020019190919293919293908035906020019082018035906020019190919293919293908035906020019082018035906020019190919293919293908035600019169060200190929190803590602001908201803590602001919091929391929390803590602001908201803590602001919091929391929390505050612153565b005b34801561071057600080fd5b506107536004803603810190808035600019169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506126b5565b604051808215151515815260200191505060405180910390f35b34801561077957600080fd5b506107b8600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612727565b60405180826000191660001916815260200191505060405180910390f35b81600080600083600019166000191681526020019081526020016000206001015414151561086c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f5472616e73616374696f6e20657869737473000000000000000000000000000081525060200191505060405180910390fd5b87600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515610912576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f5a65726f2061646472657373207061737365640000000000000000000000000081525060200191505060405180910390fd5b87600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141515156109b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f5a65726f2061646472657373207061737365640000000000000000000000000081525060200191505060405180910390fd5b6109cb8a8a8a8a8a8a348b600080612757565b3373ffffffffffffffffffffffffffffffffffffffff167fce7089d0668849fb9ca29778c0cbf1e764d9efb048d81fd71fb34c94f26db36886346040518083600019166000191681526020018281526020019250505060405180910390a250505050505050505050565b600081600080600083600019166000191681526020019081526020016000206001015414151515610ace576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f5472616e73616374696f6e20646f6573206e6f7420657869737473000000000081525060200191505060405180910390fd5b8260006001811115610adc57fe5b600080836000191660001916815260200190815260200160002060030160009054906101000a900460ff166001811115610b1257fe5b141515610bad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260328152602001807f5472616e73616374696f6e2069732065697468657220696e206469737075746581526020017f206f722072656c6561736564207374617465000000000000000000000000000081525060400191505060405180910390fd5b836000806001811115610bbc57fe5b600080846000191660001916815260200190815260200160002060030160019054906101000a900460ff166001811115610bf257fe5b141515610c67576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f5472616e73616374696f6e207479706520646f6573206e6f74206d617463680081525060200191505060405180910390fd5b85600080826000191660001916815260200190815260200160002060030160079054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610d6e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602d8152602001807f54686520696e69746961746f72206f6620746865207472616e73616374696f6e81526020017f206973206e6f742062757965720000000000000000000000000000000000000081525060400191505060405180910390fd5b349550600086111515610de9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f56616c7565206d7573742062652067726561746572207468616e207a65726f2e81525060200191505060405180910390fd5b610e19866000808a60001916600019168152602001908152602001600020600101546130f190919063ffffffff16565b600080896000191660001916815260200190815260200160002060010181905550426000808960001916600019168152602001908152602001600020600201819055503373ffffffffffffffffffffffffffffffffffffffff167ff66fd2ae9e24a6a24b02e1b5b7512ffde5149a4176085fc0298ae228c9b9d72988886040518083600019166000191681526020018281526020019250505060405180910390a250505050505050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561110f578787878787873060405160200180886bffffffffffffffffffffffff19166bffffffffffffffffffffffff191681526014018760ff1660ff167f01000000000000000000000000000000000000000000000000000000000000000281526001018663ffffffff1663ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014019750505050505050506040516020818303038152906040526040518082805190602001908083835b6020831015156110db57805182526020820191506020810190506020830392506110b6565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390209050611364565b878787878787308860405160200180896bffffffffffffffffffffffff19166bffffffffffffffffffffffff191681526014018860ff1660ff167f01000000000000000000000000000000000000000000000000000000000000000281526001018763ffffffff1663ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c01000000000000000000000000028152601401985050505050505050506040516020818303038152906040526040518082805190602001908083835b602083101515611334578051825260208201915060208101905060208303925061130f565b6001836020036101000a038019825116818451168082178552505050505050905001915050604051809103902090505b979650505050505050565b6000846000806000836000191660001916815260200190815260200160002060010154141515611407576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f5472616e73616374696f6e20657869737473000000000000000000000000000081525060200191505060405180910390fd5b8a600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141515156114ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f5a65726f2061646472657373207061737365640000000000000000000000000081525060200191505060405180910390fd5b8a600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515611553576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f5a65726f2061646472657373207061737365640000000000000000000000000081525060200191505060405180910390fd5b84600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141515156115f9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f5a65726f2061646472657373207061737365640000000000000000000000000081525060200191505060405180910390fd5b61160c8e8e8e8e8e8e8e8e60018f612757565b8594508473ffffffffffffffffffffffffffffffffffffffff166323b872dd33308b6040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b1580156116e657600080fd5b505af11580156116fa573d6000803e3d6000fd5b505050506040513d602081101561171057600080fd5b810190808051906020019092919050505015156117e1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252605c8152602001807f546f6b656e207472616e73666572206661696c65642c206d6179626520796f7581526020017f20646964206e6f7420617070726f766520657363726f7720636f6e747261637481526020017f20746f207370656e64206f6e20626568616c66206f662062757965720000000081525060600191505060405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff167fce7089d0668849fb9ca29778c0cbf1e764d9efb048d81fd71fb34c94f26db3688a8a6040518083600019166000191681526020018281526020019250505060405180910390a25050505050505050505050505050565b60006020528060005260406000206000915090508060000154908060010154908060020154908060030160009054906101000a900460ff16908060030160019054906101000a900460ff16908060030160029054906101000a900460ff16908060030160039054906101000a900463ffffffff16908060030160079054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060050160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060060160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508b565b6000806000846000191660001916815260200190815260200160002060090160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b60008083600080600083600019166000191681526020019081526020016000206001015414151515611a6c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f5472616e73616374696f6e20646f6573206e6f7420657869737473000000000081525060200191505060405180910390fd5b8460006001811115611a7a57fe5b600080836000191660001916815260200190815260200160002060030160009054906101000a900460ff166001811115611ab057fe5b141515611b4b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260328152602001807f5472616e73616374696f6e2069732065697468657220696e206469737075746581526020017f206f722072656c6561736564207374617465000000000000000000000000000081525060400191505060405180910390fd5b856001806001811115611b5a57fe5b600080846000191660001916815260200190815260200160002060030160019054906101000a900460ff166001811115611b9057fe5b141515611c05576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f5472616e73616374696f6e207479706520646f6573206e6f74206d617463680081525060200191505060405180910390fd5b87600080826000191660001916815260200190815260200160002060030160079054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611d0c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602d8152602001807f54686520696e69746961746f72206f6620746865207472616e73616374696f6e81526020017f206973206e6f742062757965720000000000000000000000000000000000000081525060400191505060405180910390fd5b879650600087111515611d87576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f56616c7565206d7573742062652067726561746572207468616e207a65726f2e81525060200191505060405180910390fd5b6000808a6000191660001916815260200190815260200160002060050160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1695508573ffffffffffffffffffffffffffffffffffffffff166323b872dd6000808c6000191660001916815260200190815260200160002060030160079054906101000a900473ffffffffffffffffffffffffffffffffffffffff16308b6040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b158015611edb57600080fd5b505af1158015611eef573d6000803e3d6000fd5b505050506040513d6020811015611f0557600080fd5b81019080805190602001909291905050501515611fd6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252605c8152602001807f546f6b656e207472616e73666572206661696c65642c206d6179626520796f7581526020017f20646964206e6f7420617070726f766520657363726f7720636f6e747261637481526020017f20746f207370656e64206f6e20626568616c66206f662062757965720000000081525060600191505060405180910390fd5b612006876000808c60001916600019168152602001908152602001600020600101546130f190919063ffffffff16565b6000808b6000191660001916815260200190815260200160002060010181905550426000808b60001916600019168152602001908152602001600020600201819055503373ffffffffffffffffffffffffffffffffffffffff167ff66fd2ae9e24a6a24b02e1b5b7512ffde5149a4176085fc0298ae228c9b9d7298a896040518083600019166000191681526020018281526020019250505060405180910390a2505050505050505050565b60015481565b6060600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002080548060200260200160405190810160405280929190818152602001828054801561214757602002820191906000526020600020905b8154600019168152602001906001019080831161212f575b50505050509050919050565b846000806000836000191660001916815260200190815260200160002060010154141515156121ea576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f5472616e73616374696f6e20646f6573206e6f7420657869737473000000000081525060200191505060405180910390fd5b85600060018111156121f857fe5b600080836000191660001916815260200190815260200160002060030160009054906101000a900460ff16600181111561222e57fe5b1415156122c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260328152602001807f5472616e73616374696f6e2069732065697468657220696e206469737075746581526020017f206f722072656c6561736564207374617465000000000000000000000000000081525060400191505060405180910390fd5b6000868690501180156122e157508383905086869050145b151561237b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f4c656e677468206f662064657374696e6174696f6e7320697320696e636f727281526020017f6563742e0000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b6124748d8d808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050508c8c808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050508b8b808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050508a8a8a80806020026020016040519081016040528093929190818152602001838360200280828437820191505050505050898980806020026020016040519081016040528093929190818152602001838360200280828437820191505050505050613112565b6001600080896000191660001916815260200190815260200160002060030160006101000a81548160ff021916908360018111156124ae57fe5b02179055504260008089600019166000191681526020019081526020016000206002018190555060008088600019166000191681526020019081526020016000206001015461255c888888808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050508787808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050506132cd565b14151561261d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260488152602001807f546f74616c2076616c756520746f2062652072656c6561736564206d7573742081526020017f626520657175616c20746f20746865207472616e73616374696f6e206573637281526020017f6f772076616c756500000000000000000000000000000000000000000000000081525060600191505060405180910390fd5b7f688e2a1b34445bcd47b0e11ba2a9c8c4d850a1831b64199b59d1c70e2970154587878787876040518086600019166000191681526020018060200180602001838103835287878281815260200192506020028082843782019150508381038252858582818152602001925060200280828437820191505097505050505050505060405180910390a150505050505050505050505050565b6000806000846000191660001916815260200190815260200160002060080160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b60026020528160005260406000208181548110151561274257fe5b90600052602060002001600091509150505481565b8873ffffffffffffffffffffffffffffffffffffffff168a73ffffffffffffffffffffffffffffffffffffffff16141515156127fb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f427579657220616e642073656c6c6572206172652073616d650000000000000081525060200191505060405180910390fd5b600084111515612873576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f56616c756520706173736564206973203000000000000000000000000000000081525060200191505060405180910390fd5b60008760ff1611801561288a575060038760ff1611155b1515612924576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603d8152602001807f5468726573686f6c642063616e6e6f742062652067726561746572207468616e81526020017f203320616e64206d7573742062652067726561746572207468616e203000000081525060400191505060405180910390fd5b60018760ff1614806129635750600073ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff1614155b1515612a23576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252604f8152602001807f456974686572207468726573686f6c642073686f756c642062652031206f746881526020017f6572776973652076616c6964206d6f64657261746f722061646472657373207381526020017f686f756c6420626520706173736564000000000000000000000000000000000081525060600191505060405180910390fd5b612a328388888d8d8d87610ec3565b600019168560001916141515612ad6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260398152602001807f43616c63756c6174656420736372697074206861736820646f6573206e6f742081526020017f6d61746368207061737365642073637269707420686173682e0000000000000081525060400191505060405180910390fd5b610160604051908101604052808660001916815260200185815260200142815260200160006001811115612b0657fe5b8152602001836001811115612b1757fe5b81526020018860ff1681526020018763ffffffff1681526020018b73ffffffffffffffffffffffffffffffffffffffff1681526020018a73ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1681526020018973ffffffffffffffffffffffffffffffffffffffff16815250600080876000191660001916815260200190815260200160002060008201518160000190600019169055602082015181600101556040820151816002015560608201518160030160006101000a81548160ff02191690836001811115612c0157fe5b021790555060808201518160030160016101000a81548160ff02191690836001811115612c2a57fe5b021790555060a08201518160030160026101000a81548160ff021916908360ff16021790555060c08201518160030160036101000a81548163ffffffff021916908363ffffffff16021790555060e08201518160030160076101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506101008201518160040160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506101208201518160050160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506101408201518160060160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055509050506001600080876000191660001916815260200190815260200160002060070160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600080876000191660001916815260200190815260200160002060070160008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600080866000191660001916815260200190815260200160002060070160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151515612f82576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602d8152602001807f456974686572206275796572206f722073656c6c65722069732070617373656481526020017f206173206d6f64657261746f720000000000000000000000000000000000000081525060400191505060405180910390fd5b6001600080876000191660001916815260200190815260200160002060070160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160008154809291906001019190505550600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020859080600181540180825580915050906001820390600052602060002001600090919290919091509060001916905550600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002085908060018154018082558091505090600182039060005260206000200160009091929091909150906000191690555050505050505050505050565b600080828401905083811015151561310857600080fd5b8091505092915050565b600080613123888888888888613b44565b9150613179600080876000191660001916815260200190815260200160002060030160039054906101000a900463ffffffff166000808860001916600019168152602001908152602001600020600201546141b7565b9050600080866000191660001916815260200190815260200160002060030160029054906101000a900460ff1660ff16885110801561322a57508015806132295750600080866000191660001916815260200190815260200160002060040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b5b156132c3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001807f736967562e6c656e67746820697320756e64657220746865207468726573686f81526020017f6c642e000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b5050505050505050565b600080600080600080600089600019166000191681526020019081526020016000209350600060018111156132fe57fe5b8460030160019054906101000a900460ff16600181111561331b57fe5b141561363257600092505b865183101561362d57600073ffffffffffffffffffffffffffffffffffffffff16878481518110151561335557fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff16141580156133e55750836007016000888581518110151561339257fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1515613459576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f4e6f7420612076616c69642064657374696e6174696f6e00000000000000000081525060200191505060405180910390fd5b6000868481518110151561346957fe5b9060200190602002015111151561350e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a8152602001807f416d6f756e7420746f2062652073656e742073686f756c64206265206772656181526020017f746572207468616e20300000000000000000000000000000000000000000000081525060400191505060405180910390fd5b613538868481518110151561351f57fe5b90602001906020020151866130f190919063ffffffff16565b94506001846009016000898681518110151561355057fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555086838151811015156135b957fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff166108fc87858151811015156135ea57fe5b906020019060200201519081150290604051600060405180830381858888f1935050505015801561361f573d6000803e3d6000fd5b508280600101935050613326565b613b39565b60018081111561363e57fe5b8460030160019054906101000a900460ff16600181111561365b57fe5b1415613aa4578360050160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169150600090505b8651811015613a9f57600073ffffffffffffffffffffffffffffffffffffffff1687828151811015156136bc57fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff161415801561374c575083600701600088838151811015156136f957fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15156137c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f4e6f7420612076616c69642064657374696e6174696f6e00000000000000000081525060200191505060405180910390fd5b600086828151811015156137d057fe5b90602001906020020151111515613875576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a8152602001807f416d6f756e7420746f2062652073656e742073686f756c64206265206772656181526020017f746572207468616e20300000000000000000000000000000000000000000000081525060400191505060405180910390fd5b61389f868281518110151561388657fe5b90602001906020020151866130f190919063ffffffff16565b9450600184600901600089848151811015156138b757fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb888381518110151561393c57fe5b90602001906020020151888481518110151561395457fe5b906020019060200201516040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1580156139e357600080fd5b505af11580156139f7573d6000803e3d6000fd5b505050506040513d6020811015613a0d57600080fd5b81019080805190602001909291905050501515613a92576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f546f6b656e207472616e73666572206661696c65642e0000000000000000000081525060200191505060405180910390fd5b808060010191505061368d565b613b38565b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001807f5472616e736174696f6e2074797065206973206e6f7420737570706f7274656481526020017f2e0000000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b5b505050509392505050565b60008060008087518951148015613b5c575089518951145b1515613bd0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f522c532c56206c656e677468206d69736d617463682e0000000000000000000081525060200191505060405180910390fd5b60197f01000000000000000000000000000000000000000000000000000000000000000260007f0100000000000000000000000000000000000000000000000000000000000000023088888b60405160200180877effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152600101867effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526001018573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c01000000000000000000000000028152601401848051906020019060200280838360005b83811015613d24578082015181840152602081019050613d09565b50505050905001838051906020019060200280838360005b83811015613d57578082015181840152602081019050613d3c565b50505050905001826000191660001916815260200196505050505050506040516020818303038152906040526040518082805190602001908083835b602083101515613db85780518252602082019150602081019050602083039250613d93565b6001836020036101000a038019825116818451168082178552505050505050905001915050604051809103902060405160200180807f19457468657265756d205369676e6564204d6573736167653a0a333200000000815250601c0182600019166000191681526020019150506040516020818303038152906040526040518082805190602001908083835b602083101515613e695780518252602082019150602081019050602083039250613e44565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390209250600091505b88518210156141aa576001838b84815181101515613eb757fe5b906020019060200201518b85815181101515613ecf57fe5b906020019060200201518b86815181101515613ee757fe5b90602001906020020151604051600081526020016040526040518085600019166000191681526020018460ff1660ff1681526020018360001916600019168152602001826000191660001916815260200194505050505060206040516020810390808403906000865af1158015613f62573d6000803e3d6000fd5b505050602060405103519050600080886000191660001916815260200190815260200160002060070160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151561404a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f496e76616c6964207369676e617475726500000000000000000000000000000081525060200191505060405180910390fd5b600080886000191660001916815260200190815260200160002060080160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151515614127576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f53616d65207369676e61747572652073656e742074776963650000000000000081525060200191505060405180910390fd5b6001600080896000191660001916815260200190815260200160002060080160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508093508180600101925050613e9d565b5050509695505050505050565b6000806141cd834261420b90919063ffffffff16565b905060008463ffffffff16146141ff576141f8610e108563ffffffff1661422c90919063ffffffff16565b8111614202565b60005b91505092915050565b60008083831115151561421d57600080fd5b82840390508091505092915050565b60008060008414156142415760009150614263565b828402905082848281151561425257fe5b0414151561425f57600080fd5b8091505b50929150505600a165627a7a72305820c73a0380d7c72c0d00ed68ed7fefbb186daae42ab13438c78d9f78599fe11f9d0029", - "deployedBytecode": "0x6080604052600436106100ba576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806323b6fd3f146100bf5780632d9ef96e1461017957806346fbcdeb1461019d57806357bced7614610292578063642f2eaf14610383578063b0550c66146104f4578063b719e2801461055d578063b77bf60014610598578063be84ceaf146105c3578063e4ec8b001461065b578063f078656214610704578063f5dbe09c1461076d575b600080fd5b610177600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803560ff169060200190929190803563ffffffff169060200190929190803560001916906020019092919080356bffffffffffffffffffffffff191690602001909291905050506107d6565b005b61019b6004803603810190808035600019169060200190929190505050610a35565b005b3480156101a957600080fd5b5061027460048036038101908080356bffffffffffffffffffffffff19169060200190929190803560ff169060200190929190803563ffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610ec3565b60405180826000191660001916815260200191505060405180910390f35b34801561029e57600080fd5b50610381600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803560ff169060200190929190803563ffffffff16906020019092919080356000191690602001909291908035906020019092919080356bffffffffffffffffffffffff19169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061136f565b005b34801561038f57600080fd5b506103b2600480360381019080803560001916906020019092919050505061184f565b604051808c600019166000191681526020018b81526020018a81526020018960018111156103dc57fe5b60ff1681526020018860018111156103f057fe5b60ff1681526020018760ff1660ff1681526020018663ffffffff1663ffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019b50505050505050505050505060405180910390f35b34801561050057600080fd5b506105436004803603810190808035600019169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611960565b604051808215151515815260200191505060405180910390f35b34801561056957600080fd5b506105966004803603810190808035600019169060200190929190803590602001909291905050506119d2565b005b3480156105a457600080fd5b506105ad6120b2565b6040518082815260200191505060405180910390f35b3480156105cf57600080fd5b50610604600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506120b8565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b8381101561064757808201518184015260208101905061062c565b505050509050019250505060405180910390f35b34801561066757600080fd5b506107026004803603810190808035906020019082018035906020019190919293919293908035906020019082018035906020019190919293919293908035906020019082018035906020019190919293919293908035600019169060200190929190803590602001908201803590602001919091929391929390803590602001908201803590602001919091929391929390505050612153565b005b34801561071057600080fd5b506107536004803603810190808035600019169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506126b5565b604051808215151515815260200191505060405180910390f35b34801561077957600080fd5b506107b8600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612727565b60405180826000191660001916815260200191505060405180910390f35b81600080600083600019166000191681526020019081526020016000206001015414151561086c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f5472616e73616374696f6e20657869737473000000000000000000000000000081525060200191505060405180910390fd5b87600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515610912576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f5a65726f2061646472657373207061737365640000000000000000000000000081525060200191505060405180910390fd5b87600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141515156109b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f5a65726f2061646472657373207061737365640000000000000000000000000081525060200191505060405180910390fd5b6109cb8a8a8a8a8a8a348b600080612757565b3373ffffffffffffffffffffffffffffffffffffffff167fce7089d0668849fb9ca29778c0cbf1e764d9efb048d81fd71fb34c94f26db36886346040518083600019166000191681526020018281526020019250505060405180910390a250505050505050505050565b600081600080600083600019166000191681526020019081526020016000206001015414151515610ace576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f5472616e73616374696f6e20646f6573206e6f7420657869737473000000000081525060200191505060405180910390fd5b8260006001811115610adc57fe5b600080836000191660001916815260200190815260200160002060030160009054906101000a900460ff166001811115610b1257fe5b141515610bad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260328152602001807f5472616e73616374696f6e2069732065697468657220696e206469737075746581526020017f206f722072656c6561736564207374617465000000000000000000000000000081525060400191505060405180910390fd5b836000806001811115610bbc57fe5b600080846000191660001916815260200190815260200160002060030160019054906101000a900460ff166001811115610bf257fe5b141515610c67576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f5472616e73616374696f6e207479706520646f6573206e6f74206d617463680081525060200191505060405180910390fd5b85600080826000191660001916815260200190815260200160002060030160079054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610d6e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602d8152602001807f54686520696e69746961746f72206f6620746865207472616e73616374696f6e81526020017f206973206e6f742062757965720000000000000000000000000000000000000081525060400191505060405180910390fd5b349550600086111515610de9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f56616c7565206d7573742062652067726561746572207468616e207a65726f2e81525060200191505060405180910390fd5b610e19866000808a60001916600019168152602001908152602001600020600101546130f190919063ffffffff16565b600080896000191660001916815260200190815260200160002060010181905550426000808960001916600019168152602001908152602001600020600201819055503373ffffffffffffffffffffffffffffffffffffffff167ff66fd2ae9e24a6a24b02e1b5b7512ffde5149a4176085fc0298ae228c9b9d72988886040518083600019166000191681526020018281526020019250505060405180910390a250505050505050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561110f578787878787873060405160200180886bffffffffffffffffffffffff19166bffffffffffffffffffffffff191681526014018760ff1660ff167f01000000000000000000000000000000000000000000000000000000000000000281526001018663ffffffff1663ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014019750505050505050506040516020818303038152906040526040518082805190602001908083835b6020831015156110db57805182526020820191506020810190506020830392506110b6565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390209050611364565b878787878787308860405160200180896bffffffffffffffffffffffff19166bffffffffffffffffffffffff191681526014018860ff1660ff167f01000000000000000000000000000000000000000000000000000000000000000281526001018763ffffffff1663ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c01000000000000000000000000028152601401985050505050505050506040516020818303038152906040526040518082805190602001908083835b602083101515611334578051825260208201915060208101905060208303925061130f565b6001836020036101000a038019825116818451168082178552505050505050905001915050604051809103902090505b979650505050505050565b6000846000806000836000191660001916815260200190815260200160002060010154141515611407576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f5472616e73616374696f6e20657869737473000000000000000000000000000081525060200191505060405180910390fd5b8a600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141515156114ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f5a65726f2061646472657373207061737365640000000000000000000000000081525060200191505060405180910390fd5b8a600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515611553576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f5a65726f2061646472657373207061737365640000000000000000000000000081525060200191505060405180910390fd5b84600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141515156115f9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f5a65726f2061646472657373207061737365640000000000000000000000000081525060200191505060405180910390fd5b61160c8e8e8e8e8e8e8e8e60018f612757565b8594508473ffffffffffffffffffffffffffffffffffffffff166323b872dd33308b6040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b1580156116e657600080fd5b505af11580156116fa573d6000803e3d6000fd5b505050506040513d602081101561171057600080fd5b810190808051906020019092919050505015156117e1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252605c8152602001807f546f6b656e207472616e73666572206661696c65642c206d6179626520796f7581526020017f20646964206e6f7420617070726f766520657363726f7720636f6e747261637481526020017f20746f207370656e64206f6e20626568616c66206f662062757965720000000081525060600191505060405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff167fce7089d0668849fb9ca29778c0cbf1e764d9efb048d81fd71fb34c94f26db3688a8a6040518083600019166000191681526020018281526020019250505060405180910390a25050505050505050505050505050565b60006020528060005260406000206000915090508060000154908060010154908060020154908060030160009054906101000a900460ff16908060030160019054906101000a900460ff16908060030160029054906101000a900460ff16908060030160039054906101000a900463ffffffff16908060030160079054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060050160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060060160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508b565b6000806000846000191660001916815260200190815260200160002060090160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b60008083600080600083600019166000191681526020019081526020016000206001015414151515611a6c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f5472616e73616374696f6e20646f6573206e6f7420657869737473000000000081525060200191505060405180910390fd5b8460006001811115611a7a57fe5b600080836000191660001916815260200190815260200160002060030160009054906101000a900460ff166001811115611ab057fe5b141515611b4b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260328152602001807f5472616e73616374696f6e2069732065697468657220696e206469737075746581526020017f206f722072656c6561736564207374617465000000000000000000000000000081525060400191505060405180910390fd5b856001806001811115611b5a57fe5b600080846000191660001916815260200190815260200160002060030160019054906101000a900460ff166001811115611b9057fe5b141515611c05576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f5472616e73616374696f6e207479706520646f6573206e6f74206d617463680081525060200191505060405180910390fd5b87600080826000191660001916815260200190815260200160002060030160079054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611d0c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602d8152602001807f54686520696e69746961746f72206f6620746865207472616e73616374696f6e81526020017f206973206e6f742062757965720000000000000000000000000000000000000081525060400191505060405180910390fd5b879650600087111515611d87576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f56616c7565206d7573742062652067726561746572207468616e207a65726f2e81525060200191505060405180910390fd5b6000808a6000191660001916815260200190815260200160002060050160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1695508573ffffffffffffffffffffffffffffffffffffffff166323b872dd6000808c6000191660001916815260200190815260200160002060030160079054906101000a900473ffffffffffffffffffffffffffffffffffffffff16308b6040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b158015611edb57600080fd5b505af1158015611eef573d6000803e3d6000fd5b505050506040513d6020811015611f0557600080fd5b81019080805190602001909291905050501515611fd6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252605c8152602001807f546f6b656e207472616e73666572206661696c65642c206d6179626520796f7581526020017f20646964206e6f7420617070726f766520657363726f7720636f6e747261637481526020017f20746f207370656e64206f6e20626568616c66206f662062757965720000000081525060600191505060405180910390fd5b612006876000808c60001916600019168152602001908152602001600020600101546130f190919063ffffffff16565b6000808b6000191660001916815260200190815260200160002060010181905550426000808b60001916600019168152602001908152602001600020600201819055503373ffffffffffffffffffffffffffffffffffffffff167ff66fd2ae9e24a6a24b02e1b5b7512ffde5149a4176085fc0298ae228c9b9d7298a896040518083600019166000191681526020018281526020019250505060405180910390a2505050505050505050565b60015481565b6060600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002080548060200260200160405190810160405280929190818152602001828054801561214757602002820191906000526020600020905b8154600019168152602001906001019080831161212f575b50505050509050919050565b846000806000836000191660001916815260200190815260200160002060010154141515156121ea576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f5472616e73616374696f6e20646f6573206e6f7420657869737473000000000081525060200191505060405180910390fd5b85600060018111156121f857fe5b600080836000191660001916815260200190815260200160002060030160009054906101000a900460ff16600181111561222e57fe5b1415156122c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260328152602001807f5472616e73616374696f6e2069732065697468657220696e206469737075746581526020017f206f722072656c6561736564207374617465000000000000000000000000000081525060400191505060405180910390fd5b6000868690501180156122e157508383905086869050145b151561237b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f4c656e677468206f662064657374696e6174696f6e7320697320696e636f727281526020017f6563742e0000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b6124748d8d808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050508c8c808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050508b8b808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050508a8a8a80806020026020016040519081016040528093929190818152602001838360200280828437820191505050505050898980806020026020016040519081016040528093929190818152602001838360200280828437820191505050505050613112565b6001600080896000191660001916815260200190815260200160002060030160006101000a81548160ff021916908360018111156124ae57fe5b02179055504260008089600019166000191681526020019081526020016000206002018190555060008088600019166000191681526020019081526020016000206001015461255c888888808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050508787808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050506132cd565b14151561261d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260488152602001807f546f74616c2076616c756520746f2062652072656c6561736564206d7573742081526020017f626520657175616c20746f20746865207472616e73616374696f6e206573637281526020017f6f772076616c756500000000000000000000000000000000000000000000000081525060600191505060405180910390fd5b7f688e2a1b34445bcd47b0e11ba2a9c8c4d850a1831b64199b59d1c70e2970154587878787876040518086600019166000191681526020018060200180602001838103835287878281815260200192506020028082843782019150508381038252858582818152602001925060200280828437820191505097505050505050505060405180910390a150505050505050505050505050565b6000806000846000191660001916815260200190815260200160002060080160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b60026020528160005260406000208181548110151561274257fe5b90600052602060002001600091509150505481565b8873ffffffffffffffffffffffffffffffffffffffff168a73ffffffffffffffffffffffffffffffffffffffff16141515156127fb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f427579657220616e642073656c6c6572206172652073616d650000000000000081525060200191505060405180910390fd5b600084111515612873576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f56616c756520706173736564206973203000000000000000000000000000000081525060200191505060405180910390fd5b60008760ff1611801561288a575060038760ff1611155b1515612924576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603d8152602001807f5468726573686f6c642063616e6e6f742062652067726561746572207468616e81526020017f203320616e64206d7573742062652067726561746572207468616e203000000081525060400191505060405180910390fd5b60018760ff1614806129635750600073ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff1614155b1515612a23576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252604f8152602001807f456974686572207468726573686f6c642073686f756c642062652031206f746881526020017f6572776973652076616c6964206d6f64657261746f722061646472657373207381526020017f686f756c6420626520706173736564000000000000000000000000000000000081525060600191505060405180910390fd5b612a328388888d8d8d87610ec3565b600019168560001916141515612ad6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260398152602001807f43616c63756c6174656420736372697074206861736820646f6573206e6f742081526020017f6d61746368207061737365642073637269707420686173682e0000000000000081525060400191505060405180910390fd5b610160604051908101604052808660001916815260200185815260200142815260200160006001811115612b0657fe5b8152602001836001811115612b1757fe5b81526020018860ff1681526020018763ffffffff1681526020018b73ffffffffffffffffffffffffffffffffffffffff1681526020018a73ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1681526020018973ffffffffffffffffffffffffffffffffffffffff16815250600080876000191660001916815260200190815260200160002060008201518160000190600019169055602082015181600101556040820151816002015560608201518160030160006101000a81548160ff02191690836001811115612c0157fe5b021790555060808201518160030160016101000a81548160ff02191690836001811115612c2a57fe5b021790555060a08201518160030160026101000a81548160ff021916908360ff16021790555060c08201518160030160036101000a81548163ffffffff021916908363ffffffff16021790555060e08201518160030160076101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506101008201518160040160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506101208201518160050160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506101408201518160060160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055509050506001600080876000191660001916815260200190815260200160002060070160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600080876000191660001916815260200190815260200160002060070160008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600080866000191660001916815260200190815260200160002060070160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151515612f82576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602d8152602001807f456974686572206275796572206f722073656c6c65722069732070617373656481526020017f206173206d6f64657261746f720000000000000000000000000000000000000081525060400191505060405180910390fd5b6001600080876000191660001916815260200190815260200160002060070160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160008154809291906001019190505550600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020859080600181540180825580915050906001820390600052602060002001600090919290919091509060001916905550600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002085908060018154018082558091505090600182039060005260206000200160009091929091909150906000191690555050505050505050505050565b600080828401905083811015151561310857600080fd5b8091505092915050565b600080613123888888888888613b44565b9150613179600080876000191660001916815260200190815260200160002060030160039054906101000a900463ffffffff166000808860001916600019168152602001908152602001600020600201546141b7565b9050600080866000191660001916815260200190815260200160002060030160029054906101000a900460ff1660ff16885110801561322a57508015806132295750600080866000191660001916815260200190815260200160002060040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b5b156132c3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001807f736967562e6c656e67746820697320756e64657220746865207468726573686f81526020017f6c642e000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b5050505050505050565b600080600080600080600089600019166000191681526020019081526020016000209350600060018111156132fe57fe5b8460030160019054906101000a900460ff16600181111561331b57fe5b141561363257600092505b865183101561362d57600073ffffffffffffffffffffffffffffffffffffffff16878481518110151561335557fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff16141580156133e55750836007016000888581518110151561339257fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1515613459576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f4e6f7420612076616c69642064657374696e6174696f6e00000000000000000081525060200191505060405180910390fd5b6000868481518110151561346957fe5b9060200190602002015111151561350e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a8152602001807f416d6f756e7420746f2062652073656e742073686f756c64206265206772656181526020017f746572207468616e20300000000000000000000000000000000000000000000081525060400191505060405180910390fd5b613538868481518110151561351f57fe5b90602001906020020151866130f190919063ffffffff16565b94506001846009016000898681518110151561355057fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555086838151811015156135b957fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff166108fc87858151811015156135ea57fe5b906020019060200201519081150290604051600060405180830381858888f1935050505015801561361f573d6000803e3d6000fd5b508280600101935050613326565b613b39565b60018081111561363e57fe5b8460030160019054906101000a900460ff16600181111561365b57fe5b1415613aa4578360050160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169150600090505b8651811015613a9f57600073ffffffffffffffffffffffffffffffffffffffff1687828151811015156136bc57fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff161415801561374c575083600701600088838151811015156136f957fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15156137c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f4e6f7420612076616c69642064657374696e6174696f6e00000000000000000081525060200191505060405180910390fd5b600086828151811015156137d057fe5b90602001906020020151111515613875576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a8152602001807f416d6f756e7420746f2062652073656e742073686f756c64206265206772656181526020017f746572207468616e20300000000000000000000000000000000000000000000081525060400191505060405180910390fd5b61389f868281518110151561388657fe5b90602001906020020151866130f190919063ffffffff16565b9450600184600901600089848151811015156138b757fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb888381518110151561393c57fe5b90602001906020020151888481518110151561395457fe5b906020019060200201516040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1580156139e357600080fd5b505af11580156139f7573d6000803e3d6000fd5b505050506040513d6020811015613a0d57600080fd5b81019080805190602001909291905050501515613a92576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f546f6b656e207472616e73666572206661696c65642e0000000000000000000081525060200191505060405180910390fd5b808060010191505061368d565b613b38565b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001807f5472616e736174696f6e2074797065206973206e6f7420737570706f7274656481526020017f2e0000000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b5b505050509392505050565b60008060008087518951148015613b5c575089518951145b1515613bd0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f522c532c56206c656e677468206d69736d617463682e0000000000000000000081525060200191505060405180910390fd5b60197f01000000000000000000000000000000000000000000000000000000000000000260007f0100000000000000000000000000000000000000000000000000000000000000023088888b60405160200180877effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152600101867effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526001018573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c01000000000000000000000000028152601401848051906020019060200280838360005b83811015613d24578082015181840152602081019050613d09565b50505050905001838051906020019060200280838360005b83811015613d57578082015181840152602081019050613d3c565b50505050905001826000191660001916815260200196505050505050506040516020818303038152906040526040518082805190602001908083835b602083101515613db85780518252602082019150602081019050602083039250613d93565b6001836020036101000a038019825116818451168082178552505050505050905001915050604051809103902060405160200180807f19457468657265756d205369676e6564204d6573736167653a0a333200000000815250601c0182600019166000191681526020019150506040516020818303038152906040526040518082805190602001908083835b602083101515613e695780518252602082019150602081019050602083039250613e44565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390209250600091505b88518210156141aa576001838b84815181101515613eb757fe5b906020019060200201518b85815181101515613ecf57fe5b906020019060200201518b86815181101515613ee757fe5b90602001906020020151604051600081526020016040526040518085600019166000191681526020018460ff1660ff1681526020018360001916600019168152602001826000191660001916815260200194505050505060206040516020810390808403906000865af1158015613f62573d6000803e3d6000fd5b505050602060405103519050600080886000191660001916815260200190815260200160002060070160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151561404a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f496e76616c6964207369676e617475726500000000000000000000000000000081525060200191505060405180910390fd5b600080886000191660001916815260200190815260200160002060080160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151515614127576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f53616d65207369676e61747572652073656e742074776963650000000000000081525060200191505060405180910390fd5b6001600080896000191660001916815260200190815260200160002060080160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508093508180600101925050613e9d565b5050509695505050505050565b6000806141cd834261420b90919063ffffffff16565b905060008463ffffffff16146141ff576141f8610e108563ffffffff1661422c90919063ffffffff16565b8111614202565b60005b91505092915050565b60008083831115151561421d57600080fd5b82840390508091505092915050565b60008060008414156142415760009150614263565b828402905082848281151561425257fe5b0414151561425f57600080fd5b8091505b50929150505600a165627a7a72305820c73a0380d7c72c0d00ed68ed7fefbb186daae42ab13438c78d9f78599fe11f9d0029", - "sourceMap": "460:20302:0:-;;;1680:1;1646:35;;460:20302;8:9:-1;5:2;;;30:1;27;20:12;5:2;460:20302:0;;;;;;;", - "deployedSourceMap": "460:20302:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3902:702;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7917:598;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12314:1004;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12314:1004:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5704:1021;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5704:1021:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1588:51;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1588:51:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6949:228;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6949:228:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8775:924;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8775:924:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1646:35;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1646:35:0;;;;;;;;;;;;;;;;;;;;;;;9816:207;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9816:207:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;9816:207:0;;;;;;;;;;;;;;;;;10780:1063;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10780:1063:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7400:199;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7400:199:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1758:54;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1758:54:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3902:702;4180:10;2104:1;2070:12;:24;2083:10;2070:24;;;;;;;;;;;;;;;;;:30;;;:35;2062:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4215:5;2454:1;2428:28;;:14;:28;;;;2420:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4245:6;2454:1;2428:28;;:14;:28;;;;2420:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4267:264;4296:5;4315:6;4335:9;4358;4381:12;4407:10;4431:9;4454:8;4476:21;4519:1;4267:15;:264::i;:::-;4574:10;4555:41;;;4562:10;4586:9;4555:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2490:1;2138;3902:702;;;;;;;;:::o;7917:598::-;8195:14;8025:10;1931:1;1897:12;:24;1910:10;1897:24;;;;;;;;;;;;;;;;;:30;;;:35;;1876:97;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8059:10;2261:13;2226:48;;;;;;;;:12;:24;2239:10;2226:24;;;;;;;;;;;;;;;;;:31;;;;;;;;;;;;:48;;;;;;;;;2205:133;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8100:10;8112:21;2688:15;2644:59;;;;;;;;:12;:24;2657:10;2644:24;;;;;;;;;;;;;;;;;:40;;;;;;;;;;;;:59;;;;;;;;;2623:125;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8153:10;2856:12;:24;2869:10;2856:24;;;;;;;;;;;;;;;;;:30;;;;;;;;;;;;2842:44;;:10;:44;;;2821:124;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8212:9;8195:26;;8249:1;8240:6;:10;8232:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8331;8379:6;8331:12;:24;8344:10;8331:24;;;;;;;;;;;;;;;;;:30;;;:47;;:55;;;;:::i;:::-;8298:12;:24;8311:10;8298:24;;;;;;;;;;;;;;;;;:30;;:88;;;;8436:15;8396:12;:24;8409:10;8396:24;;;;;;;;;;;;;;;;;:37;;:55;;;;8489:10;8467:41;;;8477:10;8501:6;8467:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2758:1;2348;;1983;7917:598;;;:::o;12314:1004::-;12584:12;12640:1;12616:26;;:12;:26;;;12612:700;;;12730:8;12760:9;12791:12;12825:5;12852:6;12880:9;12911:4;12692:241;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;12692:241:0;;;12665:282;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;51:19;36:153;;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;12665:282:0;;;;;;;;;;;;;;;;12658:289;;12612:700;;;13050:8;13080:9;13111:12;13145:5;13172:6;13200:9;13231:4;13257:12;13012:275;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;13012:275:0;;;12985:316;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;51:19;36:153;;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;12985:316:0;;;;;;;;;;;;;;;;12978:323;;12612:700;12314:1004;;;;;;;;;:::o;5704:1021::-;6422:20;6024:10;2104:1;2070:12;:24;2083:10;2070:24;;;;;;;;;;;;;;;;;:30;;;:35;2062:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6059:5;2454:1;2428:28;;:14;:28;;;;2420:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6089:6;2454:1;2428:28;;:14;:28;;;;2420:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6120:12;2454:1;2428:28;;:14;:28;;;;2420:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6149:262;6178:5;6197:6;6217:9;6240;6263:12;6289:10;6313:5;6332:8;6354:21;6389:12;6149:15;:262::i;:::-;6460:12;6422:51;;6505:5;:18;;;6524:10;6536:4;6542:5;6505:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6505:43:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6505:43:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;6505:43:0;;;;;;;;;;;;;;;;6484:182;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6700:10;6681:37;;;6688:10;6712:5;6681:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2490:1;;2138;5704:1021;;;;;;;;;;;:::o;1588:51::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;6949:228::-;7085:10;7119:12;:24;7132:10;7119:24;;;;;;;;;;;;;;;;;:38;;:51;7158:11;7119:51;;;;;;;;;;;;;;;;;;;;;;;;;7111:59;;6949:228;;;;:::o;8775:924::-;9061:14;9160:20;8907:10;1931:1;1897:12;:24;1910:10;1897:24;;;;;;;;;;;;;;;;;:30;;;:35;;1876:97;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8941:10;2261:13;2226:48;;;;;;;;:12;:24;2239:10;2226:24;;;;;;;;;;;;;;;;;:31;;;;;;;;;;;;:48;;;;;;;;;2205:133;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8982:10;8994:21;2688:15;2644:59;;;;;;;;:12;:24;2657:10;2644:24;;;;;;;;;;;;;;;;;:40;;;;;;;;;;;;:59;;;;;;;;;2623:125;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9035:10;2856:12;:24;2869:10;2856:24;;;;;;;;;;;;;;;;;:30;;;;;;;;;;;;2842:44;;:10;:44;;;2821:124;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9078:5;9061:22;;9111:1;9102:6;:10;9094:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9211:12;:24;9224:10;9211:24;;;;;;;;;;;;;;;;;:37;;;;;;;;;;;;9160:98;;9290:5;:18;;;9309:12;:24;9322:10;9309:24;;;;;;;;;;;;;;;;;:30;;;;;;;;;;;;9341:4;9347:5;9290:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9290:63:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9290:63:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;9290:63:0;;;;;;;;;;;;;;;;9269:202;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9515:55;9563:6;9515:12;:24;9528:10;9515:24;;;;;;;;;;;;;;;;;:30;;;:47;;:55;;;;:::i;:::-;9482:12;:24;9495:10;9482:24;;;;;;;;;;;;;;;;;:30;;:88;;;;9620:15;9580:12;:24;9593:10;9580:24;;;;;;;;;;;;;;;;;:37;;:55;;;;9673:10;9651:41;;;9661:10;9685:6;9651:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2758:1;2348;;1983;8775:924;;;;;:::o;1646:35::-;;;;:::o;9816:207::-;9938:22;9984:18;:32;10003:12;9984:32;;;;;;;;;;;;;;;9977:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9816:207;;;:::o;10780:1063::-;11003:10;1931:1;1897:12;:24;1910:10;1897:24;;;;;;;;;;;;;;;;;:30;;;:35;;1876:97;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11037:10;2261:13;2226:48;;;;;;;;:12;:24;2239:10;2226:24;;;;;;;;;;;;;;;;;:31;;;;;;;;;;;;:48;;;;;;;;;2205:133;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11104:1;11084:12;;:19;;:21;:62;;;;;11132:7;;:14;;11109:12;;:19;;:37;11084:62;11063:133;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11207:152;11238:4;;11207:152;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11256:4;;11207:152;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11274:4;;11207:152;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11292:10;11316:12;;11207:152;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11342:7;;11207:152;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:17;:152::i;:::-;11404:15;11370:12;:24;11383:10;11370:24;;;;;;;;;;;;;;;;;:31;;;:49;;;;;;;;;;;;;;;;;;;;;;;;11543:15;11503:12;:24;11516:10;11503:24;;;;;;;;;;;;;;;;;:37;;:55;;;;11641:12;:24;11654:10;11641:24;;;;;;;;;;;;;;;;;:30;;;11589:48;11603:10;11615:12;;11589:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11629:7;;11589:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:13;:48::i;:::-;:82;11568:201;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11793:43;11802:10;11814:12;;11828:7;;11793:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1983:1;10780:1063;;;;;;;;;;;;:::o;7400:199::-;7523:9;7555:12;:24;7568:10;7555:24;;;;;;;;;;;;;;;;;:30;;:37;7586:5;7555:37;;;;;;;;;;;;;;;;;;;;;;;;;7548:44;;7400:199;;;;:::o;1758:54::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;18514:2246::-;18876:6;18867:15;;:5;:15;;;;18859:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18987:1;18979:5;:9;18971:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19125:1;19113:9;:13;;;:31;;;;;19143:1;19130:9;:14;;;;19113:31;19092:140;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19276:1;19263:9;:14;;;:41;;;;19302:1;19281:23;;:9;:23;;;;19263:41;19242:167;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19455:226;19498:8;19524:9;19551:12;19581:5;19604:6;19628:9;19655:12;19455:25;:226::i;:::-;19441:240;;;:10;:240;;;;19420:345;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19803:409;;;;;;;;;20033:10;19803:409;;;;;;;19924:5;19803:409;;;;19992:15;19803:409;;;;19951:13;19803:409;;;;;;;;;;;;20147:15;19803:409;;;;;;;;;;;;20068:9;19803:409;;;;;;20105:12;19803:409;;;;;;19836:5;19803:409;;;;;;19863:6;19803:409;;;;;;20189:12;19803:409;;;;;;19894:9;19803:409;;;;;19776:12;:24;19789:10;19776:24;;;;;;;;;;;;;;;;;:436;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20266:4;20223:12;:24;20236:10;20223:24;;;;;;;;;;;;;;;;;:32;;:40;20256:6;20223:40;;;;;;;;;;;;;;;;:47;;;;;;;;;;;;;;;;;;20322:4;20280:12;:24;20293:10;20280:24;;;;;;;;;;;;;;;;;:32;;:39;20313:5;20280:39;;;;;;;;;;;;;;;;:46;;;;;;;;;;;;;;;;;;20434:12;:24;20447:10;20434:24;;;;;;;;;;;;;;;;;:32;;:43;20467:9;20434:43;;;;;;;;;;;;;;;;;;;;;;;;;20433:44;20412:137;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20606:4;20560:12;:24;20573:10;20560:24;;;;;;;;;;;;;;;;;:32;;:43;20593:9;20560:43;;;;;;;;;;;;;;;;:50;;;;;;;;;;;;;;;;;;20629:16;;:18;;;;;;;;;;;;;20658;:25;20677:5;20658:25;;;;;;;;;;;;;;;20689:10;20658:42;;39:1:-1;33:3;27:10;23:18;57:10;52:3;45:23;79:10;72:17;;0:93;20658:42:0;;;;;;;;;;;;;;;;;;;;;;;;;;;20710:18;:26;20729:6;20710:26;;;;;;;;;;;;;;;20742:10;20710:43;;39:1:-1;33:3;27:10;23:18;57:10;52:3;45:23;79:10;72:17;;0:93;20710:43:0;;;;;;;;;;;;;;;;;;;;;;;;;;;18514:2246;;;;;;;;;;:::o;1272:131:2:-;1330:7;1345:9;1361:1;1357;:5;1345:17;;1381:1;1376;:6;;1368:15;;;;;;;;1397:1;1390:8;;1272:131;;;;;:::o;13592:952:0:-;13812:21;13998:20;13836:151;13866:4;13884;13902;13920:10;13944:12;13970:7;13836:16;:151::i;:::-;13812:175;;14021:129;14052:12;:24;14065:10;14052:24;;;;;;;;;;;;;;;;;:37;;;;;;;;;;;;14103:12;:24;14116:10;14103:24;;;;;;;;;;;;;;;;;:37;;;14021:17;:129::i;:::-;13998:152;;14336:12;:24;14349:10;14336:24;;;;;;;;;;;;;;;;;:34;;;;;;;;;;;;14322:48;;:4;:11;:48;:122;;;;;14376:15;14375:16;:68;;;;14412:12;:24;14425:10;14412:24;;;;;;;;;;;;;;;;;:31;;;;;;;;;;;;14395:48;;:13;:48;;;;14375:68;14322:122;14301:236;;;14481:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14301:236;13592:952;;;;;;;;:::o;14670:1717::-;14817:24;14857:21;14983:9;15620:20;15693:9;14881:12;:24;14894:10;14881:24;;;;;;;;;;;;;;;;;14857:48;;14941:21;14920:42;;;;;;;;:1;:17;;;;;;;;;;;;:42;;;;;;;;;14916:1465;;;14995:1;14983:13;;14978:562;15002:12;:19;14998:1;:23;14978:562;;;15082:1;15055:29;;:12;15068:1;15055:15;;;;;;;;;;;;;;;;;;:29;;;;:59;;;;;15088:1;:9;;:26;15098:12;15111:1;15098:15;;;;;;;;;;;;;;;;;;15088:26;;;;;;;;;;;;;;;;;;;;;;;;;15055:59;15047:95;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15181:1;15168:7;15176:1;15168:10;;;;;;;;;;;;;;;;;;:14;15160:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15267:32;15288:7;15296:1;15288:10;;;;;;;;;;;;;;;;;;15267:16;:20;;:32;;;;:::i;:::-;15248:51;;15353:4;15318:1;:15;;:32;15334:12;15347:1;15334:15;;;;;;;;;;;;;;;;;;15318:32;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;15404:12;15417:1;15404:15;;;;;;;;;;;;;;;;;;:24;;:36;15429:7;15437:1;15429:10;;;;;;;;;;;;;;;;;;15404:36;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;15404:36:0;15023:3;;;;;;;14978:562;;;14916:1465;;;15582:21;15561:42;;;;;;;;:1;:17;;;;;;;;;;;;:42;;;;;;;;;15557:824;;;15658:1;:14;;;;;;;;;;;;15620:53;;15705:1;15693:13;;15688:517;15710:12;:19;15708:1;:21;15688:517;;;15790:1;15763:29;;:12;15776:1;15763:15;;;;;;;;;;;;;;;;;;:29;;;;:59;;;;;15796:1;:9;;:26;15806:12;15819:1;15806:15;;;;;;;;;;;;;;;;;;15796:26;;;;;;;;;;;;;;;;;;;;;;;;;15763:59;15755:95;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15889:1;15876:7;15884:1;15876:10;;;;;;;;;;;;;;;;;;:14;15868:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15975:32;15996:7;16004:1;15996:10;;;;;;;;;;;;;;;;;;15975:16;:20;;:32;;;;:::i;:::-;15956:51;;16060:4;16025:1;:15;;:32;16041:12;16054:1;16041:15;;;;;;;;;;;;;;;;;;16025:32;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;16120:5;:14;;;16135:12;16148:1;16135:15;;;;;;;;;;;;;;;;;;16152:7;16160:1;16152:10;;;;;;;;;;;;;;;;;;16120:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;16120:43:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;16120:43:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;16120:43:0;;;;;;;;;;;;;;;;16112:78;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15731:3;;;;;;;15688:517;;;15557:824;;;16327:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15557:824;14916:1465;14670:1717;;;;;;;;;:::o;16571:1523::-;16792:19;17052:14;17511:6;17560:17;16863:4;:11;16848:4;:11;:26;:56;;;;;16893:4;:11;16878:4;:11;:26;16848:56;16827:126;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17256:4;17251:10;;17292:1;17287:7;;17320:4;17350:12;17388:7;17421:10;17209:244;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;17209:244:0;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;17209:244:0;;;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;17209:244:0;;;17178:293;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;51:19;36:153;;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;17178:293:0;;;;;;;;;;;;;;;;17092:393;;;;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;17092:393:0;;;17069:426;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;51:19;36:153;;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;17069:426:0;;;;;;;;;;;;;;;;17052:443;;17520:1;17511:10;;17506:582;17527:4;:11;17523:1;:15;17506:582;;;17580:122;17607:6;17631:4;17636:1;17631:7;;;;;;;;;;;;;;;;;;17656:4;17661:1;17656:7;;;;;;;;;;;;;;;;;;17681:4;17686:1;17681:7;;;;;;;;;;;;;;;;;;17580:122;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;17580:122:0;;;;;;;;17560:142;;17742:12;:24;17755:10;17742:24;;;;;;;;;;;;;;;;;:32;;:43;17775:9;17742:43;;;;;;;;;;;;;;;;;;;;;;;;;17717:120;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17877:12;:24;17890:10;17877:24;;;;;;;;;;;;;;;;;:30;;:41;17908:9;17877:41;;;;;;;;;;;;;;;;;;;;;;;;;17876:42;17851:127;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18036:4;17992:12;:24;18005:10;17992:24;;;;;;;;;;;;;;;;;:30;;:41;18023:9;17992:41;;;;;;;;;;;;;;;;:48;;;;;;;;;;;;;;;;;;18068:9;18054:23;;17540:3;;;;;;;17506:582;;;16571:1523;;;;;;;;;;;:::o;18100:327::-;18238:12;18266:17;18286:21;18294:12;18286:3;:7;;:21;;;;:::i;:::-;18266:41;;18357:1;18341:12;:17;;;:69;;18379:31;18405:4;18387:12;18379:21;;:25;;:31;;;;:::i;:::-;18367:9;:43;18341:69;;;18361:5;18341:69;18317:103;;18100:327;;;;;:::o;1078:131:2:-;1136:7;1172:9;1164:1;1159;:6;;1151:15;;;;;;;;1188:1;1184;:5;1172:17;;1203:1;1196:8;;1078:131;;;;;:::o;204:381::-;262:7;523:9;491:1;486;:6;482:35;;;509:1;502:8;;;;482:35;539:1;535;:5;523:17;;563:1;558;554;:5;;;;;;;;:10;546:19;;;;;;;;579:1;572:8;;204:381;;;;;;:::o", - "source": "pragma solidity 0.4.24;\n\nimport \"openzeppelin-solidity/contracts/math/SafeMath.sol\";\n\nimport \"../token/ITokenContract.sol\";\n\n\n/**\n* @dev Supports ERC20 tokens\n* The escrow smart contract for the open bazaar trades in Ethereum\n* The smart contract is desgined keeping in mind the current wallet interface of the OB-core\n* https://github.com/OpenBazaar/wallet-interface/blob/master/wallet.go\n* Current wallet interface strictly adheres to UTXO(bitcoin) model\n*/\ncontract Escrow_v1_0 {\n\n using SafeMath for uint256;\n\n enum Status {FUNDED, RELEASED}\n\n enum TransactionType {ETHER, TOKEN}\n\n event Executed(\n bytes32 scriptHash,\n address[] destinations,\n uint256[] amounts\n );\n\n event FundAdded(\n bytes32 scriptHash,\n address indexed from,\n uint256 valueAdded\n );\n\n event Funded(bytes32 scriptHash, address indexed from, uint256 value);\n\n struct Transaction {\n bytes32 scriptHash;//This is unique indentifier for a transaction\n uint256 value;\n uint256 lastModified;//Time at which transaction was last modified\n Status status;\n TransactionType transactionType;\n uint8 threshold;\n uint32 timeoutHours;\n address buyer;\n address seller;\n address tokenAddress;// Token address in case of token transfer\n address moderator;\n mapping(address=>bool) isOwner;//to keep track of owners/signers.\n mapping(address=>bool) voted;//to keep track of who all voted\n mapping(address=>bool) beneficiaries;//Benefeciaries of execution\n }\n\n mapping(bytes32 => Transaction) public transactions;\n\n uint256 public transactionCount = 0;\n\n //Contains mapping between each party and all of his transactions\n mapping(address => bytes32[])public partyVsTransaction;\n\n modifier transactionExists(bytes32 scriptHash) {\n require(\n transactions[scriptHash].value != 0, \"Transaction does not exists\"\n );\n _;\n }\n\n modifier transactionDoesNotExists (bytes32 scriptHash) {\n require(transactions[scriptHash].value == 0, \"Transaction exists\");\n _;\n }\n\n modifier inFundedState(bytes32 scriptHash) {\n require(\n transactions[scriptHash].status == Status.FUNDED, \"Transaction is either in dispute or released state\"\n );\n _;\n }\n\n modifier nonZeroAddress(address addressToCheck) {\n require(addressToCheck != address(0), \"Zero address passed\");\n _;\n }\n\n modifier checkTransactionType(\n bytes32 scriptHash,\n TransactionType transactionType\n )\n {\n require(\n transactions[scriptHash].transactionType == transactionType, \"Transaction type does not match\"\n );\n _;\n }\n\n modifier onlyBuyer(bytes32 scriptHash) {\n require(\n msg.sender == transactions[scriptHash].buyer, \"The initiator of the transaction is not buyer\"\n );\n _;\n }\n\n /**\n *@dev Add new transaction in the contract\n *@param buyer The buyer of the transaction\n *@param seller The seller of the listing associated with the transaction\n *@param moderator Moderator for this transaction\n *@param scriptHash keccak256 hash of the redeem script\n *@param threshold Minimum number of singatures required to released funds\n *@param timeoutHours Hours after which seller can release funds into his favour by signing transaction\n *@param uniqueId bytes20 unique id for the transaction, generated by ETH wallet\n *Redeem Script format will be following\n \n * scripthash-> keccak256(uniqueId, threshold, timeoutHours, buyer, seller, moderator)\n *Pass amount of the ethers to be put in escrow\n *Please keep in mind you will have to add moderator fees also in the value\n */\n function addTransaction(\n address buyer,\n address seller,\n address moderator,\n uint8 threshold,\n uint32 timeoutHours,\n bytes32 scriptHash,\n bytes20 uniqueId\n )\n external\n payable\n transactionDoesNotExists(scriptHash)\n nonZeroAddress(buyer)\n nonZeroAddress(seller)\n {\n _addTransaction(\n buyer,\n seller,\n moderator,\n threshold,\n timeoutHours,\n scriptHash,\n msg.value,\n uniqueId,\n TransactionType.ETHER,\n address(0)\n );\n \n emit Funded(scriptHash, msg.sender, msg.value);\n\n }\n\n /**\n *@dev Add new transaction in the contract\n *@param buyer The buyer of the transaction\n *@param seller The seller of the listing associated with the transaction\n *@param moderator Moderator for this transaction\n *@param scriptHash keccak256 hash of the redeem script\n *@param threshold Minimum number of singatures required to released funds\n *@param timeoutHours Hours after which seller can release funds into his favour by signing transaction\n *@param value Amount of tokens to be put in escrow\n *@param uniqueId bytes20 unique id for the transaction, generated by ETH wallet\n *@param tokenAddress Address of the token to be used\n *Redeem Script format will be following\n \n * scripthash-> keccak256(uniqueId, threshold, timeoutHours, buyer, seller, moderator, tokenAddress)\n *approve escrow contract to spend amount of token on your behalf\n *Please keep in mind you will have to add moderator fees also in the value\n */\n function addTokenTransaction(\n address buyer,\n address seller,\n address moderator,\n uint8 threshold,\n uint32 timeoutHours,\n bytes32 scriptHash,\n uint256 value,\n bytes20 uniqueId,\n address tokenAddress\n )\n external\n transactionDoesNotExists(scriptHash)\n nonZeroAddress(buyer)\n nonZeroAddress(seller)\n nonZeroAddress(tokenAddress)\n {\n\n _addTransaction(\n buyer,\n seller,\n moderator,\n threshold,\n timeoutHours,\n scriptHash,\n value,\n uniqueId,\n TransactionType.TOKEN,\n tokenAddress\n );\n\n ITokenContract token = ITokenContract(tokenAddress);\n\n require(\n token.transferFrom(msg.sender, this, value),\n \"Token transfer failed, maybe you did not approve escrow contract to spend on behalf of buyer\"\n );\n emit Funded(scriptHash, msg.sender, value);\n }\n\n /**\n * @dev Check whether given address was a beneficiary of transaction execution or not\n * @param scriptHash script hash of the transaction\n * @param beneficiary Beneficiary address to be checked\n */\n function checkBeneficiary(\n bytes32 scriptHash,\n address beneficiary\n )\n external\n view\n returns (bool check)\n {\n check = transactions[scriptHash].beneficiaries[beneficiary];\n }\n\n /**\n * @dev Check whether given party has voted or not\n * @param scriptHash script hash of the transaction\n * @param party Address of the party whose vote has to be checked\n * @return bool vote\n */\n function checkVote(\n bytes32 scriptHash,\n address party\n )\n external\n view\n returns (bool vote)\n {\n vote = transactions[scriptHash].voted[party];\n }\n\n /**\n *@dev Allows buyer of the transaction to add more funds(ether) in the transaction. This will help to cater scenarios wherein initially buyer missed to fund transaction as required\n *@param scriptHash script hash of the transaction\n * Only buyer of the transaction can invoke this method\n */\n function addFundsToTransaction(\n bytes32 scriptHash\n )\n external\n transactionExists(scriptHash)\n inFundedState(scriptHash)\n checkTransactionType(scriptHash, TransactionType.ETHER)\n onlyBuyer(scriptHash)\n payable\n {\n uint256 _value = msg.value;\n\n require(_value > 0, \"Value must be greater than zero.\");\n\n transactions[scriptHash].value = transactions[scriptHash].value\n .add(_value);\n transactions[scriptHash].lastModified = block.timestamp;\n\n emit FundAdded(scriptHash, msg.sender, _value);\n }\n\n /**\n *@dev Allows buyer of the transaction to add more funds(Tokens) in the transaction. This will help to cater scenarios wherein initially buyer missed to fund transaction as required\n *@param scriptHash script hash of the transaction\n */\n function addTokensToTransaction(\n bytes32 scriptHash,\n uint256 value\n )\n external\n transactionExists(scriptHash)\n inFundedState(scriptHash)\n checkTransactionType(scriptHash, TransactionType.TOKEN)\n onlyBuyer(scriptHash)\n {\n uint256 _value = value;\n\n require(_value > 0, \"Value must be greater than zero.\");\n\n ITokenContract token = ITokenContract(\n transactions[scriptHash].tokenAddress\n );\n\n require(\n token.transferFrom(transactions[scriptHash].buyer, this, value),\n \"Token transfer failed, maybe you did not approve escrow contract to spend on behalf of buyer\"\n );\n\n transactions[scriptHash].value = transactions[scriptHash].value\n .add(_value);\n transactions[scriptHash].lastModified = block.timestamp;\n\n emit FundAdded(scriptHash, msg.sender, _value);\n }\n\n /**\n *@dev Returns all transaction ids for a party\n *@param partyAddress Address of the party\n */\n function getAllTransactionsForParty(\n address partyAddress\n ) \n external \n view \n returns (bytes32[] scriptHashes) \n {\n return partyVsTransaction[partyAddress];\n }\n\n /**\n *@dev Allows one of the moderator to collect all the signature to solve dispute and submit it to this method.\n * If all the required signatures are collected and consensus has been reached than funds will be released to the voted party\n *@param sigV Array containing V component of all the signatures\n *@param sigR Array containing R component of all the signatures\n *@param signS Array containing S component of all the signatures\n *@param scriptHash script hash of the transaction\n *@param destinations address of the destination in whose favour dispute resolution is taking place. In case of split payments it will be address of the split payments contract\n *@param amounts value to send to each destination\n */\n function execute(\n uint8[] sigV,\n bytes32[] sigR,\n bytes32[] sigS,\n bytes32 scriptHash,\n address[] destinations,\n uint256[] amounts\n )\n external\n transactionExists(scriptHash)\n inFundedState(scriptHash)\n {\n require(\n destinations.length>0 && destinations.length == amounts.length, \"Length of destinations is incorrect.\"\n );\n\n verifyTransaction(\n sigV,\n sigR,\n sigS,\n scriptHash,\n destinations,\n amounts\n );\n\n transactions[scriptHash].status = Status.RELEASED;\n //Last modified timestamp modified, which will be used by rewards\n transactions[scriptHash].lastModified = block.timestamp;\n require(\n transferFunds(scriptHash, destinations, amounts) == transactions[scriptHash].value,\n \"Total value to be released must be equal to the transaction escrow value\"\n );\n \n emit Executed(scriptHash, destinations, amounts);\n }\n\n\n /**\n *@dev Method for calculating script hash. Calculation will depend upon the type of transaction\n * ETHER Type transaction-:\n * Script Hash- keccak256(uniqueId, threshold, timeoutHours, buyer, seller, moderator)\n * TOKEN Type transaction\n * Script Hash- keccak256(uniqueId, threshold, timeoutHours, buyer, seller, moderator, tokenAddress)\n * Client can use this method to verify whether it has calculated correct script hash or not\n */\n function calculateRedeemScriptHash(\n bytes20 uniqueId,\n uint8 threshold,\n uint32 timeoutHours,\n address buyer,\n address seller,\n address moderator,\n address tokenAddress\n )\n public\n view\n returns (bytes32 hash)\n {\n if (tokenAddress == address(0)) {\n hash = keccak256(\n abi.encodePacked(\n uniqueId,\n threshold,\n timeoutHours,\n buyer,\n seller,\n moderator,\n this\n )\n );\n } else {\n hash = keccak256(\n abi.encodePacked(\n uniqueId,\n threshold,\n timeoutHours,\n buyer,\n seller,\n moderator,\n this,\n tokenAddress\n )\n );\n }\n }\n\n /**\n * @dev This methods checks validity of transaction\n * 1. Verify Signatures\n * 2. Check if minimum number of signatures has been acquired\n * 3. If above condition is false, check if time lock is expired and the execution is signed by seller\n */\n function verifyTransaction(\n uint8[] sigV,\n bytes32[] sigR,\n bytes32[] sigS,\n bytes32 scriptHash,\n address[] destinations,\n uint256[] amounts\n )\n private\n {\n address lastRecovered = verifySignatures(\n sigV,\n sigR,\n sigS,\n scriptHash,\n destinations,\n amounts\n );\n\n bool timeLockExpired = isTimeLockExpired(\n transactions[scriptHash].timeoutHours,\n transactions[scriptHash].lastModified\n );\n\n //if Minimum number of signatures are not gathered and timelock has not expired or transaction was not signed by seller then revert\n if (\n sigV.length < transactions[scriptHash].threshold && (!timeLockExpired || lastRecovered != transactions[scriptHash].seller)\n )\n {\n revert(\"sigV.length is under the threshold.\");\n }\n\n }\n\n /**\n *@dev Private method to transfer funds to the destination addresses on the basis of transaction type\n */\n function transferFunds(\n bytes32 scriptHash,\n address[]destinations,\n uint256[]amounts\n )\n private\n returns (uint256 valueTransferred)\n {\n Transaction storage t = transactions[scriptHash];\n\n if (t.transactionType == TransactionType.ETHER) {\n for (uint256 i = 0; i < destinations.length; i++) {\n\n require(destinations[i] != address(0) && t.isOwner[destinations[i]], \"Not a valid destination\");\n require(amounts[i] > 0, \"Amount to be sent should be greater than 0\");\n\n valueTransferred = valueTransferred.add(amounts[i]);\n\n t.beneficiaries[destinations[i]] = true;//add receiver as beneficiary\n destinations[i].transfer(amounts[i]);//shall we use send instead of transfer to stop malicious actors from blocking funds?\n }\n\n } else if (t.transactionType == TransactionType.TOKEN) {\n\n ITokenContract token = ITokenContract(t.tokenAddress);\n\n for (uint256 j = 0; j 0, \"Amount to be sent should be greater than 0\");\n\n valueTransferred = valueTransferred.add(amounts[j]);\n t.beneficiaries[destinations[j]] = true;//add receiver as beneficiary\n\n require(token.transfer(destinations[j], amounts[j]), \"Token transfer failed.\");\n }\n } else {\n //transaction type is not supported. Ideally this state should never be reached\n revert(\"Transation type is not supported.\");\n }\n }\n\n //to check whether the signature are valid or not and if consensus was reached\n //returns the last address recovered, in case of timeout this must be the sender's address\n function verifySignatures(\n uint8[] sigV,\n bytes32[] sigR,\n bytes32[] sigS,\n bytes32 scriptHash,\n address[] destinations,\n uint256[]amounts\n )\n private\n returns (address lastAddress)\n {\n require(\n sigR.length == sigS.length && sigR.length == sigV.length, \n \"R,S,V length mismatch.\"\n );\n\n // Follows ERC191 signature scheme: https://github.com/ethereum/EIPs/issues/191\n bytes32 txHash = keccak256(\n abi.encodePacked(\n \"\\x19Ethereum Signed Message:\\n32\",\n keccak256(\n abi.encodePacked(\n byte(0x19),\n byte(0),\n this,\n destinations,\n amounts,\n scriptHash\n )\n )\n )\n );\n\n for (uint i = 0; i < sigR.length; i++) {\n\n address recovered = ecrecover(\n txHash,\n sigV[i],\n sigR[i],\n sigS[i]\n );\n\n require(\n transactions[scriptHash].isOwner[recovered], \n \"Invalid signature\"\n );\n require(\n !transactions[scriptHash].voted[recovered], \n \"Same signature sent twice\"\n );\n transactions[scriptHash].voted[recovered] = true;\n lastAddress = recovered;\n }\n }\n\n function isTimeLockExpired(\n uint32 timeoutHours,\n uint256 lastModified\n )\n private\n view\n returns (bool expired)\n {\n uint256 timeSince = now.sub(lastModified);\n expired = (\n timeoutHours == 0 ? false:timeSince > uint256(timeoutHours).mul(3600)\n );\n }\n\n /**\n * Private method to add transaction to reduce code redundancy\n */\n function _addTransaction(\n address buyer,\n address seller,\n address moderator,\n uint8 threshold,\n uint32 timeoutHours,\n bytes32 scriptHash,\n uint256 value,\n bytes20 uniqueId,\n TransactionType transactionType,\n address tokenAddress\n )\n private\n { \n require(buyer != seller, \"Buyer and seller are same\");\n\n //value passed should be greater than 0\n require(value > 0, \"Value passed is 0\");\n\n // For now allowing 0 moderator to support 1-2 multisig wallet\n require(\n threshold > 0 && threshold <= 3, \n \"Threshold cannot be greater than 3 and must be greater than 0\"\n );\n require(\n threshold == 1 || moderator != address(0),\n \"Either threshold should be 1 otherwise valid moderator address should be passed\"\n );\n\n require(\n scriptHash == calculateRedeemScriptHash(\n uniqueId,\n threshold,\n timeoutHours,\n buyer,\n seller,\n moderator,\n tokenAddress\n ), \n \"Calculated script hash does not match passed script hash.\"\n );\n\n transactions[scriptHash] = Transaction({\n buyer: buyer,\n seller: seller,\n moderator: moderator,\n value: value,\n status: Status.FUNDED,\n lastModified: block.timestamp,\n scriptHash: scriptHash,\n threshold: threshold,\n timeoutHours: timeoutHours,\n transactionType:transactionType,\n tokenAddress:tokenAddress\n });\n\n transactions[scriptHash].isOwner[seller] = true;\n transactions[scriptHash].isOwner[buyer] = true; \n\n //Check if buyer or seller are not passed as moderator\n require(\n !transactions[scriptHash].isOwner[moderator], \n \"Either buyer or seller is passed as moderator\"\n );\n\n transactions[scriptHash].isOwner[moderator] = true;\n \n\n transactionCount++;\n\n partyVsTransaction[buyer].push(scriptHash);\n partyVsTransaction[seller].push(scriptHash);\n }\n}\n", + "bytecode": "0x6080604052600060015534801561001557600080fd5b506142ab806100256000396000f3006080604052600436106100af576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806323b6fd3f146100b45780632d9ef96e1461016e57806346fbcdeb1461019257806357bced7614610287578063642f2eaf14610378578063b0550c66146104da578063b719e28014610543578063b77bf6001461057e578063be84ceaf146105a9578063e4ec8b0014610641578063f0786562146106ea575b600080fd5b61016c600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803560ff169060200190929190803563ffffffff169060200190929190803560001916906020019092919080356bffffffffffffffffffffffff19169060200190929190505050610753565b005b61019060048036038101908080356000191690602001909291905050506109a7565b005b34801561019e57600080fd5b5061026960048036038101908080356bffffffffffffffffffffffff19169060200190929190803560ff169060200190929190803563ffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610e02565b60405180826000191660001916815260200191505060405180910390f35b34801561029357600080fd5b50610376600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803560ff169060200190929190803563ffffffff16906020019092919080356000191690602001909291908035906020019092919080356bffffffffffffffffffffffff19169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506112ae565b005b34801561038457600080fd5b506103a76004803603810190808035600019169060200190929190505050611783565b604051808b81526020018a81526020018960018111156103c357fe5b60ff1681526020018860018111156103d757fe5b60ff1681526020018760ff1660ff1681526020018663ffffffff1663ffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019a505050505050505050505060405180910390f35b3480156104e657600080fd5b506105296004803603810190808035600019169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061188e565b604051808215151515815260200191505060405180910390f35b34801561054f57600080fd5b5061057c600480360381019080803560001916906020019092919080359060200190929190505050611900565b005b34801561058a57600080fd5b50610593611f71565b6040518082815260200191505060405180910390f35b3480156105b557600080fd5b506105ea600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611f77565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b8381101561062d578082015181840152602081019050610612565b505050509050019250505060405180910390f35b34801561064d57600080fd5b506106e86004803603810190808035906020019082018035906020019190919293919293908035906020019082018035906020019190919293919293908035906020019082018035906020019190919293919293908035600019169060200190929190803590602001908201803590602001919091929391929390803590602001908201803590602001919091929391929390505050612012565b005b3480156106f657600080fd5b506107396004803603810190808035600019169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506125fb565b604051808215151515815260200191505060405180910390f35b8160008060008360001916600019168152602001908152602001600020600001541415156107e9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f5472616e73616374696f6e20657869737400000000000000000000000000000081525060200191505060405180910390fd5b87600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415151561088f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f5a65726f2061646472657373207061737365640000000000000000000000000081525060200191505060405180910390fd5b87600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515610935576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f5a65726f2061646472657373207061737365640000000000000000000000000081525060200191505060405180910390fd5b6109488a8a8a8a8a8a348b60008061266d565b3373ffffffffffffffffffffffffffffffffffffffff1685600019167fce7089d0668849fb9ca29778c0cbf1e764d9efb048d81fd71fb34c94f26db368346040518082815260200191505060405180910390a350505050505050505050565b80600080600083600019166000191681526020019081526020016000206000015414151515610a3e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601a8152602001807f5472616e73616374696f6e20646f6573206e6f7420657869737400000000000081525060200191505060405180910390fd5b8160006001811115610a4c57fe5b600080836000191660001916815260200190815260200160002060020160009054906101000a900460ff166001811115610a8257fe5b141515610b1d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001807f5472616e73616374696f6e206973206e6f7420696e2046554e4445442073746181526020017f746500000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b826000806001811115610b2c57fe5b600080846000191660001916815260200190815260200160002060020160019054906101000a900460ff166001811115610b6257fe5b141515610bd7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f5472616e73616374696f6e207479706520646f6573206e6f74206d617463680081525060200191505060405180910390fd5b84600080826000191660001916815260200190815260200160002060020160079054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610cde576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602d8152602001807f54686520696e69746961746f72206f6620746865207472616e73616374696f6e81526020017f206973206e6f742062757965720000000000000000000000000000000000000081525060400191505060405180910390fd5b600034111515610d56576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f56616c7565206d7573742062652067726561746572207468616e207a65726f2e81525060200191505060405180910390fd5b610d8634600080896000191660001916815260200190815260200160002060000154612ff990919063ffffffff16565b6000808860001916600019168152602001908152602001600020600001819055503373ffffffffffffffffffffffffffffffffffffffff1686600019167ff66fd2ae9e24a6a24b02e1b5b7512ffde5149a4176085fc0298ae228c9b9d729346040518082815260200191505060405180910390a3505050505050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561104e578787878787873060405160200180886bffffffffffffffffffffffff19166bffffffffffffffffffffffff191681526014018760ff1660ff167f01000000000000000000000000000000000000000000000000000000000000000281526001018663ffffffff1663ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014019750505050505050506040516020818303038152906040526040518082805190602001908083835b60208310151561101a5780518252602082019150602081019050602083039250610ff5565b6001836020036101000a038019825116818451168082178552505050505050905001915050604051809103902090506112a3565b878787878787308860405160200180896bffffffffffffffffffffffff19166bffffffffffffffffffffffff191681526014018860ff1660ff167f01000000000000000000000000000000000000000000000000000000000000000281526001018763ffffffff1663ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c01000000000000000000000000028152601401985050505050505050506040516020818303038152906040526040518082805190602001908083835b602083101515611273578051825260208201915060208101905060208303925061124e565b6001836020036101000a038019825116818451168082178552505050505050905001915050604051809103902090505b979650505050505050565b6000846000806000836000191660001916815260200190815260200160002060000154141515611346576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f5472616e73616374696f6e20657869737400000000000000000000000000000081525060200191505060405180910390fd5b8a600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141515156113ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f5a65726f2061646472657373207061737365640000000000000000000000000081525060200191505060405180910390fd5b8a600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515611492576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f5a65726f2061646472657373207061737365640000000000000000000000000081525060200191505060405180910390fd5b84600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515611538576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f5a65726f2061646472657373207061737365640000000000000000000000000081525060200191505060405180910390fd5b61154b8e8e8e8e8e8e8e8e60018f61266d565b8594508473ffffffffffffffffffffffffffffffffffffffff166323b872dd33308b6040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b15801561162557600080fd5b505af1158015611639573d6000803e3d6000fd5b505050506040513d602081101561164f57600080fd5b81019080805190602001909291905050501515611720576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252605d8152602001807f546f6b656e207472616e73666572206661696c65642c206d6179626520796f7581526020017f20646964206e6f7420617070726f766520657363726f7720636f6e747261637481526020017f20746f207370656e64206f6e20626568616c66206f662073656e64657200000081525060600191505060405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff1689600019167fce7089d0668849fb9ca29778c0cbf1e764d9efb048d81fd71fb34c94f26db3688a6040518082815260200191505060405180910390a35050505050505050505050505050565b60006020528060005260406000206000915090508060000154908060010154908060020160009054906101000a900460ff16908060020160019054906101000a900460ff16908060020160029054906101000a900460ff16908060020160039054906101000a900463ffffffff16908060020160079054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060030160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060050160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508a565b6000806000846000191660001916815260200190815260200160002060080160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b600082600080600083600019166000191681526020019081526020016000206000015414151515611999576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601a8152602001807f5472616e73616374696f6e20646f6573206e6f7420657869737400000000000081525060200191505060405180910390fd5b83600060018111156119a757fe5b600080836000191660001916815260200190815260200160002060020160009054906101000a900460ff1660018111156119dd57fe5b141515611a78576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001807f5472616e73616374696f6e206973206e6f7420696e2046554e4445442073746181526020017f746500000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b846001806001811115611a8757fe5b600080846000191660001916815260200190815260200160002060020160019054906101000a900460ff166001811115611abd57fe5b141515611b32576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f5472616e73616374696f6e207479706520646f6573206e6f74206d617463680081525060200191505060405180910390fd5b86600080826000191660001916815260200190815260200160002060020160079054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611c39576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602d8152602001807f54686520696e69746961746f72206f6620746865207472616e73616374696f6e81526020017f206973206e6f742062757965720000000000000000000000000000000000000081525060400191505060405180910390fd5b600087111515611cb1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f56616c7565206d7573742062652067726561746572207468616e207a65726f2e81525060200191505060405180910390fd5b600080896000191660001916815260200190815260200160002060040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1695508573ffffffffffffffffffffffffffffffffffffffff166323b872dd33308a6040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b158015611dc857600080fd5b505af1158015611ddc573d6000803e3d6000fd5b505050506040513d6020811015611df257600080fd5b81019080805190602001909291905050501515611ec3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252605c8152602001807f546f6b656e207472616e73666572206661696c65642c206d6179626520796f7581526020017f20646964206e6f7420617070726f766520657363726f7720636f6e747261637481526020017f20746f207370656e64206f6e20626568616c66206f662062757965720000000081525060600191505060405180910390fd5b611ef3876000808b6000191660001916815260200190815260200160002060000154612ff990919063ffffffff16565b6000808a60001916600019168152602001908152602001600020600001819055503373ffffffffffffffffffffffffffffffffffffffff1688600019167ff66fd2ae9e24a6a24b02e1b5b7512ffde5149a4176085fc0298ae228c9b9d729896040518082815260200191505060405180910390a35050505050505050565b60015481565b6060600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002080548060200260200160405190810160405280929190818152602001828054801561200657602002820191906000526020600020905b81546000191681526020019060010190808311611fee575b50505050509050919050565b846000806000836000191660001916815260200190815260200160002060000154141515156120a9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601a8152602001807f5472616e73616374696f6e20646f6573206e6f7420657869737400000000000081525060200191505060405180910390fd5b85600060018111156120b757fe5b600080836000191660001916815260200190815260200160002060020160009054906101000a900460ff1660018111156120ed57fe5b141515612188576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001807f5472616e73616374696f6e206973206e6f7420696e2046554e4445442073746181526020017f746500000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600086869050111515612229576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602d8152602001807f4e756d626572206f662064657374696e6174696f6e73206d757374206265206781526020017f726561746572207468616e20300000000000000000000000000000000000000081525060400191505060405180910390fd5b83839050868690501415156122cc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260378152602001807f4e756d626572206f662064657374696e6174696f6e73206d757374206d61746381526020017f68206e756d626572206f662076616c7565732073656e7400000000000000000081525060400191505060405180910390fd5b6123c58d8d808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050508c8c808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050508b8b808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050508a8a8a8080602002602001604051908101604052809392919081815260200183836020028082843782019150505050505089898080602002602001604051908101604052809392919081815260200183836020028082843782019150505050505061301a565b6001600080896000191660001916815260200190815260200160002060020160006101000a81548160ff021916908360018111156123ff57fe5b0217905550426000808960001916600019168152602001908152602001600020600101819055506000808860001916600019168152602001908152602001600020600001546124ad888888808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050508787808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050506131fb565b14151561256e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260488152602001807f546f74616c2076616c756520746f2062652072656c6561736564206d7573742081526020017f626520657175616c20746f20746865207472616e73616374696f6e206573637281526020017f6f772076616c756500000000000000000000000000000000000000000000000081525060600191505060405180910390fd5b86600019167f688e2a1b34445bcd47b0e11ba2a9c8c4d850a1831b64199b59d1c70e29701545878787876040518080602001806020018381038352878782818152602001925060200280828437820191505083810382528585828181526020019250602002808284378201915050965050505050505060405180910390a250505050505050505050505050565b6000806000846000191660001916815260200190815260200160002060070160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b8873ffffffffffffffffffffffffffffffffffffffff168a73ffffffffffffffffffffffffffffffffffffffff1614151515612711576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f427579657220616e642073656c6c6572206172652073616d650000000000000081525060200191505060405180910390fd5b600084111515612789576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f56616c756520706173736564206973203000000000000000000000000000000081525060200191505060405180910390fd5b60008760ff161180156127a0575060038760ff1611155b151561283a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603d8152602001807f5468726573686f6c642063616e6e6f742062652067726561746572207468616e81526020017f203320616e64206d7573742062652067726561746572207468616e203000000081525060400191505060405180910390fd5b60018760ff1614806128795750600073ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff1614155b1515612939576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260488152602001807f456974686572207468726573686f6c642073686f756c642062652031206f722081526020017f76616c6964206d6f64657261746f7220616464726573732073686f756c64206281526020017f652070617373656400000000000000000000000000000000000000000000000081525060600191505060405180910390fd5b6129488388888d8d8d87610e02565b6000191685600019161415156129ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260398152602001807f43616c63756c6174656420736372697074206861736820646f6573206e6f742081526020017f6d61746368207061737365642073637269707420686173682e0000000000000081525060400191505060405180910390fd5b6101406040519081016040528085815260200142815260200160006001811115612a1257fe5b8152602001836001811115612a2357fe5b81526020018860ff1681526020018763ffffffff1681526020018b73ffffffffffffffffffffffffffffffffffffffff1681526020018a73ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1681526020018973ffffffffffffffffffffffffffffffffffffffff168152506000808760001916600019168152602001908152602001600020600082015181600001556020820151816001015560408201518160020160006101000a81548160ff02191690836001811115612afd57fe5b021790555060608201518160020160016101000a81548160ff02191690836001811115612b2657fe5b021790555060808201518160020160026101000a81548160ff021916908360ff16021790555060a08201518160020160036101000a81548163ffffffff021916908363ffffffff16021790555060c08201518160020160076101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060e08201518160030160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506101008201518160040160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506101208201518160050160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055509050506001600080876000191660001916815260200190815260200160002060060160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600080876000191660001916815260200190815260200160002060060160008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600080866000191660001916815260200190815260200160002060060160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151515612e7d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602d8152602001807f456974686572206275796572206f722073656c6c65722069732070617373656481526020017f206173206d6f64657261746f720000000000000000000000000000000000000081525060400191505060405180910390fd5b60018760ff161115612efd576001600080876000191660001916815260200190815260200160002060060160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b600160008154809291906001019190505550600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020859080600181540180825580915050906001820390600052602060002001600090919290919091509060001916905550600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002085908060018154018082558091505090600182039060005260206000200160009091929091909150906000191690555050505050505050505050565b600080828401905083811015151561301057600080fd5b8091505092915050565b60008061302b888888888888613b53565b9150613081600080876000191660001916815260200190815260200160002060020160039054906101000a900463ffffffff166000808860001916600019168152602001908152602001600020600101546141cc565b9050600080866000191660001916815260200190815260200160002060020160029054906101000a900460ff1660ff16885110801561313257508015806131315750600080866000191660001916815260200190815260200160002060030160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b5b156131f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260588152602001807f4d696e696d756d206e756d626572206f66207369676e6174757265732061726581526020017f206e6f7420636f6c6c656374656420616e642074696d65206c6f636b2065787081526020017f69727920636f6e646974696f6e73206e6f74206d65742121000000000000000081525060600191505060405180910390fd5b5050505050505050565b6000806000806000806000808a600019166000191681526020019081526020016000209450600093506000600181111561323157fe5b8560020160019054906101000a900460ff16600181111561324e57fe5b141561361d57600092505b875183101561361857600073ffffffffffffffffffffffffffffffffffffffff16888481518110151561328857fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1614151515613344576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260328152602001807f7a65726f2061646472657373206973206e6f7420616c6c6f776564206173206481526020017f657374696e6174696f6e2061646472657373000000000000000000000000000081525060400191505060405180910390fd5b846006016000898581518110151561335857fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515613444576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f44657374696e6174696f6e2061646472657373206973206e6f74206f6e65206f81526020017f6620746865206f776e657273000000000000000000000000000000000000000081525060400191505060405180910390fd5b6000878481518110151561345457fe5b906020019060200201511115156134f9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a8152602001807f416d6f756e7420746f2062652073656e742073686f756c64206265206772656181526020017f746572207468616e20300000000000000000000000000000000000000000000081525060400191505060405180910390fd5b613523878481518110151561350a57fe5b9060200190602002015185612ff990919063ffffffff16565b935060018560080160008a8681518110151561353b57fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555087838151811015156135a457fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff166108fc88858151811015156135d557fe5b906020019060200201519081150290604051600060405180830381858888f1935050505015801561360a573d6000803e3d6000fd5b508280600101935050613259565b613b44565b60018081111561362957fe5b8560020160019054906101000a900460ff16600181111561364657fe5b1415613b43578460040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169150600090505b8751811015613b4257600073ffffffffffffffffffffffffffffffffffffffff1688828151811015156136a757fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1614151515613763576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260328152602001807f7a65726f2061646472657373206973206e6f7420616c6c6f776564206173206481526020017f657374696e6174696f6e2061646472657373000000000000000000000000000081525060400191505060405180910390fd5b846006016000898381518110151561377757fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515613863576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f44657374696e6174696f6e2061646472657373206973206e6f74206f6e65206f81526020017f6620746865206f776e657273000000000000000000000000000000000000000081525060400191505060405180910390fd5b6000878281518110151561387357fe5b90602001906020020151111515613918576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a8152602001807f416d6f756e7420746f2062652073656e742073686f756c64206265206772656181526020017f746572207468616e20300000000000000000000000000000000000000000000081525060400191505060405180910390fd5b613942878281518110151561392957fe5b9060200190602002015185612ff990919063ffffffff16565b935060018560080160008a8481518110151561395a57fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb89838151811015156139df57fe5b9060200190602002015189848151811015156139f757fe5b906020019060200201516040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015613a8657600080fd5b505af1158015613a9a573d6000803e3d6000fd5b505050506040513d6020811015613ab057600080fd5b81019080805190602001909291905050501515613b35576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f546f6b656e207472616e73666572206661696c65642e0000000000000000000081525060200191505060405180910390fd5b8080600101915050613678565b5b5b83955050505050509392505050565b600080600080600088518a51148015613b6d57508a518a51145b1515613be1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f522c532c56206c656e677468206d69736d617463682e0000000000000000000081525060200191505060405180910390fd5b60197f01000000000000000000000000000000000000000000000000000000000000000260007f0100000000000000000000000000000000000000000000000000000000000000023089898c60405160200180877effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152600101867effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526001018573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c01000000000000000000000000028152601401848051906020019060200280838360005b83811015613d35578082015181840152602081019050613d1a565b50505050905001838051906020019060200280838360005b83811015613d68578082015181840152602081019050613d4d565b50505050905001826000191660001916815260200196505050505050506040516020818303038152906040526040518082805190602001908083835b602083101515613dc95780518252602082019150602081019050602083039250613da4565b6001836020036101000a038019825116818451168082178552505050505050905001915050604051809103902060405160200180807f19457468657265756d205369676e6564204d6573736167653a0a333200000000815250601c0182600019166000191681526020019150506040516020818303038152906040526040518082805190602001908083835b602083101515613e7a5780518252602082019150602081019050602083039250613e55565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390209250600091505b89518210156141bb576001838c84815181101515613ec857fe5b906020019060200201518c85815181101515613ee057fe5b906020019060200201518c86815181101515613ef857fe5b90602001906020020151604051600081526020016040526040518085600019166000191681526020018460ff1660ff1681526020018360001916600019168152602001826000191660001916815260200194505050505060206040516020810390808403906000865af1158015613f73573d6000803e3d6000fd5b505050602060405103519050600080896000191660001916815260200190815260200160002060060160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151561405b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f496e76616c6964207369676e617475726500000000000000000000000000000081525060200191505060405180910390fd5b600080896000191660001916815260200190815260200160002060070160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151515614138576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f53616d65207369676e61747572652073656e742074776963650000000000000081525060200191505060405180910390fd5b60016000808a6000191660001916815260200190815260200160002060070160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508093508180600101925050613eae565b839450505050509695505050505050565b6000806141e2834261422090919063ffffffff16565b905060008463ffffffff16146142145761420d610e108563ffffffff1661424190919063ffffffff16565b8111614217565b60005b91505092915050565b60008083831115151561423257600080fd5b82840390508091505092915050565b60008060008414156142565760009150614278565b828402905082848281151561426757fe5b0414151561427457600080fd5b8091505b50929150505600a165627a7a723058205874ebc0f046d887d84c5cc9698020804c01fbbce14192c6a75b0585b1ffbe520029", + "deployedBytecode": "0x6080604052600436106100af576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806323b6fd3f146100b45780632d9ef96e1461016e57806346fbcdeb1461019257806357bced7614610287578063642f2eaf14610378578063b0550c66146104da578063b719e28014610543578063b77bf6001461057e578063be84ceaf146105a9578063e4ec8b0014610641578063f0786562146106ea575b600080fd5b61016c600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803560ff169060200190929190803563ffffffff169060200190929190803560001916906020019092919080356bffffffffffffffffffffffff19169060200190929190505050610753565b005b61019060048036038101908080356000191690602001909291905050506109a7565b005b34801561019e57600080fd5b5061026960048036038101908080356bffffffffffffffffffffffff19169060200190929190803560ff169060200190929190803563ffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610e02565b60405180826000191660001916815260200191505060405180910390f35b34801561029357600080fd5b50610376600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803560ff169060200190929190803563ffffffff16906020019092919080356000191690602001909291908035906020019092919080356bffffffffffffffffffffffff19169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506112ae565b005b34801561038457600080fd5b506103a76004803603810190808035600019169060200190929190505050611783565b604051808b81526020018a81526020018960018111156103c357fe5b60ff1681526020018860018111156103d757fe5b60ff1681526020018760ff1660ff1681526020018663ffffffff1663ffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019a505050505050505050505060405180910390f35b3480156104e657600080fd5b506105296004803603810190808035600019169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061188e565b604051808215151515815260200191505060405180910390f35b34801561054f57600080fd5b5061057c600480360381019080803560001916906020019092919080359060200190929190505050611900565b005b34801561058a57600080fd5b50610593611f71565b6040518082815260200191505060405180910390f35b3480156105b557600080fd5b506105ea600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611f77565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b8381101561062d578082015181840152602081019050610612565b505050509050019250505060405180910390f35b34801561064d57600080fd5b506106e86004803603810190808035906020019082018035906020019190919293919293908035906020019082018035906020019190919293919293908035906020019082018035906020019190919293919293908035600019169060200190929190803590602001908201803590602001919091929391929390803590602001908201803590602001919091929391929390505050612012565b005b3480156106f657600080fd5b506107396004803603810190808035600019169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506125fb565b604051808215151515815260200191505060405180910390f35b8160008060008360001916600019168152602001908152602001600020600001541415156107e9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f5472616e73616374696f6e20657869737400000000000000000000000000000081525060200191505060405180910390fd5b87600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415151561088f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f5a65726f2061646472657373207061737365640000000000000000000000000081525060200191505060405180910390fd5b87600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515610935576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f5a65726f2061646472657373207061737365640000000000000000000000000081525060200191505060405180910390fd5b6109488a8a8a8a8a8a348b60008061266d565b3373ffffffffffffffffffffffffffffffffffffffff1685600019167fce7089d0668849fb9ca29778c0cbf1e764d9efb048d81fd71fb34c94f26db368346040518082815260200191505060405180910390a350505050505050505050565b80600080600083600019166000191681526020019081526020016000206000015414151515610a3e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601a8152602001807f5472616e73616374696f6e20646f6573206e6f7420657869737400000000000081525060200191505060405180910390fd5b8160006001811115610a4c57fe5b600080836000191660001916815260200190815260200160002060020160009054906101000a900460ff166001811115610a8257fe5b141515610b1d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001807f5472616e73616374696f6e206973206e6f7420696e2046554e4445442073746181526020017f746500000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b826000806001811115610b2c57fe5b600080846000191660001916815260200190815260200160002060020160019054906101000a900460ff166001811115610b6257fe5b141515610bd7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f5472616e73616374696f6e207479706520646f6573206e6f74206d617463680081525060200191505060405180910390fd5b84600080826000191660001916815260200190815260200160002060020160079054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610cde576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602d8152602001807f54686520696e69746961746f72206f6620746865207472616e73616374696f6e81526020017f206973206e6f742062757965720000000000000000000000000000000000000081525060400191505060405180910390fd5b600034111515610d56576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f56616c7565206d7573742062652067726561746572207468616e207a65726f2e81525060200191505060405180910390fd5b610d8634600080896000191660001916815260200190815260200160002060000154612ff990919063ffffffff16565b6000808860001916600019168152602001908152602001600020600001819055503373ffffffffffffffffffffffffffffffffffffffff1686600019167ff66fd2ae9e24a6a24b02e1b5b7512ffde5149a4176085fc0298ae228c9b9d729346040518082815260200191505060405180910390a3505050505050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561104e578787878787873060405160200180886bffffffffffffffffffffffff19166bffffffffffffffffffffffff191681526014018760ff1660ff167f01000000000000000000000000000000000000000000000000000000000000000281526001018663ffffffff1663ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014019750505050505050506040516020818303038152906040526040518082805190602001908083835b60208310151561101a5780518252602082019150602081019050602083039250610ff5565b6001836020036101000a038019825116818451168082178552505050505050905001915050604051809103902090506112a3565b878787878787308860405160200180896bffffffffffffffffffffffff19166bffffffffffffffffffffffff191681526014018860ff1660ff167f01000000000000000000000000000000000000000000000000000000000000000281526001018763ffffffff1663ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c01000000000000000000000000028152601401985050505050505050506040516020818303038152906040526040518082805190602001908083835b602083101515611273578051825260208201915060208101905060208303925061124e565b6001836020036101000a038019825116818451168082178552505050505050905001915050604051809103902090505b979650505050505050565b6000846000806000836000191660001916815260200190815260200160002060000154141515611346576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f5472616e73616374696f6e20657869737400000000000000000000000000000081525060200191505060405180910390fd5b8a600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141515156113ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f5a65726f2061646472657373207061737365640000000000000000000000000081525060200191505060405180910390fd5b8a600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515611492576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f5a65726f2061646472657373207061737365640000000000000000000000000081525060200191505060405180910390fd5b84600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515611538576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f5a65726f2061646472657373207061737365640000000000000000000000000081525060200191505060405180910390fd5b61154b8e8e8e8e8e8e8e8e60018f61266d565b8594508473ffffffffffffffffffffffffffffffffffffffff166323b872dd33308b6040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b15801561162557600080fd5b505af1158015611639573d6000803e3d6000fd5b505050506040513d602081101561164f57600080fd5b81019080805190602001909291905050501515611720576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252605d8152602001807f546f6b656e207472616e73666572206661696c65642c206d6179626520796f7581526020017f20646964206e6f7420617070726f766520657363726f7720636f6e747261637481526020017f20746f207370656e64206f6e20626568616c66206f662073656e64657200000081525060600191505060405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff1689600019167fce7089d0668849fb9ca29778c0cbf1e764d9efb048d81fd71fb34c94f26db3688a6040518082815260200191505060405180910390a35050505050505050505050505050565b60006020528060005260406000206000915090508060000154908060010154908060020160009054906101000a900460ff16908060020160019054906101000a900460ff16908060020160029054906101000a900460ff16908060020160039054906101000a900463ffffffff16908060020160079054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060030160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060050160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508a565b6000806000846000191660001916815260200190815260200160002060080160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b600082600080600083600019166000191681526020019081526020016000206000015414151515611999576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601a8152602001807f5472616e73616374696f6e20646f6573206e6f7420657869737400000000000081525060200191505060405180910390fd5b83600060018111156119a757fe5b600080836000191660001916815260200190815260200160002060020160009054906101000a900460ff1660018111156119dd57fe5b141515611a78576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001807f5472616e73616374696f6e206973206e6f7420696e2046554e4445442073746181526020017f746500000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b846001806001811115611a8757fe5b600080846000191660001916815260200190815260200160002060020160019054906101000a900460ff166001811115611abd57fe5b141515611b32576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f5472616e73616374696f6e207479706520646f6573206e6f74206d617463680081525060200191505060405180910390fd5b86600080826000191660001916815260200190815260200160002060020160079054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611c39576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602d8152602001807f54686520696e69746961746f72206f6620746865207472616e73616374696f6e81526020017f206973206e6f742062757965720000000000000000000000000000000000000081525060400191505060405180910390fd5b600087111515611cb1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f56616c7565206d7573742062652067726561746572207468616e207a65726f2e81525060200191505060405180910390fd5b600080896000191660001916815260200190815260200160002060040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1695508573ffffffffffffffffffffffffffffffffffffffff166323b872dd33308a6040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b158015611dc857600080fd5b505af1158015611ddc573d6000803e3d6000fd5b505050506040513d6020811015611df257600080fd5b81019080805190602001909291905050501515611ec3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252605c8152602001807f546f6b656e207472616e73666572206661696c65642c206d6179626520796f7581526020017f20646964206e6f7420617070726f766520657363726f7720636f6e747261637481526020017f20746f207370656e64206f6e20626568616c66206f662062757965720000000081525060600191505060405180910390fd5b611ef3876000808b6000191660001916815260200190815260200160002060000154612ff990919063ffffffff16565b6000808a60001916600019168152602001908152602001600020600001819055503373ffffffffffffffffffffffffffffffffffffffff1688600019167ff66fd2ae9e24a6a24b02e1b5b7512ffde5149a4176085fc0298ae228c9b9d729896040518082815260200191505060405180910390a35050505050505050565b60015481565b6060600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002080548060200260200160405190810160405280929190818152602001828054801561200657602002820191906000526020600020905b81546000191681526020019060010190808311611fee575b50505050509050919050565b846000806000836000191660001916815260200190815260200160002060000154141515156120a9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601a8152602001807f5472616e73616374696f6e20646f6573206e6f7420657869737400000000000081525060200191505060405180910390fd5b85600060018111156120b757fe5b600080836000191660001916815260200190815260200160002060020160009054906101000a900460ff1660018111156120ed57fe5b141515612188576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001807f5472616e73616374696f6e206973206e6f7420696e2046554e4445442073746181526020017f746500000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600086869050111515612229576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602d8152602001807f4e756d626572206f662064657374696e6174696f6e73206d757374206265206781526020017f726561746572207468616e20300000000000000000000000000000000000000081525060400191505060405180910390fd5b83839050868690501415156122cc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260378152602001807f4e756d626572206f662064657374696e6174696f6e73206d757374206d61746381526020017f68206e756d626572206f662076616c7565732073656e7400000000000000000081525060400191505060405180910390fd5b6123c58d8d808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050508c8c808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050508b8b808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050508a8a8a8080602002602001604051908101604052809392919081815260200183836020028082843782019150505050505089898080602002602001604051908101604052809392919081815260200183836020028082843782019150505050505061301a565b6001600080896000191660001916815260200190815260200160002060020160006101000a81548160ff021916908360018111156123ff57fe5b0217905550426000808960001916600019168152602001908152602001600020600101819055506000808860001916600019168152602001908152602001600020600001546124ad888888808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050508787808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050506131fb565b14151561256e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260488152602001807f546f74616c2076616c756520746f2062652072656c6561736564206d7573742081526020017f626520657175616c20746f20746865207472616e73616374696f6e206573637281526020017f6f772076616c756500000000000000000000000000000000000000000000000081525060600191505060405180910390fd5b86600019167f688e2a1b34445bcd47b0e11ba2a9c8c4d850a1831b64199b59d1c70e29701545878787876040518080602001806020018381038352878782818152602001925060200280828437820191505083810382528585828181526020019250602002808284378201915050965050505050505060405180910390a250505050505050505050505050565b6000806000846000191660001916815260200190815260200160002060070160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b8873ffffffffffffffffffffffffffffffffffffffff168a73ffffffffffffffffffffffffffffffffffffffff1614151515612711576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f427579657220616e642073656c6c6572206172652073616d650000000000000081525060200191505060405180910390fd5b600084111515612789576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f56616c756520706173736564206973203000000000000000000000000000000081525060200191505060405180910390fd5b60008760ff161180156127a0575060038760ff1611155b151561283a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603d8152602001807f5468726573686f6c642063616e6e6f742062652067726561746572207468616e81526020017f203320616e64206d7573742062652067726561746572207468616e203000000081525060400191505060405180910390fd5b60018760ff1614806128795750600073ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff1614155b1515612939576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260488152602001807f456974686572207468726573686f6c642073686f756c642062652031206f722081526020017f76616c6964206d6f64657261746f7220616464726573732073686f756c64206281526020017f652070617373656400000000000000000000000000000000000000000000000081525060600191505060405180910390fd5b6129488388888d8d8d87610e02565b6000191685600019161415156129ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260398152602001807f43616c63756c6174656420736372697074206861736820646f6573206e6f742081526020017f6d61746368207061737365642073637269707420686173682e0000000000000081525060400191505060405180910390fd5b6101406040519081016040528085815260200142815260200160006001811115612a1257fe5b8152602001836001811115612a2357fe5b81526020018860ff1681526020018763ffffffff1681526020018b73ffffffffffffffffffffffffffffffffffffffff1681526020018a73ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1681526020018973ffffffffffffffffffffffffffffffffffffffff168152506000808760001916600019168152602001908152602001600020600082015181600001556020820151816001015560408201518160020160006101000a81548160ff02191690836001811115612afd57fe5b021790555060608201518160020160016101000a81548160ff02191690836001811115612b2657fe5b021790555060808201518160020160026101000a81548160ff021916908360ff16021790555060a08201518160020160036101000a81548163ffffffff021916908363ffffffff16021790555060c08201518160020160076101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060e08201518160030160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506101008201518160040160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506101208201518160050160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055509050506001600080876000191660001916815260200190815260200160002060060160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600080876000191660001916815260200190815260200160002060060160008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600080866000191660001916815260200190815260200160002060060160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151515612e7d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602d8152602001807f456974686572206275796572206f722073656c6c65722069732070617373656481526020017f206173206d6f64657261746f720000000000000000000000000000000000000081525060400191505060405180910390fd5b60018760ff161115612efd576001600080876000191660001916815260200190815260200160002060060160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b600160008154809291906001019190505550600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020859080600181540180825580915050906001820390600052602060002001600090919290919091509060001916905550600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002085908060018154018082558091505090600182039060005260206000200160009091929091909150906000191690555050505050505050505050565b600080828401905083811015151561301057600080fd5b8091505092915050565b60008061302b888888888888613b53565b9150613081600080876000191660001916815260200190815260200160002060020160039054906101000a900463ffffffff166000808860001916600019168152602001908152602001600020600101546141cc565b9050600080866000191660001916815260200190815260200160002060020160029054906101000a900460ff1660ff16885110801561313257508015806131315750600080866000191660001916815260200190815260200160002060030160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b5b156131f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260588152602001807f4d696e696d756d206e756d626572206f66207369676e6174757265732061726581526020017f206e6f7420636f6c6c656374656420616e642074696d65206c6f636b2065787081526020017f69727920636f6e646974696f6e73206e6f74206d65742121000000000000000081525060600191505060405180910390fd5b5050505050505050565b6000806000806000806000808a600019166000191681526020019081526020016000209450600093506000600181111561323157fe5b8560020160019054906101000a900460ff16600181111561324e57fe5b141561361d57600092505b875183101561361857600073ffffffffffffffffffffffffffffffffffffffff16888481518110151561328857fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1614151515613344576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260328152602001807f7a65726f2061646472657373206973206e6f7420616c6c6f776564206173206481526020017f657374696e6174696f6e2061646472657373000000000000000000000000000081525060400191505060405180910390fd5b846006016000898581518110151561335857fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515613444576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f44657374696e6174696f6e2061646472657373206973206e6f74206f6e65206f81526020017f6620746865206f776e657273000000000000000000000000000000000000000081525060400191505060405180910390fd5b6000878481518110151561345457fe5b906020019060200201511115156134f9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a8152602001807f416d6f756e7420746f2062652073656e742073686f756c64206265206772656181526020017f746572207468616e20300000000000000000000000000000000000000000000081525060400191505060405180910390fd5b613523878481518110151561350a57fe5b9060200190602002015185612ff990919063ffffffff16565b935060018560080160008a8681518110151561353b57fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555087838151811015156135a457fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff166108fc88858151811015156135d557fe5b906020019060200201519081150290604051600060405180830381858888f1935050505015801561360a573d6000803e3d6000fd5b508280600101935050613259565b613b44565b60018081111561362957fe5b8560020160019054906101000a900460ff16600181111561364657fe5b1415613b43578460040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169150600090505b8751811015613b4257600073ffffffffffffffffffffffffffffffffffffffff1688828151811015156136a757fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1614151515613763576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260328152602001807f7a65726f2061646472657373206973206e6f7420616c6c6f776564206173206481526020017f657374696e6174696f6e2061646472657373000000000000000000000000000081525060400191505060405180910390fd5b846006016000898381518110151561377757fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515613863576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f44657374696e6174696f6e2061646472657373206973206e6f74206f6e65206f81526020017f6620746865206f776e657273000000000000000000000000000000000000000081525060400191505060405180910390fd5b6000878281518110151561387357fe5b90602001906020020151111515613918576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a8152602001807f416d6f756e7420746f2062652073656e742073686f756c64206265206772656181526020017f746572207468616e20300000000000000000000000000000000000000000000081525060400191505060405180910390fd5b613942878281518110151561392957fe5b9060200190602002015185612ff990919063ffffffff16565b935060018560080160008a8481518110151561395a57fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb89838151811015156139df57fe5b9060200190602002015189848151811015156139f757fe5b906020019060200201516040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015613a8657600080fd5b505af1158015613a9a573d6000803e3d6000fd5b505050506040513d6020811015613ab057600080fd5b81019080805190602001909291905050501515613b35576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f546f6b656e207472616e73666572206661696c65642e0000000000000000000081525060200191505060405180910390fd5b8080600101915050613678565b5b5b83955050505050509392505050565b600080600080600088518a51148015613b6d57508a518a51145b1515613be1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f522c532c56206c656e677468206d69736d617463682e0000000000000000000081525060200191505060405180910390fd5b60197f01000000000000000000000000000000000000000000000000000000000000000260007f0100000000000000000000000000000000000000000000000000000000000000023089898c60405160200180877effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152600101867effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526001018573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c01000000000000000000000000028152601401848051906020019060200280838360005b83811015613d35578082015181840152602081019050613d1a565b50505050905001838051906020019060200280838360005b83811015613d68578082015181840152602081019050613d4d565b50505050905001826000191660001916815260200196505050505050506040516020818303038152906040526040518082805190602001908083835b602083101515613dc95780518252602082019150602081019050602083039250613da4565b6001836020036101000a038019825116818451168082178552505050505050905001915050604051809103902060405160200180807f19457468657265756d205369676e6564204d6573736167653a0a333200000000815250601c0182600019166000191681526020019150506040516020818303038152906040526040518082805190602001908083835b602083101515613e7a5780518252602082019150602081019050602083039250613e55565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390209250600091505b89518210156141bb576001838c84815181101515613ec857fe5b906020019060200201518c85815181101515613ee057fe5b906020019060200201518c86815181101515613ef857fe5b90602001906020020151604051600081526020016040526040518085600019166000191681526020018460ff1660ff1681526020018360001916600019168152602001826000191660001916815260200194505050505060206040516020810390808403906000865af1158015613f73573d6000803e3d6000fd5b505050602060405103519050600080896000191660001916815260200190815260200160002060060160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151561405b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f496e76616c6964207369676e617475726500000000000000000000000000000081525060200191505060405180910390fd5b600080896000191660001916815260200190815260200160002060070160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151515614138576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f53616d65207369676e61747572652073656e742074776963650000000000000081525060200191505060405180910390fd5b60016000808a6000191660001916815260200190815260200160002060070160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508093508180600101925050613eae565b839450505050509695505050505050565b6000806141e2834261422090919063ffffffff16565b905060008463ffffffff16146142145761420d610e108563ffffffff1661424190919063ffffffff16565b8111614217565b60005b91505092915050565b60008083831115151561423257600080fd5b82840390508091505092915050565b60008060008414156142565760009150614278565b828402905082848281151561426757fe5b0414151561427457600080fd5b8091505b50929150505600a165627a7a723058205874ebc0f046d887d84c5cc9698020804c01fbbce14192c6a75b0585b1ffbe520029", + "sourceMap": "605:20413:0:-;;;1800:1;1766:35;;605:20413;8:9:-1;5:2;;;30:1;27;20:12;5:2;605:20413:0;;;;;;;", + "deployedSourceMap": "605:20413:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3861:701;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7763:514;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12051:1017;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12051:1017:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5510:1030;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5510:1030:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1708:51;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1708:51:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6781:221;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6781:221:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8605:812;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8605:812:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1766:35;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1766:35:0;;;;;;;;;;;;;;;;;;;;;;;9534:194;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9534:194:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;9534:194:0;;;;;;;;;;;;;;;;;10326:1204;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10326:1204:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7242:194;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7242:194:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3861:701;4138:10;2224:1;2190:12;:24;2203:10;2190:24;;;;;;;;;;;;;;;;;:30;;;:35;2182:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4173:5;2557:1;2531:28;;:14;:28;;;;2523:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4203:6;2557:1;2531:28;;:14;:28;;;;2523:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4225:264;4254:5;4273:6;4293:9;4316;4339:12;4365:10;4389:9;4412:8;4434:21;4477:1;4225:15;:264::i;:::-;4532:10;4513:41;;4520:10;4513:41;;;;4544:9;4513:41;;;;;;;;;;;;;;;;;;2593:1;2257;3861:701;;;;;;;;:::o;7763:514::-;7886:10;2054:1;2020:12;:24;2033:10;2020:24;;;;;;;;;;;;;;;;;:30;;;:35;;1999:96;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7920:10;2380:13;2345:48;;;;;;;;:12;:24;2358:10;2345:24;;;;;;;;;;;;;;;;;:31;;;;;;;;;;;;:48;;;;;;;;;2324:117;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7961:10;7973:21;2791:15;2747:59;;;;;;;;:12;:24;2760:10;2747:24;;;;;;;;;;;;;;;;;:40;;;;;;;;;;;;:59;;;;;;;;;2726:125;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8014:10;2959:12;:24;2972:10;2959:24;;;;;;;;;;;;;;;;;:30;;;;;;;;;;;;2945:44;;:10;:44;;;2924:124;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8070:1;8058:9;:13;8050:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8152;8200:9;8152:12;:24;8165:10;8152:24;;;;;;;;;;;;;;;;;:30;;;:47;;:58;;;;:::i;:::-;8119:12;:24;8132:10;8119:24;;;;;;;;;;;;;;;;;:30;;:91;;;;8248:10;8226:44;;8236:10;8226:44;;;;8260:9;8226:44;;;;;;;;;;;;;;;;;;2861:1;2451;;2105;7763:514;;:::o;12051:1017::-;12321:7;12372:1;12348:26;;:12;:26;;;12344:718;;;12462:8;12492:9;12523:12;12557:5;12584:6;12612:9;12651:4;12424:250;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;12424:250:0;;;12397:291;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;51:19;36:153;;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;12397:291:0;;;;;;;;;;;;;;;;12390:298;;;;12344:718;12791:8;12821:9;12852:12;12886:5;12913:6;12941:9;12980:4;13007:12;12753:284;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;12753:284:0;;;12726:325;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;51:19;36:153;;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;12726:325:0;;;;;;;;;;;;;;;;12719:332;;12051:1017;;;;;;;;;;:::o;5510:1030::-;6227:20;5829:10;2224:1;2190:12;:24;2203:10;2190:24;;;;;;;;;;;;;;;;;:30;;;:35;2182:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5864:5;2557:1;2531:28;;:14;:28;;;;2523:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5894:6;2557:1;2531:28;;:14;:28;;;;2523:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5925:12;2557:1;2531:28;;:14;:28;;;;2523:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5954:262;5983:5;6002:6;6022:9;6045;6068:12;6094:10;6118:5;6137:8;6159:21;6194:12;5954:15;:262::i;:::-;6265:12;6227:51;;6310:5;:18;;;6329:10;6349:4;6356:5;6310:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6310:52:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6310:52:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;6310:52:0;;;;;;;;;;;;;;;;6289:192;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6515:10;6496:37;;6503:10;6496:37;;;;6527:5;6496:37;;;;;;;;;;;;;;;;;;2593:1;;2257;5510:1030;;;;;;;;;;;:::o;1708:51::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;6781:221::-;6917:4;6944:12;:24;6957:10;6944:24;;;;;;;;;;;;;;;;;:38;;:51;6983:11;6944:51;;;;;;;;;;;;;;;;;;;;;;;;;6937:58;;6781:221;;;;:::o;8605:812::-;8956:20;8736:10;2054:1;2020:12;:24;2033:10;2020:24;;;;;;;;;;;;;;;;;:30;;;:35;;1999:96;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8770:10;2380:13;2345:48;;;;;;;;:12;:24;2358:10;2345:24;;;;;;;;;;;;;;;;;:31;;;;;;;;;;;;:48;;;;;;;;;2324:117;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8811:10;8823:21;2791:15;2747:59;;;;;;;;:12;:24;2760:10;2747:24;;;;;;;;;;;;;;;;;:40;;;;;;;;;;;;:59;;;;;;;;;2726:125;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8864:10;2959:12;:24;2972:10;2959:24;;;;;;;;;;;;;;;;;:30;;;;;;;;;;;;2945:44;;:10;:44;;;2924:124;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8907:1;8899:5;:9;8891:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9007:12;:24;9020:10;9007:24;;;;;;;;;;;;;;;;;:37;;;;;;;;;;;;8956:98;;9086:5;:18;;;9105:10;9125:4;9132:5;9086:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9086:52:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9086:52:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;9086:52:0;;;;;;;;;;;;;;;;9065:191;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9300:54;9348:5;9300:12;:24;9313:10;9300:24;;;;;;;;;;;;;;;;;:30;;;:47;;:54;;;;:::i;:::-;9267:12;:24;9280:10;9267:24;;;;;;;;;;;;;;;;;:30;;:87;;;;9392:10;9370:40;;9380:10;9370:40;;;;9404:5;9370:40;;;;;;;;;;;;;;;;;;2861:1;2451;;2105;8605:812;;;;:::o;1766:35::-;;;;:::o;9534:194::-;9656:9;9689:18;:32;9708:12;9689:32;;;;;;;;;;;;;;;9682:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9534:194;;;:::o;10326:1204::-;10548:10;2054:1;2020:12;:24;2033:10;2020:24;;;;;;;;;;;;;;;;;:30;;;:35;;1999:96;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10582:10;2380:13;2345:48;;;;;;;;:12;:24;2358:10;2345:24;;;;;;;;;;;;;;;;;:31;;;;;;;;;;;;:48;;;;;;;;;2324:117;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10652:1;10632:12;;:19;;:21;10611:114;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10779:7;;:14;;10756:12;;:19;;:37;10735:139;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10892:153;10924:4;;10892:153;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10942:4;;10892:153;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10960:4;;10892:153;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10978:10;11002:12;;10892:153;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11028:7;;10892:153;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:18;:153::i;:::-;11090:15;11056:12;:24;11069:10;11056:24;;;;;;;;;;;;;;;;;:31;;;:49;;;;;;;;;;;;;;;;;;;;;;;;11229:15;11189:12;:24;11202:10;11189:24;;;;;;;;;;;;;;;;;:37;;:55;;;;11328:12;:24;11341:10;11328:24;;;;;;;;;;;;;;;;;:30;;;11275:49;11290:10;11302:12;;11275:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11316:7;;11275:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:14;:49::i;:::-;:83;11254:202;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11489:10;11480:43;;;;11501:12;;11515:7;;11480:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2105:1;10326:1204;;;;;;;;;;;;:::o;7242:194::-;7365:4;7392:12;:24;7405:10;7392:24;;;;;;;;;;;;;;;;;:30;;:37;7423:5;7392:37;;;;;;;;;;;;;;;;;;;;;;;;;7385:44;;7242:194;;;;:::o;18375:2641::-;18737:6;18728:15;;:5;:15;;;;18720:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18848:1;18840:5;:9;18832:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18986:1;18974:9;:13;;;:31;;;;;19004:1;18991:9;:14;;;;18974:31;18953:140;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19387:1;19374:9;:14;;;:41;;;;19413:1;19392:23;;:9;:23;;;;19374:41;19353:160;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19559:226;19602:8;19628:9;19655:12;19685:5;19708:6;19732:9;19759:12;19559:25;:226::i;:::-;19545:240;;;:10;:240;;;;19524:345;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19907:373;;;;;;;;;20028:5;19907:373;;;;20096:15;19907:373;;;;20055:13;19907:373;;;;;;;;;;;;20215:15;19907:373;;;;;;;;;;;;20136:9;19907:373;;;;;;20173:12;19907:373;;;;;;19940:5;19907:373;;;;;;19967:6;19907:373;;;;;;20257:12;19907:373;;;;;;19998:9;19907:373;;;;;19880:12;:24;19893:10;19880:24;;;;;;;;;;;;;;;;;:400;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20334:4;20291:12;:24;20304:10;20291:24;;;;;;;;;;;;;;;;;:32;;:40;20324:6;20291:40;;;;;;;;;;;;;;;;:47;;;;;;;;;;;;;;;;;;20390:4;20348:12;:24;20361:10;20348:24;;;;;;;;;;;;;;;;;:32;;:39;20381:5;20348:39;;;;;;;;;;;;;;;;:46;;;;;;;;;;;;;;;;;;20502:12;:24;20515:10;20502:24;;;;;;;;;;;;;;;;;:32;;:43;20535:9;20502:43;;;;;;;;;;;;;;;;;;;;;;;;;20501:44;20480:137;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20789:1;20777:9;:13;;;20773:94;;;20852:4;20806:12;:24;20819:10;20806:24;;;;;;;;;;;;;;;;;:32;;:43;20839:9;20806:43;;;;;;;;;;;;;;;;:50;;;;;;;;;;;;;;;;;;20773:94;20885:16;;:18;;;;;;;;;;;;;20914;:25;20933:5;20914:25;;;;;;;;;;;;;;;20945:10;20914:42;;39:1:-1;33:3;27:10;23:18;57:10;52:3;45:23;79:10;72:17;;0:93;20914:42:0;;;;;;;;;;;;;;;;;;;;;;;;;;;20966:18;:26;20985:6;20966:26;;;;;;;;;;;;;;;20998:10;20966:43;;39:1:-1;33:3;27:10;23:18;57:10;52:3;45:23;79:10;72:17;;0:93;20966:43:0;;;;;;;;;;;;;;;;;;;;;;;;;;;18375:2641;;;;;;;;;;:::o;1272:131:2:-;1330:7;1345:9;1361:1;1357;:5;1345:17;;1381:1;1376;:6;;1368:15;;;;;;;;1397:1;1390:8;;1272:131;;;;;:::o;13342:1008:0:-;13563:21;13750:20;13587:152;13618:4;13636;13654;13672:10;13696:12;13722:7;13587:17;:152::i;:::-;13563:176;;13773:130;13805:12;:24;13818:10;13805:24;;;;;;;;;;;;;;;;;:37;;;;;;;;;;;;13856:12;:24;13869:10;13856:24;;;;;;;;;;;;;;;;;:37;;;13773:18;:130::i;:::-;13750:153;;14089:12;:24;14102:10;14089:24;;;;;;;;;;;;;;;;;:34;;;;;;;;;;;;14075:48;;:4;:11;:48;:122;;;;;14129:15;14128:16;:68;;;;14165:12;:24;14178:10;14165:24;;;;;;;;;;;;;;;;;:31;;;;;;;;;;;;14148:48;;:13;:48;;;;14128:68;14075:122;14054:289;;;14234:98;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14054:289;13342:1008;;;;;;;;:::o;14476:1723::-;14624:7;14647:21;14706:24;14812:9;15464:20;15537:9;14671:12;:24;14684:10;14671:24;;;;;;;;;;;;;;;;;14647:48;;14733:1;14706:28;;14770:21;14749:42;;;;;;;;:1;:17;;;;;;;;;;;;:42;;;;;;;;;14745:1414;;;14824:1;14812:13;;14807:577;14831:12;:19;14827:1;:23;14807:577;;;14911:1;14884:29;;:12;14897:1;14884:15;;;;;;;;;;;;;;;;;;:29;;;;14876:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14995:1;:9;;:26;15005:12;15018:1;15005:15;;;;;;;;;;;;;;;;;;14995:26;;;;;;;;;;;;;;;;;;;;;;;;;14987:83;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15110:1;15097:7;15105:1;15097:10;;;;;;;;;;;;;;;;;;:14;15089:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15196:32;15217:7;15225:1;15217:10;;;;;;;;;;;;;;;;;;15196:16;:20;;:32;;;;:::i;:::-;15177:51;;15282:4;15247:1;:15;;:32;15263:12;15276:1;15263:15;;;;;;;;;;;;;;;;;;15247:32;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;15333:12;15346:1;15333:15;;;;;;;;;;;;;;;;;;:24;;:36;15358:7;15366:1;15358:10;;;;;;;;;;;;;;;;;;15333:36;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;15333:36:0;14852:3;;;;;;;14807:577;;;14745:1414;;;15426:21;15405:42;;;;;;;;:1;:17;;;;;;;;;;;;:42;;;;;;;;;15401:758;;;15502:1;:14;;;;;;;;;;;;15464:53;;15549:1;15537:13;;15532:617;15554:12;:19;15552:1;:21;15532:617;;;15634:1;15607:29;;:12;15620:1;15607:15;;;;;;;;;;;;;;;;;;:29;;;;15599:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15718:1;:9;;:26;15728:12;15741:1;15728:15;;;;;;;;;;;;;;;;;;15718:26;;;;;;;;;;;;;;;;;;;;;;;;;15710:83;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15833:1;15820:7;15828:1;15820:10;;;;;;;;;;;;;;;;;;:14;15812:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15919:32;15940:7;15948:1;15940:10;;;;;;;;;;;;;;;;;;15919:16;:20;;:32;;;;:::i;:::-;15900:51;;16004:4;15969:1;:15;;:32;15985:12;15998:1;15985:15;;;;;;;;;;;;;;;;;;15969:32;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;16064:5;:14;;;16079:12;16092:1;16079:15;;;;;;;;;;;;;;;;;;16096:7;16104:1;16096:10;;;;;;;;;;;;;;;;;;16064:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;16064:43:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;16064:43:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;16064:43:0;;;;;;;;;;;;;;;;16056:78;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15575:3;;;;;;;15532:617;;;15401:758;14745:1414;16176:16;16169:23;;14476:1723;;;;;;;;;;:::o;16384:1581::-;16606:7;16767:19;16885:14;17353:6;17402:17;16666:4;:11;16651:4;:11;:26;:56;;;;;16696:4;:11;16681:4;:11;:26;16651:56;16630:126;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17089:4;17084:10;;17125:1;17120:7;;17161:4;17192:12;17230:7;17263:10;17042:253;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;17042:253:0;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;17042:253:0;;;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;17042:253:0;;;17011:302;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;51:19;36:153;;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;17011:302:0;;;;;;;;;;;;;;;;16925:402;;;;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;16925:402:0;;;16902:435;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;51:19;36:153;;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;16902:435:0;;;;;;;;;;;;;;;;16885:452;;17362:1;17353:10;;17348:582;17369:4;:11;17365:1;:15;17348:582;;;17422:122;17449:6;17473:4;17478:1;17473:7;;;;;;;;;;;;;;;;;;17498:4;17503:1;17498:7;;;;;;;;;;;;;;;;;;17523:4;17528:1;17523:7;;;;;;;;;;;;;;;;;;17422:122;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;17422:122:0;;;;;;;;17402:142;;17584:12;:24;17597:10;17584:24;;;;;;;;;;;;;;;;;:32;;:43;17617:9;17584:43;;;;;;;;;;;;;;;;;;;;;;;;;17559:120;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17719:12;:24;17732:10;17719:24;;;;;;;;;;;;;;;;;:30;;:41;17750:9;17719:41;;;;;;;;;;;;;;;;;;;;;;;;;17718:42;17693:127;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17878:4;17834:12;:24;17847:10;17834:24;;;;;;;;;;;;;;;;;:30;;:41;17865:9;17834:41;;;;;;;;;;;;;;;;:48;;;;;;;;;;;;;;;;;;17910:9;17896:23;;17382:3;;;;;;;17348:582;;;17947:11;17940:18;;16384:1581;;;;;;;;;;;;:::o;17971:317::-;18110:4;18130:17;18150:21;18158:12;18150:3;:7;;:21;;;;:::i;:::-;18130:41;;18218:1;18202:12;:17;;;:69;;18240:31;18266:4;18248:12;18240:21;;:25;;:31;;;;:::i;:::-;18228:9;:43;18202:69;;;18222:5;18202:69;18181:100;;17971:317;;;;;:::o;1078:131:2:-;1136:7;1172:9;1164:1;1159;:6;;1151:15;;;;;;;;1188:1;1184;:5;1172:17;;1203:1;1196:8;;1078:131;;;;;:::o;204:381::-;262:7;523:9;491:1;486;:6;482:35;;;509:1;502:8;;;;482:35;539:1;535;:5;523:17;;563:1;558;554;:5;;;;;;;;:10;546:19;;;;;;;;579:1;572:8;;204:381;;;;;;:::o", + "source": "pragma solidity 0.4.24;\n\nimport \"openzeppelin-solidity/contracts/math/SafeMath.sol\";\n\nimport \"../token/ITokenContract.sol\";\n\n\n/**\n* @dev Supports ERC20 tokens\n* The escrow smart contract for the open bazaar trades in Ethereum\n* The smart contract is designed keeping in mind the current wallet interface of the OB-core\n* https://github.com/OpenBazaar/wallet-interface/blob/master/wallet.go\n* Current wallet interface strictly adheres to UTXO(bitcoin) model\n* Please read below mentioned link for detailed specs\n* https://github.com/OpenBazaar/smart-contracts/blob/master/contracts/escrow/EscrowSpec.md\n*/\ncontract Escrow_v1_0 {\n\n using SafeMath for uint256;\n\n enum Status {FUNDED, RELEASED}\n\n enum TransactionType {ETHER, TOKEN}\n\n event Executed(\n bytes32 indexed scriptHash,\n address[] destinations,\n uint256[] amounts\n );\n\n event FundAdded(\n bytes32 indexed scriptHash,\n address indexed from,\n uint256 valueAdded\n );\n\n event Funded(\n bytes32 indexed scriptHash, \n address indexed from, \n uint256 value\n );\n\n struct Transaction {\n uint256 value;\n uint256 lastModified;//Time at which tx was last modified in seconds\n Status status;\n TransactionType transactionType;\n uint8 threshold;\n uint32 timeoutHours;\n address buyer;\n address seller;\n address tokenAddress;//Token address in case of token transfer\n address moderator;\n mapping(address=>bool) isOwner;//to keep track of owners.\n mapping(address=>bool) voted;//to keep track of who all voted\n mapping(address=>bool) beneficiaries;//Benefeciaries of execution\n }\n\n mapping(bytes32 => Transaction) public transactions;\n\n uint256 public transactionCount = 0;\n\n //Contains mapping between each party and all of their transactions\n mapping(address => bytes32[]) private partyVsTransaction;\n\n modifier transactionExist(bytes32 scriptHash) {\n require(\n transactions[scriptHash].value != 0, \"Transaction does not exist\"\n );\n _;\n }\n\n modifier transactionDoesNotExist(bytes32 scriptHash) {\n require(transactions[scriptHash].value == 0, \"Transaction exist\");\n _;\n }\n\n modifier inFundedState(bytes32 scriptHash) {\n require(\n transactions[scriptHash].status == Status.FUNDED, \"Transaction is not in FUNDED state\"\n );\n _;\n }\n\n modifier nonZeroAddress(address addressToCheck) {\n require(addressToCheck != address(0), \"Zero address passed\");\n _;\n }\n\n modifier checkTransactionType(\n bytes32 scriptHash,\n TransactionType transactionType\n )\n {\n require(\n transactions[scriptHash].transactionType == transactionType, \"Transaction type does not match\"\n );\n _;\n }\n\n modifier onlyBuyer(bytes32 scriptHash) {\n require(\n msg.sender == transactions[scriptHash].buyer, \"The initiator of the transaction is not buyer\"\n );\n _;\n }\n\n /**\n * @dev Add new transaction in the contract\n * @param buyer The buyer of the transaction\n * @param seller The seller of the listing associated with the transaction\n * @param moderator Moderator for this transaction\n * @param threshold Minimum number of signatures required to released funds\n * @param timeoutHours Hours after which seller can release funds into his favour by signing transaction unilaterally\n * @param scriptHash keccak256 hash of the redeem script\n * @param uniqueId bytes20 unique id for the transaction, generated by ETH wallet\n * Redeem Script format will be following\n \n * Pass amount of the ethers to be put in escrow\n */\n function addTransaction(\n address buyer,\n address seller,\n address moderator,\n uint8 threshold,\n uint32 timeoutHours,\n bytes32 scriptHash,\n bytes20 uniqueId\n )\n external\n payable\n transactionDoesNotExist(scriptHash)\n nonZeroAddress(buyer)\n nonZeroAddress(seller)\n {\n _addTransaction(\n buyer,\n seller,\n moderator,\n threshold,\n timeoutHours,\n scriptHash,\n msg.value,\n uniqueId,\n TransactionType.ETHER,\n address(0)\n );\n \n emit Funded(scriptHash, msg.sender, msg.value);\n\n }\n\n /**\n * @dev Add new transaction in the contract\n * @param buyer The buyer of the transaction\n * @param seller The seller of the listing associated with the transaction\n * @param moderator Moderator for this transaction\n * @param threshold Minimum number of signatures required to released funds\n * @param timeoutHours Hours after which seller can release funds into his favour by signing transaction unilaterally\n * @param scriptHash keccak256 hash of the redeem script\n * @param value Amount of tokens to be put in escrow\n * @param uniqueId bytes20 unique id for the transaction, generated by ETH wallet\n * @param tokenAddress Address of the token to be used\n * Redeem Script format will be following\n \n * Approve escrow contract to spend amount of token on sender's behalf\n */\n function addTokenTransaction(\n address buyer,\n address seller,\n address moderator,\n uint8 threshold,\n uint32 timeoutHours,\n bytes32 scriptHash,\n uint256 value,\n bytes20 uniqueId,\n address tokenAddress\n )\n external\n transactionDoesNotExist(scriptHash)\n nonZeroAddress(buyer)\n nonZeroAddress(seller)\n nonZeroAddress(tokenAddress)\n {\n\n _addTransaction(\n buyer,\n seller,\n moderator,\n threshold,\n timeoutHours,\n scriptHash,\n value,\n uniqueId,\n TransactionType.TOKEN,\n tokenAddress\n );\n\n ITokenContract token = ITokenContract(tokenAddress);\n\n require(\n token.transferFrom(msg.sender, address(this), value),\n \"Token transfer failed, maybe you did not approve escrow contract to spend on behalf of sender\"\n );\n emit Funded(scriptHash, msg.sender, value);\n }\n\n /**\n * @dev This method will check whether given address was a beneficiary of transaction execution or not\n * @param scriptHash script hash of the transaction\n * @param beneficiary Beneficiary address to be checked\n */\n function checkBeneficiary(\n bytes32 scriptHash,\n address beneficiary\n )\n external\n view\n returns (bool)\n {\n return transactions[scriptHash].beneficiaries[beneficiary];\n }\n\n /**\n * @dev This method will check whether given party has voted or not\n * @param scriptHash script hash of the transaction\n * @param party Address of the party whose vote has to be checked\n * @return bool vote\n */\n function checkVote(\n bytes32 scriptHash,\n address party\n )\n external\n view\n returns (bool)\n {\n return transactions[scriptHash].voted[party];\n }\n\n /**\n * @dev Allows buyer of the transaction to add more funds(ether) in the transaction. \n * This will help to cater scenarios wherein initially buyer missed to fund transaction as required\n * @param scriptHash script hash of the transaction\n * Only buyer of the transaction can invoke this method\n */\n function addFundsToTransaction(\n bytes32 scriptHash\n )\n external\n payable\n transactionExist(scriptHash)\n inFundedState(scriptHash)\n checkTransactionType(scriptHash, TransactionType.ETHER)\n onlyBuyer(scriptHash)\n \n {\n\n require(msg.value > 0, \"Value must be greater than zero.\");\n\n transactions[scriptHash].value = transactions[scriptHash].value\n .add(msg.value);\n\n emit FundAdded(scriptHash, msg.sender, msg.value);\n }\n\n /**\n * @dev Allows buyer of the transaction to add more funds(Tokens) in the transaction. \n * This will help to cater scenarios wherein initially buyer missed to fund transaction as required\n * @param scriptHash script hash of the transaction\n * Only buyer of the transaction can invoke this method\n */\n function addTokensToTransaction(\n bytes32 scriptHash,\n uint256 value\n )\n external\n transactionExist(scriptHash)\n inFundedState(scriptHash)\n checkTransactionType(scriptHash, TransactionType.TOKEN)\n onlyBuyer(scriptHash)\n {\n\n require(value > 0, \"Value must be greater than zero.\");\n\n ITokenContract token = ITokenContract(\n transactions[scriptHash].tokenAddress\n );\n\n require(\n token.transferFrom(msg.sender, address(this), value),\n \"Token transfer failed, maybe you did not approve escrow contract to spend on behalf of buyer\"\n );\n\n transactions[scriptHash].value = transactions[scriptHash].value\n .add(value);\n\n emit FundAdded(scriptHash, msg.sender, value);\n }\n\n /**\n *@dev Returns all transaction ids for a party\n *@param partyAddress Address of the party\n */\n function getAllTransactionsForParty(\n address partyAddress\n ) \n external \n view \n returns (bytes32[]) \n {\n return partyVsTransaction[partyAddress];\n }\n\n /**\n *@dev This method will be used to release funds associated with the transaction\n * Please see specs https://github.com/OpenBazaar/smart-contracts/blob/master/contracts/escrow/EscrowSpec.md\n *@param sigV Array containing V component of all the signatures\n *@param sigR Array containing R component of all the signatures\n *@param signS Array containing S component of all the signatures\n *@param scriptHash script hash of the transaction\n *@param destinations List of addresses who will receive funds\n *@param amounts amount released to each destination\n */\n function execute(\n uint8[] sigV,\n bytes32[] sigR,\n bytes32[] sigS,\n bytes32 scriptHash,\n address[] destinations,\n uint256[] amounts\n )\n external\n transactionExist(scriptHash)\n inFundedState(scriptHash)\n { \n require(\n destinations.length>0, \n \"Number of destinations must be greater than 0\"\n );\n require(\n destinations.length == amounts.length,\n \"Number of destinations must match number of values sent\"\n );\n \n _verifyTransaction(\n sigV,\n sigR,\n sigS,\n scriptHash,\n destinations,\n amounts\n );\n\n transactions[scriptHash].status = Status.RELEASED;\n //Last modified timestamp modified, which will be used by rewards\n transactions[scriptHash].lastModified = block.timestamp;\n require(\n _transferFunds(scriptHash, destinations, amounts) == transactions[scriptHash].value,\n \"Total value to be released must be equal to the transaction escrow value\"\n );\n \n emit Executed(scriptHash, destinations, amounts);\n }\n\n\n /**\n *@dev Method for calculating script hash. Calculation will depend upon the type of transaction\n * ETHER Type transaction-:\n * Script Hash- keccak256(uniqueId, threshold, timeoutHours, buyer, seller, moderator, multiSigContractAddress)\n * TOKEN Type transaction\n * Script Hash- keccak256(uniqueId, threshold, timeoutHours, buyer, seller, moderator, multiSigContractAddress, tokenAddress)\n * Client can use this method to verify whether it has calculated correct script hash or not\n */\n function calculateRedeemScriptHash(\n bytes20 uniqueId,\n uint8 threshold,\n uint32 timeoutHours,\n address buyer,\n address seller,\n address moderator,\n address tokenAddress\n )\n public\n view\n returns (bytes32)\n {\n if (tokenAddress == address(0)) {\n return keccak256(\n abi.encodePacked(\n uniqueId,\n threshold,\n timeoutHours,\n buyer,\n seller,\n moderator,\n address(this)\n )\n );\n } else {\n return keccak256(\n abi.encodePacked(\n uniqueId,\n threshold,\n timeoutHours,\n buyer,\n seller,\n moderator,\n address(this),\n tokenAddress\n )\n );\n }\n }\n\n /**\n * @dev This methods checks validity of transaction\n * 1. Verify Signatures\n * 2. Check if minimum number of signatures has been acquired\n * 3. If above condition is false, check if time lock is expired and the execution is signed by seller\n */\n function _verifyTransaction(\n uint8[] sigV,\n bytes32[] sigR,\n bytes32[] sigS,\n bytes32 scriptHash,\n address[] destinations,\n uint256[] amounts\n )\n private\n {\n address lastRecovered = _verifySignatures(\n sigV,\n sigR,\n sigS,\n scriptHash,\n destinations,\n amounts\n );\n\n bool timeLockExpired = _isTimeLockExpired(\n transactions[scriptHash].timeoutHours,\n transactions[scriptHash].lastModified\n );\n\n //if Minimum number of signatures are not gathered and timelock has not expired or transaction was not signed by seller then revert\n if (\n sigV.length < transactions[scriptHash].threshold && (!timeLockExpired || lastRecovered != transactions[scriptHash].seller)\n )\n {\n revert(\"Minimum number of signatures are not collected and time lock expiry conditions not met!!\");\n }\n\n }\n\n /**\n *@dev Private method to transfer funds to the destination addresses on the basis of transaction type\n */\n function _transferFunds(\n bytes32 scriptHash,\n address[]destinations,\n uint256[]amounts\n )\n private\n returns (uint256)\n {\n Transaction storage t = transactions[scriptHash];\n\n uint256 valueTransferred = 0;\n\n if (t.transactionType == TransactionType.ETHER) {\n for (uint256 i = 0; i < destinations.length; i++) {\n\n require(destinations[i] != address(0), \"zero address is not allowed as destination address\");\n\n require(t.isOwner[destinations[i]], \"Destination address is not one of the owners\");\n\n require(amounts[i] > 0, \"Amount to be sent should be greater than 0\");\n\n valueTransferred = valueTransferred.add(amounts[i]);\n\n t.beneficiaries[destinations[i]] = true;//add receiver as beneficiary\n destinations[i].transfer(amounts[i]);\n }\n\n } else if (t.transactionType == TransactionType.TOKEN) {\n\n ITokenContract token = ITokenContract(t.tokenAddress);\n\n for (uint256 j = 0; j 0, \"Amount to be sent should be greater than 0\");\n\n valueTransferred = valueTransferred.add(amounts[j]);\n t.beneficiaries[destinations[j]] = true;//add receiver as beneficiary\n\n require(token.transfer(destinations[j], amounts[j]), \"Token transfer failed.\");\n }\n } \n return valueTransferred;\n }\n\n //to check whether the signatures are valid or not and if consensus was reached\n //returns the last address recovered, in case of timeout this must be the sender's address\n function _verifySignatures(\n uint8[] sigV,\n bytes32[] sigR,\n bytes32[] sigS,\n bytes32 scriptHash,\n address[] destinations,\n uint256[]amounts\n )\n private\n returns (address)\n {\n\n require(\n sigR.length == sigS.length && sigR.length == sigV.length, \n \"R,S,V length mismatch.\"\n );\n\n address lastAddress;\n\n // Follows ERC191 signature scheme: https://github.com/ethereum/EIPs/issues/191\n bytes32 txHash = keccak256(\n abi.encodePacked(\n \"\\x19Ethereum Signed Message:\\n32\",\n keccak256(\n abi.encodePacked(\n byte(0x19),\n byte(0),\n address(this),\n destinations,\n amounts,\n scriptHash\n )\n )\n )\n );\n\n for (uint i = 0; i < sigR.length; i++) {\n\n address recovered = ecrecover(\n txHash,\n sigV[i],\n sigR[i],\n sigS[i]\n );\n\n require(\n transactions[scriptHash].isOwner[recovered], \n \"Invalid signature\"\n );\n require(\n !transactions[scriptHash].voted[recovered], \n \"Same signature sent twice\"\n );\n transactions[scriptHash].voted[recovered] = true;\n lastAddress = recovered;\n }\n\n return lastAddress;\n }\n\n function _isTimeLockExpired(\n uint32 timeoutHours,\n uint256 lastModified\n )\n private\n view\n returns (bool)\n {\n uint256 timeSince = now.sub(lastModified);\n return (\n timeoutHours == 0 ? false:timeSince > uint256(timeoutHours).mul(3600)\n );\n }\n\n /**\n * Private method to add transaction to reduce code redundancy\n */\n function _addTransaction(\n address buyer,\n address seller,\n address moderator,\n uint8 threshold,\n uint32 timeoutHours,\n bytes32 scriptHash,\n uint256 value,\n bytes20 uniqueId,\n TransactionType transactionType,\n address tokenAddress\n )\n private\n { \n require(buyer != seller, \"Buyer and seller are same\");\n\n //value passed should be greater than 0\n require(value > 0, \"Value passed is 0\");\n\n // For now allowing 0 moderator to support 1-2 multisig wallet\n require(\n threshold > 0 && threshold <= 3, \n \"Threshold cannot be greater than 3 and must be greater than 0\"\n );\n\n //if threshold is 1 then moderator can be passed as zero address or any other address\n //(it won't matter apart from scripthash since we wont add moderator as one of the owner),\n //otherwise moderator should be a valid address\n require(\n threshold == 1 || moderator != address(0),\n \"Either threshold should be 1 or valid moderator address should be passed\"\n );\n\n require(\n scriptHash == calculateRedeemScriptHash(\n uniqueId,\n threshold,\n timeoutHours,\n buyer,\n seller,\n moderator,\n tokenAddress\n ), \n \"Calculated script hash does not match passed script hash.\"\n );\n\n transactions[scriptHash] = Transaction({\n buyer: buyer,\n seller: seller,\n moderator: moderator,\n value: value,\n status: Status.FUNDED,\n lastModified: block.timestamp,\n threshold: threshold,\n timeoutHours: timeoutHours,\n transactionType:transactionType,\n tokenAddress:tokenAddress\n });\n\n transactions[scriptHash].isOwner[seller] = true;\n transactions[scriptHash].isOwner[buyer] = true; \n\n //Check if buyer or seller are not passed as moderator\n require(\n !transactions[scriptHash].isOwner[moderator], \n \"Either buyer or seller is passed as moderator\"\n );\n\n //set moderator as one of the owners only if threshold is greater than 1 otherwise only buyer and seller should be able to release funds\n if (threshold > 1) {\n transactions[scriptHash].isOwner[moderator] = true;\n }\n \n\n transactionCount++;\n\n partyVsTransaction[buyer].push(scriptHash);\n partyVsTransaction[seller].push(scriptHash);\n }\n}\n", "sourcePath": "/home/sameep/freelancing-projects/toptal/open baazar/publicRepo/smart-contracts/contracts/escrow/Escrow_v1_0.sol", "ast": { "absolutePath": "/home/sameep/freelancing-projects/toptal/open baazar/publicRepo/smart-contracts/contracts/escrow/Escrow_v1_0.sol", "exportedSymbols": { "Escrow_v1_0": [ - 1213 + 1206 ] }, - "id": 1214, + "id": 1207, "nodeType": "SourceUnit", "nodes": [ { @@ -453,8 +426,8 @@ "file": "openzeppelin-solidity/contracts/math/SafeMath.sol", "id": 2, "nodeType": "ImportDirective", - "scope": 1214, - "sourceUnit": 1372, + "scope": 1207, + "sourceUnit": 1365, "src": "25:59:0", "symbolAliases": [], "unitAlias": "" @@ -464,8 +437,8 @@ "file": "../token/ITokenContract.sol", "id": 3, "nodeType": "ImportDirective", - "scope": 1214, - "sourceUnit": 1244, + "scope": 1207, + "sourceUnit": 1237, "src": "86:37:0", "symbolAliases": [], "unitAlias": "" @@ -474,11 +447,11 @@ "baseContracts": [], "contractDependencies": [], "contractKind": "contract", - "documentation": "@dev Supports ERC20 tokens\nThe escrow smart contract for the open bazaar trades in Ethereum\nThe smart contract is desgined keeping in mind the current wallet interface of the OB-core\nhttps://github.com/OpenBazaar/wallet-interface/blob/master/wallet.go\nCurrent wallet interface strictly adheres to UTXO(bitcoin) model", + "documentation": "@dev Supports ERC20 tokens\nThe escrow smart contract for the open bazaar trades in Ethereum\nThe smart contract is designed keeping in mind the current wallet interface of the OB-core\nhttps://github.com/OpenBazaar/wallet-interface/blob/master/wallet.go\nCurrent wallet interface strictly adheres to UTXO(bitcoin) model\nPlease read below mentioned link for detailed specs\nhttps://github.com/OpenBazaar/smart-contracts/blob/master/contracts/escrow/EscrowSpec.md", "fullyImplemented": true, - "id": 1213, + "id": 1206, "linearizedBaseContracts": [ - 1213 + 1206 ], "name": "Escrow_v1_0", "nodeType": "ContractDefinition", @@ -490,20 +463,20 @@ "id": 4, "name": "SafeMath", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1371, - "src": "494:8:0", + "referencedDeclaration": 1364, + "src": "639:8:0", "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$1371", + "typeIdentifier": "t_contract$_SafeMath_$1364", "typeString": "library SafeMath" } }, "nodeType": "UsingForDirective", - "src": "488:27:0", + "src": "633:27:0", "typeName": { "id": 5, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "507:7:0", + "src": "652:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -518,18 +491,18 @@ "id": 7, "name": "FUNDED", "nodeType": "EnumValue", - "src": "534:6:0" + "src": "679:6:0" }, { "id": 8, "name": "RELEASED", "nodeType": "EnumValue", - "src": "542:8:0" + "src": "687:8:0" } ], "name": "Status", "nodeType": "EnumDefinition", - "src": "521:30:0" + "src": "666:30:0" }, { "canonicalName": "Escrow_v1_0.TransactionType", @@ -539,18 +512,18 @@ "id": 10, "name": "ETHER", "nodeType": "EnumValue", - "src": "579:5:0" + "src": "724:5:0" }, { "id": 11, "name": "TOKEN", "nodeType": "EnumValue", - "src": "586:5:0" + "src": "731:5:0" } ], "name": "TransactionType", "nodeType": "EnumDefinition", - "src": "557:35:0" + "src": "702:35:0" }, { "anonymous": false, @@ -565,11 +538,11 @@ { "constant": false, "id": 14, - "indexed": false, + "indexed": true, "name": "scriptHash", "nodeType": "VariableDeclaration", "scope": 22, - "src": "622:18:0", + "src": "767:26:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -580,7 +553,7 @@ "id": 13, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "622:7:0", + "src": "767:7:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -596,7 +569,7 @@ "name": "destinations", "nodeType": "VariableDeclaration", "scope": 22, - "src": "650:22:0", + "src": "803:22:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -608,7 +581,7 @@ "id": 15, "name": "address", "nodeType": "ElementaryTypeName", - "src": "650:7:0", + "src": "803:7:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -617,7 +590,7 @@ "id": 16, "length": null, "nodeType": "ArrayTypeName", - "src": "650:9:0", + "src": "803:9:0", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]" @@ -633,7 +606,7 @@ "name": "amounts", "nodeType": "VariableDeclaration", "scope": 22, - "src": "682:17:0", + "src": "835:17:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -645,7 +618,7 @@ "id": 18, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "682:7:0", + "src": "835:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -654,7 +627,7 @@ "id": 19, "length": null, "nodeType": "ArrayTypeName", - "src": "682:9:0", + "src": "835:9:0", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", "typeString": "uint256[]" @@ -664,9 +637,9 @@ "visibility": "internal" } ], - "src": "612:93:0" + "src": "757:101:0" }, - "src": "598:108:0" + "src": "743:116:0" }, { "anonymous": false, @@ -681,11 +654,11 @@ { "constant": false, "id": 24, - "indexed": false, + "indexed": true, "name": "scriptHash", "nodeType": "VariableDeclaration", "scope": 30, - "src": "737:18:0", + "src": "890:26:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -696,7 +669,7 @@ "id": 23, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "737:7:0", + "src": "890:7:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -712,7 +685,7 @@ "name": "from", "nodeType": "VariableDeclaration", "scope": 30, - "src": "765:20:0", + "src": "926:20:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -723,7 +696,7 @@ "id": 25, "name": "address", "nodeType": "ElementaryTypeName", - "src": "765:7:0", + "src": "926:7:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -739,7 +712,7 @@ "name": "valueAdded", "nodeType": "VariableDeclaration", "scope": 30, - "src": "795:18:0", + "src": "956:18:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -750,7 +723,7 @@ "id": 27, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "795:7:0", + "src": "956:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -760,9 +733,9 @@ "visibility": "internal" } ], - "src": "727:92:0" + "src": "880:100:0" }, - "src": "712:108:0" + "src": "865:116:0" }, { "anonymous": false, @@ -777,11 +750,11 @@ { "constant": false, "id": 32, - "indexed": false, + "indexed": true, "name": "scriptHash", "nodeType": "VariableDeclaration", "scope": 38, - "src": "839:18:0", + "src": "1009:26:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -792,7 +765,7 @@ "id": 31, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "839:7:0", + "src": "1009:7:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -808,7 +781,7 @@ "name": "from", "nodeType": "VariableDeclaration", "scope": 38, - "src": "859:20:0", + "src": "1046:20:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -819,7 +792,7 @@ "id": 33, "name": "address", "nodeType": "ElementaryTypeName", - "src": "859:7:0", + "src": "1046:7:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -835,7 +808,7 @@ "name": "value", "nodeType": "VariableDeclaration", "scope": 38, - "src": "881:13:0", + "src": "1077:13:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -846,7 +819,7 @@ "id": 35, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "881:7:0", + "src": "1077:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -856,47 +829,21 @@ "visibility": "internal" } ], - "src": "838:57:0" + "src": "999:97:0" }, - "src": "826:70:0" + "src": "987:110:0" }, { "canonicalName": "Escrow_v1_0.Transaction", - "id": 73, + "id": 71, "members": [ { "constant": false, "id": 40, - "name": "scriptHash", - "nodeType": "VariableDeclaration", - "scope": 73, - "src": "931:18:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 39, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "931:7:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 42, "name": "value", "nodeType": "VariableDeclaration", - "scope": 73, - "src": "1005:13:0", + "scope": 71, + "src": "1132:13:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -904,10 +851,10 @@ "typeString": "uint256" }, "typeName": { - "id": 41, + "id": 39, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1005:7:0", + "src": "1132:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -918,11 +865,11 @@ }, { "constant": false, - "id": 44, + "id": 42, "name": "lastModified", "nodeType": "VariableDeclaration", - "scope": 73, - "src": "1028:20:0", + "scope": 71, + "src": "1155:20:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -930,10 +877,10 @@ "typeString": "uint256" }, "typeName": { - "id": 43, + "id": 41, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1028:7:0", + "src": "1155:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -944,11 +891,11 @@ }, { "constant": false, - "id": 46, + "id": 44, "name": "status", "nodeType": "VariableDeclaration", - "scope": 73, - "src": "1103:13:0", + "scope": 71, + "src": "1232:13:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -957,11 +904,11 @@ }, "typeName": { "contractScope": null, - "id": 45, + "id": 43, "name": "Status", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 9, - "src": "1103:6:0", + "src": "1232:6:0", "typeDescriptions": { "typeIdentifier": "t_enum$_Status_$9", "typeString": "enum Escrow_v1_0.Status" @@ -972,11 +919,11 @@ }, { "constant": false, - "id": 48, + "id": 46, "name": "transactionType", "nodeType": "VariableDeclaration", - "scope": 73, - "src": "1126:31:0", + "scope": 71, + "src": "1255:31:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -985,11 +932,11 @@ }, "typeName": { "contractScope": null, - "id": 47, + "id": 45, "name": "TransactionType", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 12, - "src": "1126:15:0", + "src": "1255:15:0", "typeDescriptions": { "typeIdentifier": "t_enum$_TransactionType_$12", "typeString": "enum Escrow_v1_0.TransactionType" @@ -1000,11 +947,11 @@ }, { "constant": false, - "id": 50, + "id": 48, "name": "threshold", "nodeType": "VariableDeclaration", - "scope": 73, - "src": "1167:15:0", + "scope": 71, + "src": "1296:15:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1012,10 +959,10 @@ "typeString": "uint8" }, "typeName": { - "id": 49, + "id": 47, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "1167:5:0", + "src": "1296:5:0", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -1026,11 +973,11 @@ }, { "constant": false, - "id": 52, + "id": 50, "name": "timeoutHours", "nodeType": "VariableDeclaration", - "scope": 73, - "src": "1192:19:0", + "scope": 71, + "src": "1321:19:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1038,10 +985,10 @@ "typeString": "uint32" }, "typeName": { - "id": 51, + "id": 49, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "1192:6:0", + "src": "1321:6:0", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -1052,11 +999,11 @@ }, { "constant": false, - "id": 54, + "id": 52, "name": "buyer", "nodeType": "VariableDeclaration", - "scope": 73, - "src": "1221:13:0", + "scope": 71, + "src": "1350:13:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1064,10 +1011,10 @@ "typeString": "address" }, "typeName": { - "id": 53, + "id": 51, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1221:7:0", + "src": "1350:7:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1078,11 +1025,11 @@ }, { "constant": false, - "id": 56, + "id": 54, "name": "seller", "nodeType": "VariableDeclaration", - "scope": 73, - "src": "1244:14:0", + "scope": 71, + "src": "1373:14:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1090,10 +1037,10 @@ "typeString": "address" }, "typeName": { - "id": 55, + "id": 53, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1244:7:0", + "src": "1373:7:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1104,11 +1051,11 @@ }, { "constant": false, - "id": 58, + "id": 56, "name": "tokenAddress", "nodeType": "VariableDeclaration", - "scope": 73, - "src": "1268:20:0", + "scope": 71, + "src": "1397:20:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1116,10 +1063,10 @@ "typeString": "address" }, "typeName": { - "id": 57, + "id": 55, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1268:7:0", + "src": "1397:7:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1130,11 +1077,11 @@ }, { "constant": false, - "id": 60, + "id": 58, "name": "moderator", "nodeType": "VariableDeclaration", - "scope": 73, - "src": "1340:17:0", + "scope": 71, + "src": "1468:17:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1142,10 +1089,10 @@ "typeString": "address" }, "typeName": { - "id": 59, + "id": 57, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1340:7:0", + "src": "1468:7:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1156,11 +1103,11 @@ }, { "constant": false, - "id": 64, + "id": 62, "name": "isOwner", "nodeType": "VariableDeclaration", - "scope": 73, - "src": "1367:30:0", + "scope": 71, + "src": "1495:30:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1168,28 +1115,28 @@ "typeString": "mapping(address => bool)" }, "typeName": { - "id": 63, + "id": 61, "keyType": { - "id": 61, + "id": 59, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1375:7:0", + "src": "1503:7:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", - "src": "1367:22:0", + "src": "1495:22:0", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" }, "valueType": { - "id": 62, + "id": 60, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "1384:4:0", + "src": "1512:4:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1201,11 +1148,11 @@ }, { "constant": false, - "id": 68, + "id": 66, "name": "voted", "nodeType": "VariableDeclaration", - "scope": 73, - "src": "1441:28:0", + "scope": 71, + "src": "1561:28:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1213,28 +1160,28 @@ "typeString": "mapping(address => bool)" }, "typeName": { - "id": 67, + "id": 65, "keyType": { - "id": 65, + "id": 63, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1449:7:0", + "src": "1569:7:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", - "src": "1441:22:0", + "src": "1561:22:0", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" }, "valueType": { - "id": 66, + "id": 64, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "1458:4:0", + "src": "1578:4:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1246,11 +1193,11 @@ }, { "constant": false, - "id": 72, + "id": 70, "name": "beneficiaries", "nodeType": "VariableDeclaration", - "scope": 73, - "src": "1511:36:0", + "scope": 71, + "src": "1631:36:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1258,28 +1205,28 @@ "typeString": "mapping(address => bool)" }, "typeName": { - "id": 71, + "id": 69, "keyType": { - "id": 69, + "id": 67, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1519:7:0", + "src": "1639:7:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", - "src": "1511:22:0", + "src": "1631:22:0", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" }, "valueType": { - "id": 70, + "id": 68, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "1528:4:0", + "src": "1648:4:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1292,50 +1239,50 @@ ], "name": "Transaction", "nodeType": "StructDefinition", - "scope": 1213, - "src": "902:680:0", + "scope": 1206, + "src": "1103:599:0", "visibility": "public" }, { "constant": false, - "id": 77, + "id": 75, "name": "transactions", "nodeType": "VariableDeclaration", - "scope": 1213, - "src": "1588:51:0", + "scope": 1206, + "src": "1708:51:0", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Transaction_$73_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Transaction_$71_storage_$", "typeString": "mapping(bytes32 => struct Escrow_v1_0.Transaction)" }, "typeName": { - "id": 76, + "id": 74, "keyType": { - "id": 74, + "id": 72, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "1596:7:0", + "src": "1716:7:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "nodeType": "Mapping", - "src": "1588:31:0", + "src": "1708:31:0", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Transaction_$73_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Transaction_$71_storage_$", "typeString": "mapping(bytes32 => struct Escrow_v1_0.Transaction)" }, "valueType": { "contractScope": null, - "id": 75, + "id": 73, "name": "Transaction", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 73, - "src": "1607:11:0", + "referencedDeclaration": 71, + "src": "1727:11:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Transaction_$73_storage_ptr", + "typeIdentifier": "t_struct$_Transaction_$71_storage_ptr", "typeString": "struct Escrow_v1_0.Transaction" } } @@ -1345,11 +1292,11 @@ }, { "constant": false, - "id": 80, + "id": 78, "name": "transactionCount", "nodeType": "VariableDeclaration", - "scope": 1213, - "src": "1646:35:0", + "scope": 1206, + "src": "1766:35:0", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -1357,10 +1304,10 @@ "typeString": "uint256" }, "typeName": { - "id": 78, + "id": 76, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1646:7:0", + "src": "1766:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1369,14 +1316,14 @@ "value": { "argumentTypes": null, "hexValue": "30", - "id": 79, + "id": 77, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1680:1:0", + "src": "1800:1:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -1388,11 +1335,11 @@ }, { "constant": false, - "id": 85, + "id": 83, "name": "partyVsTransaction", "nodeType": "VariableDeclaration", - "scope": 1213, - "src": "1758:54:0", + "scope": 1206, + "src": "1880:56:0", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -1400,38 +1347,38 @@ "typeString": "mapping(address => bytes32[])" }, "typeName": { - "id": 84, + "id": 82, "keyType": { - "id": 81, + "id": 79, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1766:7:0", + "src": "1888:7:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", - "src": "1758:29:0", + "src": "1880:29:0", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_bytes32_$dyn_storage_$", "typeString": "mapping(address => bytes32[])" }, "valueType": { "baseType": { - "id": 82, + "id": 80, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "1777:7:0", + "src": "1899:7:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "id": 83, + "id": 81, "length": null, "nodeType": "ArrayTypeName", - "src": "1777:9:0", + "src": "1899:9:0", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", "typeString": "bytes32[]" @@ -1439,13 +1386,13 @@ } }, "value": null, - "visibility": "public" + "visibility": "private" }, { "body": { - "id": 100, + "id": 98, "nodeType": "Block", - "src": "1866:125:0", + "src": "1989:124:0", "statements": [ { "expression": { @@ -1457,7 +1404,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 95, + "id": 93, "isConstant": false, "isLValue": false, "isPure": false, @@ -1468,26 +1415,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 90, + "id": 88, "name": "transactions", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 77, - "src": "1897:12:0", + "referencedDeclaration": 75, + "src": "2020:12:0", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Transaction_$73_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Transaction_$71_storage_$", "typeString": "mapping(bytes32 => struct Escrow_v1_0.Transaction storage ref)" } }, - "id": 92, + "id": 90, "indexExpression": { "argumentTypes": null, - "id": 91, + "id": 89, "name": "scriptHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 87, - "src": "1910:10:0", + "referencedDeclaration": 85, + "src": "2033:10:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -1498,21 +1445,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1897:24:0", + "src": "2020:24:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Transaction_$73_storage", + "typeIdentifier": "t_struct$_Transaction_$71_storage", "typeString": "struct Escrow_v1_0.Transaction storage ref" } }, - "id": 93, + "id": 91, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "value", "nodeType": "MemberAccess", - "referencedDeclaration": 42, - "src": "1897:30:0", + "referencedDeclaration": 40, + "src": "2020:30:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1523,14 +1470,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 94, + "id": 92, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1931:1:0", + "src": "2054:1:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -1538,7 +1485,7 @@ }, "value": "0" }, - "src": "1897:35:0", + "src": "2020:35:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1546,21 +1493,21 @@ }, { "argumentTypes": null, - "hexValue": "5472616e73616374696f6e20646f6573206e6f7420657869737473", - "id": 96, + "hexValue": "5472616e73616374696f6e20646f6573206e6f74206578697374", + "id": 94, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "1934:29:0", + "src": "2057:28:0", "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_stringliteral_e6218ab6010d379e919c5d8d62438c20b22e478fd60139b985d89cb57bc71538", - "typeString": "literal_string \"Transaction does not exists\"" + "typeIdentifier": "t_stringliteral_cb323e46bbcca91e157c2b50ad4ce2acbe1153338b838c84372d5723b8995ef0", + "typeString": "literal_string \"Transaction does not exist\"" }, - "value": "Transaction does not exists" + "value": "Transaction does not exist" } ], "expression": { @@ -1570,25 +1517,25 @@ "typeString": "bool" }, { - "typeIdentifier": "t_stringliteral_e6218ab6010d379e919c5d8d62438c20b22e478fd60139b985d89cb57bc71538", - "typeString": "literal_string \"Transaction does not exists\"" + "typeIdentifier": "t_stringliteral_cb323e46bbcca91e157c2b50ad4ce2acbe1153338b838c84372d5723b8995ef0", + "typeString": "literal_string \"Transaction does not exist\"" } ], - "id": 89, + "id": 87, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1389, - 1390 + 1382, + 1383 ], - "referencedDeclaration": 1390, - "src": "1876:7:0", + "referencedDeclaration": 1383, + "src": "1999:7:0", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 97, + "id": 95, "isConstant": false, "isLValue": false, "isPure": false, @@ -1596,38 +1543,38 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1876:97:0", + "src": "1999:96:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 98, + "id": 96, "nodeType": "ExpressionStatement", - "src": "1876:97:0" + "src": "1999:96:0" }, { - "id": 99, + "id": 97, "nodeType": "PlaceholderStatement", - "src": "1983:1:0" + "src": "2105:1:0" } ] }, "documentation": null, - "id": 101, - "name": "transactionExists", + "id": 99, + "name": "transactionExist", "nodeType": "ModifierDefinition", "parameters": { - "id": 88, + "id": 86, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 87, + "id": 85, "name": "scriptHash", "nodeType": "VariableDeclaration", - "scope": 101, - "src": "1846:18:0", + "scope": 99, + "src": "1969:18:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1635,10 +1582,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 86, + "id": 84, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "1846:7:0", + "src": "1969:7:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -1648,16 +1595,16 @@ "visibility": "internal" } ], - "src": "1845:20:0" + "src": "1968:20:0" }, - "src": "1819:172:0", + "src": "1943:170:0", "visibility": "internal" }, { "body": { - "id": 116, + "id": 114, "nodeType": "Block", - "src": "2052:94:0", + "src": "2172:93:0", "statements": [ { "expression": { @@ -1669,7 +1616,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 111, + "id": 109, "isConstant": false, "isLValue": false, "isPure": false, @@ -1680,26 +1627,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 106, + "id": 104, "name": "transactions", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 77, - "src": "2070:12:0", + "referencedDeclaration": 75, + "src": "2190:12:0", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Transaction_$73_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Transaction_$71_storage_$", "typeString": "mapping(bytes32 => struct Escrow_v1_0.Transaction storage ref)" } }, - "id": 108, + "id": 106, "indexExpression": { "argumentTypes": null, - "id": 107, + "id": 105, "name": "scriptHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 103, - "src": "2083:10:0", + "referencedDeclaration": 101, + "src": "2203:10:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -1710,21 +1657,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "2070:24:0", + "src": "2190:24:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Transaction_$73_storage", + "typeIdentifier": "t_struct$_Transaction_$71_storage", "typeString": "struct Escrow_v1_0.Transaction storage ref" } }, - "id": 109, + "id": 107, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "value", "nodeType": "MemberAccess", - "referencedDeclaration": 42, - "src": "2070:30:0", + "referencedDeclaration": 40, + "src": "2190:30:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1735,14 +1682,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 110, + "id": 108, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2104:1:0", + "src": "2224:1:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -1750,7 +1697,7 @@ }, "value": "0" }, - "src": "2070:35:0", + "src": "2190:35:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1758,21 +1705,21 @@ }, { "argumentTypes": null, - "hexValue": "5472616e73616374696f6e20657869737473", - "id": 112, + "hexValue": "5472616e73616374696f6e206578697374", + "id": 110, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "2107:20:0", + "src": "2227:19:0", "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_stringliteral_64ff8d63c933e41af18e90354a9e9e0a94a0877b0dd96b73b67df48f68d00e8a", - "typeString": "literal_string \"Transaction exists\"" + "typeIdentifier": "t_stringliteral_4f41f109da323167d042f4559ebd6e2dc42fdbc2be1a2cea9ff6130572900782", + "typeString": "literal_string \"Transaction exist\"" }, - "value": "Transaction exists" + "value": "Transaction exist" } ], "expression": { @@ -1782,25 +1729,25 @@ "typeString": "bool" }, { - "typeIdentifier": "t_stringliteral_64ff8d63c933e41af18e90354a9e9e0a94a0877b0dd96b73b67df48f68d00e8a", - "typeString": "literal_string \"Transaction exists\"" + "typeIdentifier": "t_stringliteral_4f41f109da323167d042f4559ebd6e2dc42fdbc2be1a2cea9ff6130572900782", + "typeString": "literal_string \"Transaction exist\"" } ], - "id": 105, + "id": 103, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1389, - 1390 + 1382, + 1383 ], - "referencedDeclaration": 1390, - "src": "2062:7:0", + "referencedDeclaration": 1383, + "src": "2182:7:0", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 113, + "id": 111, "isConstant": false, "isLValue": false, "isPure": false, @@ -1808,38 +1755,38 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2062:66:0", + "src": "2182:65:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 114, + "id": 112, "nodeType": "ExpressionStatement", - "src": "2062:66:0" + "src": "2182:65:0" }, { - "id": 115, + "id": 113, "nodeType": "PlaceholderStatement", - "src": "2138:1:0" + "src": "2257:1:0" } ] }, "documentation": null, - "id": 117, - "name": "transactionDoesNotExists", + "id": 115, + "name": "transactionDoesNotExist", "nodeType": "ModifierDefinition", "parameters": { - "id": 104, + "id": 102, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 103, + "id": 101, "name": "scriptHash", "nodeType": "VariableDeclaration", - "scope": 117, - "src": "2032:18:0", + "scope": 115, + "src": "2152:18:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1847,10 +1794,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 102, + "id": 100, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "2032:7:0", + "src": "2152:7:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -1860,16 +1807,16 @@ "visibility": "internal" } ], - "src": "2031:20:0" + "src": "2151:20:0" }, - "src": "1997:149:0", + "src": "2119:146:0", "visibility": "internal" }, { "body": { - "id": 133, + "id": 131, "nodeType": "Block", - "src": "2195:161:0", + "src": "2314:145:0", "statements": [ { "expression": { @@ -1881,7 +1828,7 @@ "typeIdentifier": "t_enum$_Status_$9", "typeString": "enum Escrow_v1_0.Status" }, - "id": 128, + "id": 126, "isConstant": false, "isLValue": false, "isPure": false, @@ -1892,26 +1839,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 122, + "id": 120, "name": "transactions", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 77, - "src": "2226:12:0", + "referencedDeclaration": 75, + "src": "2345:12:0", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Transaction_$73_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Transaction_$71_storage_$", "typeString": "mapping(bytes32 => struct Escrow_v1_0.Transaction storage ref)" } }, - "id": 124, + "id": 122, "indexExpression": { "argumentTypes": null, - "id": 123, + "id": 121, "name": "scriptHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 119, - "src": "2239:10:0", + "referencedDeclaration": 117, + "src": "2358:10:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -1922,21 +1869,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "2226:24:0", + "src": "2345:24:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Transaction_$73_storage", + "typeIdentifier": "t_struct$_Transaction_$71_storage", "typeString": "struct Escrow_v1_0.Transaction storage ref" } }, - "id": 125, + "id": 123, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "status", "nodeType": "MemberAccess", - "referencedDeclaration": 46, - "src": "2226:31:0", + "referencedDeclaration": 44, + "src": "2345:31:0", "typeDescriptions": { "typeIdentifier": "t_enum$_Status_$9", "typeString": "enum Escrow_v1_0.Status" @@ -1948,18 +1895,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 126, + "id": 124, "name": "Status", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9, - "src": "2261:6:0", + "src": "2380:6:0", "typeDescriptions": { "typeIdentifier": "t_type$_t_enum$_Status_$9_$", "typeString": "type(enum Escrow_v1_0.Status)" } }, - "id": 127, + "id": 125, "isConstant": false, "isLValue": false, "isPure": true, @@ -1967,13 +1914,13 @@ "memberName": "FUNDED", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "2261:13:0", + "src": "2380:13:0", "typeDescriptions": { "typeIdentifier": "t_enum$_Status_$9", "typeString": "enum Escrow_v1_0.Status" } }, - "src": "2226:48:0", + "src": "2345:48:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1981,21 +1928,21 @@ }, { "argumentTypes": null, - "hexValue": "5472616e73616374696f6e2069732065697468657220696e2064697370757465206f722072656c6561736564207374617465", - "id": 129, + "hexValue": "5472616e73616374696f6e206973206e6f7420696e2046554e444544207374617465", + "id": 127, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "2276:52:0", + "src": "2395:36:0", "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_stringliteral_0cc8916d65fa11e0e6538cf603067141ec9685ba71ec1b5e50c6b5b71a8ab654", - "typeString": "literal_string \"Transaction is either in dispute or released state\"" + "typeIdentifier": "t_stringliteral_5244efce1630cfae7257c0817c921ae75135c1043344a4cf9a1988c03337f39d", + "typeString": "literal_string \"Transaction is not in FUNDED state\"" }, - "value": "Transaction is either in dispute or released state" + "value": "Transaction is not in FUNDED state" } ], "expression": { @@ -2005,25 +1952,25 @@ "typeString": "bool" }, { - "typeIdentifier": "t_stringliteral_0cc8916d65fa11e0e6538cf603067141ec9685ba71ec1b5e50c6b5b71a8ab654", - "typeString": "literal_string \"Transaction is either in dispute or released state\"" + "typeIdentifier": "t_stringliteral_5244efce1630cfae7257c0817c921ae75135c1043344a4cf9a1988c03337f39d", + "typeString": "literal_string \"Transaction is not in FUNDED state\"" } ], - "id": 121, + "id": 119, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1389, - 1390 + 1382, + 1383 ], - "referencedDeclaration": 1390, - "src": "2205:7:0", + "referencedDeclaration": 1383, + "src": "2324:7:0", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 130, + "id": 128, "isConstant": false, "isLValue": false, "isPure": false, @@ -2031,38 +1978,38 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2205:133:0", + "src": "2324:117:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 131, + "id": 129, "nodeType": "ExpressionStatement", - "src": "2205:133:0" + "src": "2324:117:0" }, { - "id": 132, + "id": 130, "nodeType": "PlaceholderStatement", - "src": "2348:1:0" + "src": "2451:1:0" } ] }, "documentation": null, - "id": 134, + "id": 132, "name": "inFundedState", "nodeType": "ModifierDefinition", "parameters": { - "id": 120, + "id": 118, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 119, + "id": 117, "name": "scriptHash", "nodeType": "VariableDeclaration", - "scope": 134, - "src": "2175:18:0", + "scope": 132, + "src": "2294:18:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2070,10 +2017,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 118, + "id": 116, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "2175:7:0", + "src": "2294:7:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -2083,16 +2030,16 @@ "visibility": "internal" } ], - "src": "2174:20:0" + "src": "2293:20:0" }, - "src": "2152:204:0", + "src": "2271:188:0", "visibility": "internal" }, { "body": { - "id": 148, + "id": 146, "nodeType": "Block", - "src": "2410:88:0", + "src": "2513:88:0", "statements": [ { "expression": { @@ -2104,19 +2051,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 143, + "id": 141, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 139, + "id": 137, "name": "addressToCheck", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 136, - "src": "2428:14:0", + "referencedDeclaration": 134, + "src": "2531:14:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2130,14 +2077,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 141, + "id": 139, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2454:1:0", + "src": "2557:1:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -2153,20 +2100,20 @@ "typeString": "int_const 0" } ], - "id": 140, + "id": 138, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "2446:7:0", + "src": "2549:7:0", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 142, + "id": 140, "isConstant": false, "isLValue": false, "isPure": true, @@ -2174,13 +2121,13 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2446:10:0", + "src": "2549:10:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "2428:28:0", + "src": "2531:28:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2189,14 +2136,14 @@ { "argumentTypes": null, "hexValue": "5a65726f206164647265737320706173736564", - "id": 144, + "id": 142, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "2458:21:0", + "src": "2561:21:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_93e85f37f73cf8e1b855512ab7e00aab2b791117712ecb476daeb6c2c0a27a67", @@ -2216,21 +2163,21 @@ "typeString": "literal_string \"Zero address passed\"" } ], - "id": 138, + "id": 136, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1389, - 1390 + 1382, + 1383 ], - "referencedDeclaration": 1390, - "src": "2420:7:0", + "referencedDeclaration": 1383, + "src": "2523:7:0", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 145, + "id": 143, "isConstant": false, "isLValue": false, "isPure": false, @@ -2238,38 +2185,38 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2420:60:0", + "src": "2523:60:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 146, + "id": 144, "nodeType": "ExpressionStatement", - "src": "2420:60:0" + "src": "2523:60:0" }, { - "id": 147, + "id": 145, "nodeType": "PlaceholderStatement", - "src": "2490:1:0" + "src": "2593:1:0" } ] }, "documentation": null, - "id": 149, + "id": 147, "name": "nonZeroAddress", "nodeType": "ModifierDefinition", "parameters": { - "id": 137, + "id": 135, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 136, + "id": 134, "name": "addressToCheck", "nodeType": "VariableDeclaration", - "scope": 149, - "src": "2386:22:0", + "scope": 147, + "src": "2489:22:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2277,10 +2224,10 @@ "typeString": "address" }, "typeName": { - "id": 135, + "id": 133, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2386:7:0", + "src": "2489:7:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2290,16 +2237,16 @@ "visibility": "internal" } ], - "src": "2385:24:0" + "src": "2488:24:0" }, - "src": "2362:136:0", + "src": "2465:136:0", "visibility": "internal" }, { "body": { - "id": 166, + "id": 164, "nodeType": "Block", - "src": "2613:153:0", + "src": "2716:153:0", "statements": [ { "expression": { @@ -2311,7 +2258,7 @@ "typeIdentifier": "t_enum$_TransactionType_$12", "typeString": "enum Escrow_v1_0.TransactionType" }, - "id": 161, + "id": 159, "isConstant": false, "isLValue": false, "isPure": false, @@ -2322,26 +2269,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 156, + "id": 154, "name": "transactions", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 77, - "src": "2644:12:0", + "referencedDeclaration": 75, + "src": "2747:12:0", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Transaction_$73_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Transaction_$71_storage_$", "typeString": "mapping(bytes32 => struct Escrow_v1_0.Transaction storage ref)" } }, - "id": 158, + "id": 156, "indexExpression": { "argumentTypes": null, - "id": 157, + "id": 155, "name": "scriptHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 151, - "src": "2657:10:0", + "referencedDeclaration": 149, + "src": "2760:10:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -2352,21 +2299,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "2644:24:0", + "src": "2747:24:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Transaction_$73_storage", + "typeIdentifier": "t_struct$_Transaction_$71_storage", "typeString": "struct Escrow_v1_0.Transaction storage ref" } }, - "id": 159, + "id": 157, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "transactionType", "nodeType": "MemberAccess", - "referencedDeclaration": 48, - "src": "2644:40:0", + "referencedDeclaration": 46, + "src": "2747:40:0", "typeDescriptions": { "typeIdentifier": "t_enum$_TransactionType_$12", "typeString": "enum Escrow_v1_0.TransactionType" @@ -2376,18 +2323,18 @@ "operator": "==", "rightExpression": { "argumentTypes": null, - "id": 160, + "id": 158, "name": "transactionType", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 153, - "src": "2688:15:0", + "referencedDeclaration": 151, + "src": "2791:15:0", "typeDescriptions": { "typeIdentifier": "t_enum$_TransactionType_$12", "typeString": "enum Escrow_v1_0.TransactionType" } }, - "src": "2644:59:0", + "src": "2747:59:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2396,14 +2343,14 @@ { "argumentTypes": null, "hexValue": "5472616e73616374696f6e207479706520646f6573206e6f74206d61746368", - "id": 162, + "id": 160, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "2705:33:0", + "src": "2808:33:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_c798eb33a8bd5d4c22212d5c8611219bb87da2d82aefe8e88b1f970a0f133cc3", @@ -2423,21 +2370,21 @@ "typeString": "literal_string \"Transaction type does not match\"" } ], - "id": 155, + "id": 153, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1389, - 1390 + 1382, + 1383 ], - "referencedDeclaration": 1390, - "src": "2623:7:0", + "referencedDeclaration": 1383, + "src": "2726:7:0", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 163, + "id": 161, "isConstant": false, "isLValue": false, "isPure": false, @@ -2445,38 +2392,38 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2623:125:0", + "src": "2726:125:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 164, + "id": 162, "nodeType": "ExpressionStatement", - "src": "2623:125:0" + "src": "2726:125:0" }, { - "id": 165, + "id": 163, "nodeType": "PlaceholderStatement", - "src": "2758:1:0" + "src": "2861:1:0" } ] }, "documentation": null, - "id": 167, + "id": 165, "name": "checkTransactionType", "nodeType": "ModifierDefinition", "parameters": { - "id": 154, + "id": 152, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 151, + "id": 149, "name": "scriptHash", "nodeType": "VariableDeclaration", - "scope": 167, - "src": "2543:18:0", + "scope": 165, + "src": "2646:18:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2484,10 +2431,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 150, + "id": 148, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "2543:7:0", + "src": "2646:7:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -2498,11 +2445,11 @@ }, { "constant": false, - "id": 153, + "id": 151, "name": "transactionType", "nodeType": "VariableDeclaration", - "scope": 167, - "src": "2571:31:0", + "scope": 165, + "src": "2674:31:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2511,11 +2458,11 @@ }, "typeName": { "contractScope": null, - "id": 152, + "id": 150, "name": "TransactionType", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 12, - "src": "2571:15:0", + "src": "2674:15:0", "typeDescriptions": { "typeIdentifier": "t_enum$_TransactionType_$12", "typeString": "enum Escrow_v1_0.TransactionType" @@ -2525,16 +2472,16 @@ "visibility": "internal" } ], - "src": "2533:75:0" + "src": "2636:75:0" }, - "src": "2504:262:0", + "src": "2607:262:0", "visibility": "internal" }, { "body": { - "id": 183, + "id": 181, "nodeType": "Block", - "src": "2811:152:0", + "src": "2914:152:0", "statements": [ { "expression": { @@ -2546,7 +2493,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 178, + "id": 176, "isConstant": false, "isLValue": false, "isPure": false, @@ -2555,18 +2502,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 172, + "id": 170, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1386, - "src": "2842:3:0", + "referencedDeclaration": 1379, + "src": "2945:3:0", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 173, + "id": 171, "isConstant": false, "isLValue": false, "isPure": false, @@ -2574,7 +2521,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "2842:10:0", + "src": "2945:10:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2588,26 +2535,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 174, + "id": 172, "name": "transactions", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 77, - "src": "2856:12:0", + "referencedDeclaration": 75, + "src": "2959:12:0", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Transaction_$73_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Transaction_$71_storage_$", "typeString": "mapping(bytes32 => struct Escrow_v1_0.Transaction storage ref)" } }, - "id": 176, + "id": 174, "indexExpression": { "argumentTypes": null, - "id": 175, + "id": 173, "name": "scriptHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 169, - "src": "2869:10:0", + "referencedDeclaration": 167, + "src": "2972:10:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -2618,27 +2565,27 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "2856:24:0", + "src": "2959:24:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Transaction_$73_storage", + "typeIdentifier": "t_struct$_Transaction_$71_storage", "typeString": "struct Escrow_v1_0.Transaction storage ref" } }, - "id": 177, + "id": 175, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "buyer", "nodeType": "MemberAccess", - "referencedDeclaration": 54, - "src": "2856:30:0", + "referencedDeclaration": 52, + "src": "2959:30:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "2842:44:0", + "src": "2945:44:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2647,14 +2594,14 @@ { "argumentTypes": null, "hexValue": "54686520696e69746961746f72206f6620746865207472616e73616374696f6e206973206e6f74206275796572", - "id": 179, + "id": 177, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "2888:47:0", + "src": "2991:47:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_b4fc72d2373e6fc668b2bc10a6c84713d84de5f4dc58bb69053e1a18ae67c2f9", @@ -2674,21 +2621,21 @@ "typeString": "literal_string \"The initiator of the transaction is not buyer\"" } ], - "id": 171, + "id": 169, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1389, - 1390 + 1382, + 1383 ], - "referencedDeclaration": 1390, - "src": "2821:7:0", + "referencedDeclaration": 1383, + "src": "2924:7:0", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 180, + "id": 178, "isConstant": false, "isLValue": false, "isPure": false, @@ -2696,38 +2643,38 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2821:124:0", + "src": "2924:124:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 181, + "id": 179, "nodeType": "ExpressionStatement", - "src": "2821:124:0" + "src": "2924:124:0" }, { - "id": 182, + "id": 180, "nodeType": "PlaceholderStatement", - "src": "2955:1:0" + "src": "3058:1:0" } ] }, "documentation": null, - "id": 184, + "id": 182, "name": "onlyBuyer", "nodeType": "ModifierDefinition", "parameters": { - "id": 170, + "id": 168, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 169, + "id": 167, "name": "scriptHash", "nodeType": "VariableDeclaration", - "scope": 184, - "src": "2791:18:0", + "scope": 182, + "src": "2894:18:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2735,10 +2682,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 168, + "id": 166, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "2791:7:0", + "src": "2894:7:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -2748,16 +2695,16 @@ "visibility": "internal" } ], - "src": "2790:20:0" + "src": "2893:20:0" }, - "src": "2772:191:0", + "src": "2875:191:0", "visibility": "internal" }, { "body": { - "id": 235, + "id": 233, "nodeType": "Block", - "src": "4257:347:0", + "src": "4215:347:0", "statements": [ { "expression": { @@ -2765,12 +2712,12 @@ "arguments": [ { "argumentTypes": null, - "id": 211, + "id": 209, "name": "buyer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 186, - "src": "4296:5:0", + "referencedDeclaration": 184, + "src": "4254:5:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2778,12 +2725,12 @@ }, { "argumentTypes": null, - "id": 212, + "id": 210, "name": "seller", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 188, - "src": "4315:6:0", + "referencedDeclaration": 186, + "src": "4273:6:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2791,12 +2738,12 @@ }, { "argumentTypes": null, - "id": 213, + "id": 211, "name": "moderator", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 190, - "src": "4335:9:0", + "referencedDeclaration": 188, + "src": "4293:9:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2804,12 +2751,12 @@ }, { "argumentTypes": null, - "id": 214, + "id": 212, "name": "threshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 192, - "src": "4358:9:0", + "referencedDeclaration": 190, + "src": "4316:9:0", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -2817,12 +2764,12 @@ }, { "argumentTypes": null, - "id": 215, + "id": 213, "name": "timeoutHours", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 194, - "src": "4381:12:0", + "referencedDeclaration": 192, + "src": "4339:12:0", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -2830,12 +2777,12 @@ }, { "argumentTypes": null, - "id": 216, + "id": 214, "name": "scriptHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 196, - "src": "4407:10:0", + "referencedDeclaration": 194, + "src": "4365:10:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -2845,18 +2792,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 217, + "id": 215, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1386, - "src": "4431:3:0", + "referencedDeclaration": 1379, + "src": "4389:3:0", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 218, + "id": 216, "isConstant": false, "isLValue": false, "isPure": false, @@ -2864,7 +2811,7 @@ "memberName": "value", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "4431:9:0", + "src": "4389:9:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2872,12 +2819,12 @@ }, { "argumentTypes": null, - "id": 219, + "id": 217, "name": "uniqueId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 198, - "src": "4454:8:0", + "referencedDeclaration": 196, + "src": "4412:8:0", "typeDescriptions": { "typeIdentifier": "t_bytes20", "typeString": "bytes20" @@ -2887,18 +2834,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 220, + "id": 218, "name": "TransactionType", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12, - "src": "4476:15:0", + "src": "4434:15:0", "typeDescriptions": { "typeIdentifier": "t_type$_t_enum$_TransactionType_$12_$", "typeString": "type(enum Escrow_v1_0.TransactionType)" } }, - "id": 221, + "id": 219, "isConstant": false, "isLValue": false, "isPure": true, @@ -2906,7 +2853,7 @@ "memberName": "ETHER", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "4476:21:0", + "src": "4434:21:0", "typeDescriptions": { "typeIdentifier": "t_enum$_TransactionType_$12", "typeString": "enum Escrow_v1_0.TransactionType" @@ -2918,14 +2865,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 223, + "id": 221, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4519:1:0", + "src": "4477:1:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -2941,20 +2888,20 @@ "typeString": "int_const 0" } ], - "id": 222, + "id": 220, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "4511:7:0", + "src": "4469:7:0", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 224, + "id": 222, "isConstant": false, "isLValue": false, "isPure": true, @@ -2962,7 +2909,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4511:10:0", + "src": "4469:10:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3012,18 +2959,18 @@ "typeString": "address" } ], - "id": 210, + "id": 208, "name": "_addTransaction", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1212, - "src": "4267:15:0", + "referencedDeclaration": 1205, + "src": "4225:15:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_address_$_t_uint8_$_t_uint32_$_t_bytes32_$_t_uint256_$_t_bytes20_$_t_enum$_TransactionType_$12_$_t_address_$returns$__$", "typeString": "function (address,address,address,uint8,uint32,bytes32,uint256,bytes20,enum Escrow_v1_0.TransactionType,address)" } }, - "id": 225, + "id": 223, "isConstant": false, "isLValue": false, "isPure": false, @@ -3031,15 +2978,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4267:264:0", + "src": "4225:264:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 226, + "id": 224, "nodeType": "ExpressionStatement", - "src": "4267:264:0" + "src": "4225:264:0" }, { "eventCall": { @@ -3047,12 +2994,12 @@ "arguments": [ { "argumentTypes": null, - "id": 228, + "id": 226, "name": "scriptHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 196, - "src": "4562:10:0", + "referencedDeclaration": 194, + "src": "4520:10:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -3062,18 +3009,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 229, + "id": 227, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1386, - "src": "4574:3:0", + "referencedDeclaration": 1379, + "src": "4532:3:0", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 230, + "id": 228, "isConstant": false, "isLValue": false, "isPure": false, @@ -3081,7 +3028,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "4574:10:0", + "src": "4532:10:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3091,18 +3038,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 231, + "id": 229, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1386, - "src": "4586:3:0", + "referencedDeclaration": 1379, + "src": "4544:3:0", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 232, + "id": 230, "isConstant": false, "isLValue": false, "isPure": false, @@ -3110,7 +3057,7 @@ "memberName": "value", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "4586:9:0", + "src": "4544:9:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3132,18 +3079,18 @@ "typeString": "uint256" } ], - "id": 227, + "id": 225, "name": "Funded", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 38, - "src": "4555:6:0", + "src": "4513:6:0", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (bytes32,address,uint256)" } }, - "id": 233, + "id": 231, "isConstant": false, "isLValue": false, "isPure": false, @@ -3151,20 +3098,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4555:41:0", + "src": "4513:41:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 234, + "id": 232, "nodeType": "EmitStatement", - "src": "4550:46:0" + "src": "4508:46:0" } ] }, - "documentation": "dev Add new transaction in the contract\nparam buyer The buyer of the transaction\nparam seller The seller of the listing associated with the transaction\nparam moderator Moderator for this transaction\nparam scriptHash keccak256 hash of the redeem script\nparam threshold Minimum number of singatures required to released funds\nparam timeoutHours Hours after which seller can release funds into his favour by signing transaction\nparam uniqueId bytes20 unique id for the transaction, generated by ETH wallet\nedeem Script format will be following\n\nscripthash-> keccak256(uniqueId, threshold, timeoutHours, buyer, seller, moderator)\nass amount of the ethers to be put in escrow\nlease keep in mind you will have to add moderator fees also in the value", - "id": 236, + "documentation": "@dev Add new transaction in the contract\n@param buyer The buyer of the transaction\n@param seller The seller of the listing associated with the transaction\n@param moderator Moderator for this transaction\n@param threshold Minimum number of signatures required to released funds\n@param timeoutHours Hours after which seller can release funds into his favour by signing transaction unilaterally\n@param scriptHash keccak256 hash of the redeem script\n@param uniqueId bytes20 unique id for the transaction, generated by ETH wallet\nRedeem Script format will be following\n\nPass amount of the ethers to be put in escrow", + "id": 234, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -3173,115 +3120,115 @@ "arguments": [ { "argumentTypes": null, - "id": 201, + "id": 199, "name": "scriptHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 196, - "src": "4180:10:0", + "referencedDeclaration": 194, + "src": "4138:10:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } } ], - "id": 202, + "id": 200, "modifierName": { "argumentTypes": null, - "id": 200, - "name": "transactionDoesNotExists", + "id": 198, + "name": "transactionDoesNotExist", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 117, - "src": "4155:24:0", + "referencedDeclaration": 115, + "src": "4114:23:0", "typeDescriptions": { "typeIdentifier": "t_modifier$_t_bytes32_$", "typeString": "modifier (bytes32)" } }, "nodeType": "ModifierInvocation", - "src": "4155:36:0" + "src": "4114:35:0" }, { "arguments": [ { "argumentTypes": null, - "id": 204, + "id": 202, "name": "buyer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 186, - "src": "4215:5:0", + "referencedDeclaration": 184, + "src": "4173:5:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], - "id": 205, + "id": 203, "modifierName": { "argumentTypes": null, - "id": 203, + "id": 201, "name": "nonZeroAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 149, - "src": "4200:14:0", + "referencedDeclaration": 147, + "src": "4158:14:0", "typeDescriptions": { "typeIdentifier": "t_modifier$_t_address_$", "typeString": "modifier (address)" } }, "nodeType": "ModifierInvocation", - "src": "4200:21:0" + "src": "4158:21:0" }, { "arguments": [ { "argumentTypes": null, - "id": 207, + "id": 205, "name": "seller", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 188, - "src": "4245:6:0", + "referencedDeclaration": 186, + "src": "4203:6:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], - "id": 208, + "id": 206, "modifierName": { "argumentTypes": null, - "id": 206, + "id": 204, "name": "nonZeroAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 149, - "src": "4230:14:0", + "referencedDeclaration": 147, + "src": "4188:14:0", "typeDescriptions": { "typeIdentifier": "t_modifier$_t_address_$", "typeString": "modifier (address)" } }, "nodeType": "ModifierInvocation", - "src": "4230:22:0" + "src": "4188:22:0" } ], "name": "addTransaction", "nodeType": "FunctionDefinition", "parameters": { - "id": 199, + "id": 197, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 186, + "id": 184, "name": "buyer", "nodeType": "VariableDeclaration", - "scope": 236, - "src": "3935:13:0", + "scope": 234, + "src": "3894:13:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3289,10 +3236,10 @@ "typeString": "address" }, "typeName": { - "id": 185, + "id": 183, "name": "address", "nodeType": "ElementaryTypeName", - "src": "3935:7:0", + "src": "3894:7:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3303,11 +3250,11 @@ }, { "constant": false, - "id": 188, + "id": 186, "name": "seller", "nodeType": "VariableDeclaration", - "scope": 236, - "src": "3958:14:0", + "scope": 234, + "src": "3917:14:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3315,10 +3262,10 @@ "typeString": "address" }, "typeName": { - "id": 187, + "id": 185, "name": "address", "nodeType": "ElementaryTypeName", - "src": "3958:7:0", + "src": "3917:7:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3329,11 +3276,11 @@ }, { "constant": false, - "id": 190, + "id": 188, "name": "moderator", "nodeType": "VariableDeclaration", - "scope": 236, - "src": "3982:17:0", + "scope": 234, + "src": "3941:17:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3341,10 +3288,10 @@ "typeString": "address" }, "typeName": { - "id": 189, + "id": 187, "name": "address", "nodeType": "ElementaryTypeName", - "src": "3982:7:0", + "src": "3941:7:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3355,11 +3302,11 @@ }, { "constant": false, - "id": 192, + "id": 190, "name": "threshold", "nodeType": "VariableDeclaration", - "scope": 236, - "src": "4009:15:0", + "scope": 234, + "src": "3968:15:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3367,10 +3314,10 @@ "typeString": "uint8" }, "typeName": { - "id": 191, + "id": 189, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "4009:5:0", + "src": "3968:5:0", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -3381,11 +3328,11 @@ }, { "constant": false, - "id": 194, + "id": 192, "name": "timeoutHours", "nodeType": "VariableDeclaration", - "scope": 236, - "src": "4034:19:0", + "scope": 234, + "src": "3993:19:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3393,10 +3340,10 @@ "typeString": "uint32" }, "typeName": { - "id": 193, + "id": 191, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "4034:6:0", + "src": "3993:6:0", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -3407,11 +3354,11 @@ }, { "constant": false, - "id": 196, + "id": 194, "name": "scriptHash", "nodeType": "VariableDeclaration", - "scope": 236, - "src": "4063:18:0", + "scope": 234, + "src": "4022:18:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3419,10 +3366,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 195, + "id": 193, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "4063:7:0", + "src": "4022:7:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -3433,11 +3380,11 @@ }, { "constant": false, - "id": 198, + "id": 196, "name": "uniqueId", "nodeType": "VariableDeclaration", - "scope": 236, - "src": "4091:16:0", + "scope": 234, + "src": "4050:16:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3445,10 +3392,10 @@ "typeString": "bytes20" }, "typeName": { - "id": 197, + "id": 195, "name": "bytes20", "nodeType": "ElementaryTypeName", - "src": "4091:7:0", + "src": "4050:7:0", "typeDescriptions": { "typeIdentifier": "t_bytes20", "typeString": "bytes20" @@ -3458,17 +3405,17 @@ "visibility": "internal" } ], - "src": "3925:188:0" + "src": "3884:188:0" }, "payable": true, "returnParameters": { - "id": 209, + "id": 207, "nodeType": "ParameterList", "parameters": [], - "src": "4257:0:0" + "src": "4215:0:0" }, - "scope": 1213, - "src": "3902:702:0", + "scope": 1206, + "src": "3861:701:0", "stateMutability": "payable", "superFunction": null, "visibility": "external" @@ -3477,7 +3424,7 @@ "body": { "id": 307, "nodeType": "Block", - "src": "6138:587:0", + "src": "5943:597:0", "statements": [ { "expression": { @@ -3485,12 +3432,12 @@ "arguments": [ { "argumentTypes": null, - "id": 270, + "id": 268, "name": "buyer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 238, - "src": "6178:5:0", + "referencedDeclaration": 236, + "src": "5983:5:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3498,12 +3445,12 @@ }, { "argumentTypes": null, - "id": 271, + "id": 269, "name": "seller", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 240, - "src": "6197:6:0", + "referencedDeclaration": 238, + "src": "6002:6:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3511,12 +3458,12 @@ }, { "argumentTypes": null, - "id": 272, + "id": 270, "name": "moderator", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 242, - "src": "6217:9:0", + "referencedDeclaration": 240, + "src": "6022:9:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3524,12 +3471,12 @@ }, { "argumentTypes": null, - "id": 273, + "id": 271, "name": "threshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 244, - "src": "6240:9:0", + "referencedDeclaration": 242, + "src": "6045:9:0", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -3537,12 +3484,12 @@ }, { "argumentTypes": null, - "id": 274, + "id": 272, "name": "timeoutHours", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 246, - "src": "6263:12:0", + "referencedDeclaration": 244, + "src": "6068:12:0", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -3550,12 +3497,12 @@ }, { "argumentTypes": null, - "id": 275, + "id": 273, "name": "scriptHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 248, - "src": "6289:10:0", + "referencedDeclaration": 246, + "src": "6094:10:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -3563,12 +3510,12 @@ }, { "argumentTypes": null, - "id": 276, + "id": 274, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 250, - "src": "6313:5:0", + "referencedDeclaration": 248, + "src": "6118:5:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3576,12 +3523,12 @@ }, { "argumentTypes": null, - "id": 277, + "id": 275, "name": "uniqueId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 252, - "src": "6332:8:0", + "referencedDeclaration": 250, + "src": "6137:8:0", "typeDescriptions": { "typeIdentifier": "t_bytes20", "typeString": "bytes20" @@ -3591,18 +3538,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 278, + "id": 276, "name": "TransactionType", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12, - "src": "6354:15:0", + "src": "6159:15:0", "typeDescriptions": { "typeIdentifier": "t_type$_t_enum$_TransactionType_$12_$", "typeString": "type(enum Escrow_v1_0.TransactionType)" } }, - "id": 279, + "id": 277, "isConstant": false, "isLValue": false, "isPure": true, @@ -3610,7 +3557,7 @@ "memberName": "TOKEN", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "6354:21:0", + "src": "6159:21:0", "typeDescriptions": { "typeIdentifier": "t_enum$_TransactionType_$12", "typeString": "enum Escrow_v1_0.TransactionType" @@ -3618,12 +3565,12 @@ }, { "argumentTypes": null, - "id": 280, + "id": 278, "name": "tokenAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 254, - "src": "6389:12:0", + "referencedDeclaration": 252, + "src": "6194:12:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3673,18 +3620,18 @@ "typeString": "address" } ], - "id": 269, + "id": 267, "name": "_addTransaction", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1212, - "src": "6149:15:0", + "referencedDeclaration": 1205, + "src": "5954:15:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_address_$_t_uint8_$_t_uint32_$_t_bytes32_$_t_uint256_$_t_bytes20_$_t_enum$_TransactionType_$12_$_t_address_$returns$__$", "typeString": "function (address,address,address,uint8,uint32,bytes32,uint256,bytes20,enum Escrow_v1_0.TransactionType,address)" } }, - "id": 281, + "id": 279, "isConstant": false, "isLValue": false, "isPure": false, @@ -3692,43 +3639,43 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6149:262:0", + "src": "5954:262:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 282, + "id": 280, "nodeType": "ExpressionStatement", - "src": "6149:262:0" + "src": "5954:262:0" }, { "assignments": [ - 284 + 282 ], "declarations": [ { "constant": false, - "id": 284, + "id": 282, "name": "token", "nodeType": "VariableDeclaration", "scope": 308, - "src": "6422:20:0", + "src": "6227:20:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_ITokenContract_$1243", + "typeIdentifier": "t_contract$_ITokenContract_$1236", "typeString": "contract ITokenContract" }, "typeName": { "contractScope": null, - "id": 283, + "id": 281, "name": "ITokenContract", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1243, - "src": "6422:14:0", + "referencedDeclaration": 1236, + "src": "6227:14:0", "typeDescriptions": { - "typeIdentifier": "t_contract$_ITokenContract_$1243", + "typeIdentifier": "t_contract$_ITokenContract_$1236", "typeString": "contract ITokenContract" } }, @@ -3736,18 +3683,18 @@ "visibility": "internal" } ], - "id": 288, + "id": 286, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 286, + "id": 284, "name": "tokenAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 254, - "src": "6460:12:0", + "referencedDeclaration": 252, + "src": "6265:12:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3761,18 +3708,18 @@ "typeString": "address" } ], - "id": 285, + "id": 283, "name": "ITokenContract", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1243, - "src": "6445:14:0", + "referencedDeclaration": 1236, + "src": "6250:14:0", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ITokenContract_$1243_$", + "typeIdentifier": "t_type$_t_contract$_ITokenContract_$1236_$", "typeString": "type(contract ITokenContract)" } }, - "id": 287, + "id": 285, "isConstant": false, "isLValue": false, "isPure": false, @@ -3780,14 +3727,14 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6445:28:0", + "src": "6250:28:0", "typeDescriptions": { - "typeIdentifier": "t_contract$_ITokenContract_$1243", + "typeIdentifier": "t_contract$_ITokenContract_$1236", "typeString": "contract ITokenContract" } }, "nodeType": "VariableDeclarationStatement", - "src": "6422:51:0" + "src": "6227:51:0" }, { "expression": { @@ -3800,18 +3747,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 292, + "id": 290, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1386, - "src": "6524:3:0", + "referencedDeclaration": 1379, + "src": "6329:3:0", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 293, + "id": 291, "isConstant": false, "isLValue": false, "isPure": false, @@ -3819,7 +3766,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "6524:10:0", + "src": "6329:10:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3827,15 +3774,53 @@ }, { "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 293, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1396, + "src": "6349:4:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Escrow_v1_0_$1206", + "typeString": "contract Escrow_v1_0" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Escrow_v1_0_$1206", + "typeString": "contract Escrow_v1_0" + } + ], + "id": 292, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "6341:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, "id": 294, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1403, - "src": "6536:4:0", + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6341:13:0", "typeDescriptions": { - "typeIdentifier": "t_contract$_Escrow_v1_0_$1213", - "typeString": "contract Escrow_v1_0" + "typeIdentifier": "t_address", + "typeString": "address" } }, { @@ -3844,8 +3829,8 @@ "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 250, - "src": "6542:5:0", + "referencedDeclaration": 248, + "src": "6356:5:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3859,8 +3844,8 @@ "typeString": "address" }, { - "typeIdentifier": "t_contract$_Escrow_v1_0_$1213", - "typeString": "contract Escrow_v1_0" + "typeIdentifier": "t_address", + "typeString": "address" }, { "typeIdentifier": "t_uint256", @@ -3869,26 +3854,26 @@ ], "expression": { "argumentTypes": null, - "id": 290, + "id": 288, "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 284, - "src": "6505:5:0", + "referencedDeclaration": 282, + "src": "6310:5:0", "typeDescriptions": { - "typeIdentifier": "t_contract$_ITokenContract_$1243", + "typeIdentifier": "t_contract$_ITokenContract_$1236", "typeString": "contract ITokenContract" } }, - "id": 291, + "id": 289, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "transferFrom", "nodeType": "MemberAccess", - "referencedDeclaration": 1242, - "src": "6505:18:0", + "referencedDeclaration": 1235, + "src": "6310:18:0", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$", "typeString": "function (address,address,uint256) external returns (bool)" @@ -3902,7 +3887,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6505:43:0", + "src": "6310:52:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -3910,7 +3895,7 @@ }, { "argumentTypes": null, - "hexValue": "546f6b656e207472616e73666572206661696c65642c206d6179626520796f7520646964206e6f7420617070726f766520657363726f7720636f6e747261637420746f207370656e64206f6e20626568616c66206f66206275796572", + "hexValue": "546f6b656e207472616e73666572206661696c65642c206d6179626520796f7520646964206e6f7420617070726f766520657363726f7720636f6e747261637420746f207370656e64206f6e20626568616c66206f662073656e646572", "id": 297, "isConstant": false, "isLValue": false, @@ -3918,13 +3903,13 @@ "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "6562:94:0", + "src": "6376:95:0", "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_stringliteral_d9d07068d589bc4adc53018a3c57c159ec128fdfb62732a5fa9410e76cf03318", - "typeString": "literal_string \"Token transfer failed, maybe you did not approve escrow contract to spend on behalf of buyer\"" + "typeIdentifier": "t_stringliteral_d81b627ac67759234197a5bdf4d9f7d33298e824ce7bd47e08ce9919cd96c696", + "typeString": "literal_string \"Token transfer failed, maybe you did not approve escrow contract to spend on behalf of sender\"" }, - "value": "Token transfer failed, maybe you did not approve escrow contract to spend on behalf of buyer" + "value": "Token transfer failed, maybe you did not approve escrow contract to spend on behalf of sender" } ], "expression": { @@ -3934,19 +3919,19 @@ "typeString": "bool" }, { - "typeIdentifier": "t_stringliteral_d9d07068d589bc4adc53018a3c57c159ec128fdfb62732a5fa9410e76cf03318", - "typeString": "literal_string \"Token transfer failed, maybe you did not approve escrow contract to spend on behalf of buyer\"" + "typeIdentifier": "t_stringliteral_d81b627ac67759234197a5bdf4d9f7d33298e824ce7bd47e08ce9919cd96c696", + "typeString": "literal_string \"Token transfer failed, maybe you did not approve escrow contract to spend on behalf of sender\"" } ], - "id": 289, + "id": 287, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1389, - 1390 + 1382, + 1383 ], - "referencedDeclaration": 1390, - "src": "6484:7:0", + "referencedDeclaration": 1383, + "src": "6289:7:0", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" @@ -3960,7 +3945,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6484:182:0", + "src": "6289:192:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" @@ -3968,7 +3953,7 @@ }, "id": 299, "nodeType": "ExpressionStatement", - "src": "6484:182:0" + "src": "6289:192:0" }, { "eventCall": { @@ -3980,8 +3965,8 @@ "name": "scriptHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 248, - "src": "6688:10:0", + "referencedDeclaration": 246, + "src": "6503:10:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -3995,8 +3980,8 @@ "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1386, - "src": "6700:3:0", + "referencedDeclaration": 1379, + "src": "6515:3:0", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" @@ -4010,7 +3995,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "6700:10:0", + "src": "6515:10:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4022,8 +4007,8 @@ "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 250, - "src": "6712:5:0", + "referencedDeclaration": 248, + "src": "6527:5:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4050,7 +4035,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 38, - "src": "6681:6:0", + "src": "6496:6:0", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (bytes32,address,uint256)" @@ -4064,7 +4049,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6681:37:0", + "src": "6496:37:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" @@ -4072,11 +4057,11 @@ }, "id": 306, "nodeType": "EmitStatement", - "src": "6676:42:0" + "src": "6491:42:0" } ] }, - "documentation": "dev Add new transaction in the contract\nparam buyer The buyer of the transaction\nparam seller The seller of the listing associated with the transaction\nparam moderator Moderator for this transaction\nparam scriptHash keccak256 hash of the redeem script\nparam threshold Minimum number of singatures required to released funds\nparam timeoutHours Hours after which seller can release funds into his favour by signing transaction\nparam value Amount of tokens to be put in escrow\nparam uniqueId bytes20 unique id for the transaction, generated by ETH wallet\nparam tokenAddress Address of the token to be used\nedeem Script format will be following\n\nscripthash-> keccak256(uniqueId, threshold, timeoutHours, buyer, seller, moderator, tokenAddress)\npprove escrow contract to spend amount of token on your behalf\nlease keep in mind you will have to add moderator fees also in the value", + "documentation": "@dev Add new transaction in the contract\n@param buyer The buyer of the transaction\n@param seller The seller of the listing associated with the transaction\n@param moderator Moderator for this transaction\n@param threshold Minimum number of signatures required to released funds\n@param timeoutHours Hours after which seller can release funds into his favour by signing transaction unilaterally\n@param scriptHash keccak256 hash of the redeem script\n@param value Amount of tokens to be put in escrow\n@param uniqueId bytes20 unique id for the transaction, generated by ETH wallet\n@param tokenAddress Address of the token to be used\nRedeem Script format will be following\n\nApprove escrow contract to spend amount of token on sender's behalf", "id": 308, "implemented": true, "isConstructor": false, @@ -4086,148 +4071,148 @@ "arguments": [ { "argumentTypes": null, - "id": 257, + "id": 255, "name": "scriptHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 248, - "src": "6024:10:0", + "referencedDeclaration": 246, + "src": "5829:10:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } } ], - "id": 258, + "id": 256, "modifierName": { "argumentTypes": null, - "id": 256, - "name": "transactionDoesNotExists", + "id": 254, + "name": "transactionDoesNotExist", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 117, - "src": "5999:24:0", + "referencedDeclaration": 115, + "src": "5805:23:0", "typeDescriptions": { "typeIdentifier": "t_modifier$_t_bytes32_$", "typeString": "modifier (bytes32)" } }, "nodeType": "ModifierInvocation", - "src": "5999:36:0" + "src": "5805:35:0" }, { "arguments": [ { "argumentTypes": null, - "id": 260, + "id": 258, "name": "buyer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 238, - "src": "6059:5:0", + "referencedDeclaration": 236, + "src": "5864:5:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], - "id": 261, + "id": 259, "modifierName": { "argumentTypes": null, - "id": 259, + "id": 257, "name": "nonZeroAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 149, - "src": "6044:14:0", + "referencedDeclaration": 147, + "src": "5849:14:0", "typeDescriptions": { "typeIdentifier": "t_modifier$_t_address_$", "typeString": "modifier (address)" } }, "nodeType": "ModifierInvocation", - "src": "6044:21:0" + "src": "5849:21:0" }, { "arguments": [ { "argumentTypes": null, - "id": 263, + "id": 261, "name": "seller", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 240, - "src": "6089:6:0", + "referencedDeclaration": 238, + "src": "5894:6:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], - "id": 264, + "id": 262, "modifierName": { "argumentTypes": null, - "id": 262, + "id": 260, "name": "nonZeroAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 149, - "src": "6074:14:0", + "referencedDeclaration": 147, + "src": "5879:14:0", "typeDescriptions": { "typeIdentifier": "t_modifier$_t_address_$", "typeString": "modifier (address)" } }, "nodeType": "ModifierInvocation", - "src": "6074:22:0" + "src": "5879:22:0" }, { "arguments": [ { "argumentTypes": null, - "id": 266, + "id": 264, "name": "tokenAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 254, - "src": "6120:12:0", + "referencedDeclaration": 252, + "src": "5925:12:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], - "id": 267, + "id": 265, "modifierName": { "argumentTypes": null, - "id": 265, + "id": 263, "name": "nonZeroAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 149, - "src": "6105:14:0", + "referencedDeclaration": 147, + "src": "5910:14:0", "typeDescriptions": { "typeIdentifier": "t_modifier$_t_address_$", "typeString": "modifier (address)" } }, "nodeType": "ModifierInvocation", - "src": "6105:28:0" + "src": "5910:28:0" } ], "name": "addTokenTransaction", "nodeType": "FunctionDefinition", "parameters": { - "id": 255, + "id": 253, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 238, + "id": 236, "name": "buyer", "nodeType": "VariableDeclaration", "scope": 308, - "src": "5742:13:0", + "src": "5548:13:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4235,10 +4220,10 @@ "typeString": "address" }, "typeName": { - "id": 237, + "id": 235, "name": "address", "nodeType": "ElementaryTypeName", - "src": "5742:7:0", + "src": "5548:7:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4249,11 +4234,11 @@ }, { "constant": false, - "id": 240, + "id": 238, "name": "seller", "nodeType": "VariableDeclaration", "scope": 308, - "src": "5765:14:0", + "src": "5571:14:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4261,10 +4246,10 @@ "typeString": "address" }, "typeName": { - "id": 239, + "id": 237, "name": "address", "nodeType": "ElementaryTypeName", - "src": "5765:7:0", + "src": "5571:7:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4275,11 +4260,11 @@ }, { "constant": false, - "id": 242, + "id": 240, "name": "moderator", "nodeType": "VariableDeclaration", "scope": 308, - "src": "5789:17:0", + "src": "5595:17:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4287,10 +4272,10 @@ "typeString": "address" }, "typeName": { - "id": 241, + "id": 239, "name": "address", "nodeType": "ElementaryTypeName", - "src": "5789:7:0", + "src": "5595:7:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4301,11 +4286,11 @@ }, { "constant": false, - "id": 244, + "id": 242, "name": "threshold", "nodeType": "VariableDeclaration", "scope": 308, - "src": "5816:15:0", + "src": "5622:15:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4313,10 +4298,10 @@ "typeString": "uint8" }, "typeName": { - "id": 243, + "id": 241, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "5816:5:0", + "src": "5622:5:0", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -4327,11 +4312,11 @@ }, { "constant": false, - "id": 246, + "id": 244, "name": "timeoutHours", "nodeType": "VariableDeclaration", "scope": 308, - "src": "5841:19:0", + "src": "5647:19:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4339,10 +4324,10 @@ "typeString": "uint32" }, "typeName": { - "id": 245, + "id": 243, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "5841:6:0", + "src": "5647:6:0", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -4353,11 +4338,11 @@ }, { "constant": false, - "id": 248, + "id": 246, "name": "scriptHash", "nodeType": "VariableDeclaration", "scope": 308, - "src": "5870:18:0", + "src": "5676:18:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4365,10 +4350,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 247, + "id": 245, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "5870:7:0", + "src": "5676:7:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -4379,11 +4364,11 @@ }, { "constant": false, - "id": 250, + "id": 248, "name": "value", "nodeType": "VariableDeclaration", "scope": 308, - "src": "5898:13:0", + "src": "5704:13:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4391,10 +4376,10 @@ "typeString": "uint256" }, "typeName": { - "id": 249, + "id": 247, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "5898:7:0", + "src": "5704:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4405,11 +4390,11 @@ }, { "constant": false, - "id": 252, + "id": 250, "name": "uniqueId", "nodeType": "VariableDeclaration", "scope": 308, - "src": "5921:16:0", + "src": "5727:16:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4417,10 +4402,10 @@ "typeString": "bytes20" }, "typeName": { - "id": 251, + "id": 249, "name": "bytes20", "nodeType": "ElementaryTypeName", - "src": "5921:7:0", + "src": "5727:7:0", "typeDescriptions": { "typeIdentifier": "t_bytes20", "typeString": "bytes20" @@ -4431,11 +4416,11 @@ }, { "constant": false, - "id": 254, + "id": 252, "name": "tokenAddress", "nodeType": "VariableDeclaration", "scope": 308, - "src": "5947:20:0", + "src": "5753:20:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4443,10 +4428,10 @@ "typeString": "address" }, "typeName": { - "id": 253, + "id": 251, "name": "address", "nodeType": "ElementaryTypeName", - "src": "5947:7:0", + "src": "5753:7:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4456,147 +4441,120 @@ "visibility": "internal" } ], - "src": "5732:241:0" + "src": "5538:241:0" }, "payable": false, "returnParameters": { - "id": 268, + "id": 266, "nodeType": "ParameterList", "parameters": [], - "src": "6138:0:0" + "src": "5943:0:0" }, - "scope": 1213, - "src": "5704:1021:0", + "scope": 1206, + "src": "5510:1030:0", "stateMutability": "nonpayable", "superFunction": null, "visibility": "external" }, { "body": { - "id": 326, + "id": 324, "nodeType": "Block", - "src": "7101:76:0", + "src": "6927:75:0", "statements": [ { "expression": { "argumentTypes": null, - "id": 324, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 317, - "name": "check", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 315, - "src": "7111:5:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { + "baseExpression": { "argumentTypes": null, - "baseExpression": { + "expression": { "argumentTypes": null, - "expression": { + "baseExpression": { "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 318, - "name": "transactions", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 77, - "src": "7119:12:0", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Transaction_$73_storage_$", - "typeString": "mapping(bytes32 => struct Escrow_v1_0.Transaction storage ref)" - } - }, - "id": 320, - "indexExpression": { - "argumentTypes": null, - "id": 319, - "name": "scriptHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 310, - "src": "7132:10:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7119:24:0", + "id": 317, + "name": "transactions", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 75, + "src": "6944:12:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Transaction_$73_storage", - "typeString": "struct Escrow_v1_0.Transaction storage ref" + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Transaction_$71_storage_$", + "typeString": "mapping(bytes32 => struct Escrow_v1_0.Transaction storage ref)" + } + }, + "id": 319, + "indexExpression": { + "argumentTypes": null, + "id": 318, + "name": "scriptHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 310, + "src": "6957:10:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" } }, - "id": 321, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberName": "beneficiaries", - "nodeType": "MemberAccess", - "referencedDeclaration": 72, - "src": "7119:38:0", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - } - }, - "id": 323, - "indexExpression": { - "argumentTypes": null, - "id": 322, - "name": "beneficiary", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 312, - "src": "7158:11:0", + "nodeType": "IndexAccess", + "src": "6944:24:0", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_struct$_Transaction_$71_storage", + "typeString": "struct Escrow_v1_0.Transaction storage ref" } }, + "id": 320, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7119:51:0", + "memberName": "beneficiaries", + "nodeType": "MemberAccess", + "referencedDeclaration": 70, + "src": "6944:38:0", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 322, + "indexExpression": { + "argumentTypes": null, + "id": 321, + "name": "beneficiary", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 312, + "src": "6983:11:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" } }, - "src": "7111:59:0", + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6944:51:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 325, - "nodeType": "ExpressionStatement", - "src": "7111:59:0" + "functionReturnParameters": 316, + "id": 323, + "nodeType": "Return", + "src": "6937:58:0" } ] }, - "documentation": "@dev Check whether given address was a beneficiary of transaction execution or not\n@param scriptHash script hash of the transaction\n@param beneficiary Beneficiary address to be checked", - "id": 327, + "documentation": "@dev This method will check whether given address was a beneficiary of transaction execution or not\n@param scriptHash script hash of the transaction\n@param beneficiary Beneficiary address to be checked", + "id": 325, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -4612,8 +4570,8 @@ "id": 310, "name": "scriptHash", "nodeType": "VariableDeclaration", - "scope": 327, - "src": "6984:18:0", + "scope": 325, + "src": "6816:18:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4624,7 +4582,7 @@ "id": 309, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "6984:7:0", + "src": "6816:7:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -4638,8 +4596,8 @@ "id": 312, "name": "beneficiary", "nodeType": "VariableDeclaration", - "scope": 327, - "src": "7012:19:0", + "scope": 325, + "src": "6844:19:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4650,7 +4608,7 @@ "id": 311, "name": "address", "nodeType": "ElementaryTypeName", - "src": "7012:7:0", + "src": "6844:7:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4660,7 +4618,7 @@ "visibility": "internal" } ], - "src": "6974:63:0" + "src": "6806:63:0" }, "payable": false, "returnParameters": { @@ -4670,10 +4628,10 @@ { "constant": false, "id": 315, - "name": "check", + "name": "", "nodeType": "VariableDeclaration", - "scope": 327, - "src": "7085:10:0", + "scope": 325, + "src": "6917:4:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4684,7 +4642,7 @@ "id": 314, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "7085:4:0", + "src": "6917:4:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -4694,140 +4652,113 @@ "visibility": "internal" } ], - "src": "7084:12:0" + "src": "6916:6:0" }, - "scope": 1213, - "src": "6949:228:0", + "scope": 1206, + "src": "6781:221:0", "stateMutability": "view", "superFunction": null, "visibility": "external" }, { "body": { - "id": 345, + "id": 341, "nodeType": "Block", - "src": "7538:61:0", + "src": "7375:61:0", "statements": [ { "expression": { "argumentTypes": null, - "id": 343, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 336, - "name": "vote", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 334, - "src": "7548:4:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { + "baseExpression": { "argumentTypes": null, - "baseExpression": { + "expression": { "argumentTypes": null, - "expression": { + "baseExpression": { "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 337, - "name": "transactions", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 77, - "src": "7555:12:0", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Transaction_$73_storage_$", - "typeString": "mapping(bytes32 => struct Escrow_v1_0.Transaction storage ref)" - } - }, - "id": 339, - "indexExpression": { - "argumentTypes": null, - "id": 338, - "name": "scriptHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 329, - "src": "7568:10:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7555:24:0", + "id": 334, + "name": "transactions", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 75, + "src": "7392:12:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Transaction_$73_storage", - "typeString": "struct Escrow_v1_0.Transaction storage ref" + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Transaction_$71_storage_$", + "typeString": "mapping(bytes32 => struct Escrow_v1_0.Transaction storage ref)" + } + }, + "id": 336, + "indexExpression": { + "argumentTypes": null, + "id": 335, + "name": "scriptHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 327, + "src": "7405:10:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" } }, - "id": 340, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberName": "voted", - "nodeType": "MemberAccess", - "referencedDeclaration": 68, - "src": "7555:30:0", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - } - }, - "id": 342, - "indexExpression": { - "argumentTypes": null, - "id": 341, - "name": "party", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 331, - "src": "7586:5:0", + "nodeType": "IndexAccess", + "src": "7392:24:0", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_struct$_Transaction_$71_storage", + "typeString": "struct Escrow_v1_0.Transaction storage ref" } }, + "id": 337, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7555:37:0", + "memberName": "voted", + "nodeType": "MemberAccess", + "referencedDeclaration": 66, + "src": "7392:30:0", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 339, + "indexExpression": { + "argumentTypes": null, + "id": 338, + "name": "party", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 329, + "src": "7423:5:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" } }, - "src": "7548:44:0", + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "7392:37:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 344, - "nodeType": "ExpressionStatement", - "src": "7548:44:0" + "functionReturnParameters": 333, + "id": 340, + "nodeType": "Return", + "src": "7385:44:0" } ] }, - "documentation": "@dev Check whether given party has voted or not\n@param scriptHash script hash of the transaction\n@param party Address of the party whose vote has to be checked\n@return bool vote", - "id": 346, + "documentation": "@dev This method will check whether given party has voted or not\n@param scriptHash script hash of the transaction\n@param party Address of the party whose vote has to be checked\n@return bool vote", + "id": 342, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -4835,16 +4766,16 @@ "name": "checkVote", "nodeType": "FunctionDefinition", "parameters": { - "id": 332, + "id": 330, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 329, + "id": 327, "name": "scriptHash", "nodeType": "VariableDeclaration", - "scope": 346, - "src": "7428:18:0", + "scope": 342, + "src": "7270:18:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4852,10 +4783,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 328, + "id": 326, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "7428:7:0", + "src": "7270:7:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -4866,11 +4797,11 @@ }, { "constant": false, - "id": 331, + "id": 329, "name": "party", "nodeType": "VariableDeclaration", - "scope": 346, - "src": "7456:13:0", + "scope": 342, + "src": "7298:13:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4878,10 +4809,10 @@ "typeString": "address" }, "typeName": { - "id": 330, + "id": 328, "name": "address", "nodeType": "ElementaryTypeName", - "src": "7456:7:0", + "src": "7298:7:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4891,20 +4822,20 @@ "visibility": "internal" } ], - "src": "7418:57:0" + "src": "7260:57:0" }, "payable": false, "returnParameters": { - "id": 335, + "id": 333, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 334, - "name": "vote", + "id": 332, + "name": "", "nodeType": "VariableDeclaration", - "scope": 346, - "src": "7523:9:0", + "scope": 342, + "src": "7365:4:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4912,10 +4843,10 @@ "typeString": "bool" }, "typeName": { - "id": 333, + "id": 331, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "7523:4:0", + "src": "7365:4:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -4925,85 +4856,20 @@ "visibility": "internal" } ], - "src": "7522:11:0" + "src": "7364:6:0" }, - "scope": 1213, - "src": "7400:199:0", + "scope": 1206, + "src": "7242:194:0", "stateMutability": "view", "superFunction": null, "visibility": "external" }, { "body": { - "id": 405, + "id": 391, "nodeType": "Block", - "src": "8185:330:0", + "src": "8039:238:0", "statements": [ - { - "assignments": [ - 366 - ], - "declarations": [ - { - "constant": false, - "id": 366, - "name": "_value", - "nodeType": "VariableDeclaration", - "scope": 406, - "src": "8195:14:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 365, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "8195:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 369, - "initialValue": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 367, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1386, - "src": "8212:3:0", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 368, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "value", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "8212:9:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "8195:26:0" - }, { "expression": { "argumentTypes": null, @@ -5014,19 +4880,35 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 373, + "id": 365, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 371, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 366, - "src": "8240:6:0", + "expression": { + "argumentTypes": null, + "id": 362, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1379, + "src": "8058:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 363, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "value", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "8058:9:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5037,14 +4919,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 372, + "id": 364, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "8249:1:0", + "src": "8070:1:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -5052,7 +4934,7 @@ }, "value": "0" }, - "src": "8240:10:0", + "src": "8058:13:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -5061,14 +4943,14 @@ { "argumentTypes": null, "hexValue": "56616c7565206d7573742062652067726561746572207468616e207a65726f2e", - "id": 374, + "id": 366, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "8252:34:0", + "src": "8073:34:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_21fbec2be6560b9ccffc4980d43c0d147770168e7aaf24999b418b9010085622", @@ -5088,21 +4970,21 @@ "typeString": "literal_string \"Value must be greater than zero.\"" } ], - "id": 370, + "id": 361, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1389, - 1390 + 1382, + 1383 ], - "referencedDeclaration": 1390, - "src": "8232:7:0", + "referencedDeclaration": 1383, + "src": "8050:7:0", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 375, + "id": 367, "isConstant": false, "isLValue": false, "isPure": false, @@ -5110,20 +4992,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8232:55:0", + "src": "8050:58:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 376, + "id": 368, "nodeType": "ExpressionStatement", - "src": "8232:55:0" + "src": "8050:58:0" }, { "expression": { "argumentTypes": null, - "id": 388, + "id": 381, "isConstant": false, "isLValue": false, "isPure": false, @@ -5134,26 +5016,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 377, + "id": 369, "name": "transactions", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 77, - "src": "8298:12:0", + "referencedDeclaration": 75, + "src": "8119:12:0", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Transaction_$73_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Transaction_$71_storage_$", "typeString": "mapping(bytes32 => struct Escrow_v1_0.Transaction storage ref)" } }, - "id": 379, + "id": 371, "indexExpression": { "argumentTypes": null, - "id": 378, + "id": 370, "name": "scriptHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 348, - "src": "8311:10:0", + "referencedDeclaration": 344, + "src": "8132:10:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -5164,21 +5046,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "8298:24:0", + "src": "8119:24:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Transaction_$73_storage", + "typeIdentifier": "t_struct$_Transaction_$71_storage", "typeString": "struct Escrow_v1_0.Transaction storage ref" } }, - "id": 380, + "id": 372, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberName": "value", "nodeType": "MemberAccess", - "referencedDeclaration": 42, - "src": "8298:30:0", + "referencedDeclaration": 40, + "src": "8119:30:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5191,12 +5073,28 @@ "arguments": [ { "argumentTypes": null, - "id": 386, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 366, - "src": "8379:6:0", + "expression": { + "argumentTypes": null, + "id": 378, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1379, + "src": "8200:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 379, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "value", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "8200:9:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5216,26 +5114,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 381, + "id": 373, "name": "transactions", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 77, - "src": "8331:12:0", + "referencedDeclaration": 75, + "src": "8152:12:0", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Transaction_$73_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Transaction_$71_storage_$", "typeString": "mapping(bytes32 => struct Escrow_v1_0.Transaction storage ref)" } }, - "id": 383, + "id": 375, "indexExpression": { "argumentTypes": null, - "id": 382, + "id": 374, "name": "scriptHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 348, - "src": "8344:10:0", + "referencedDeclaration": 344, + "src": "8165:10:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -5246,41 +5144,41 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "8331:24:0", + "src": "8152:24:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Transaction_$73_storage", + "typeIdentifier": "t_struct$_Transaction_$71_storage", "typeString": "struct Escrow_v1_0.Transaction storage ref" } }, - "id": 384, + "id": 376, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "value", "nodeType": "MemberAccess", - "referencedDeclaration": 42, - "src": "8331:30:0", + "referencedDeclaration": 40, + "src": "8152:30:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 385, + "id": 377, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", - "referencedDeclaration": 1350, - "src": "8331:47:0", + "referencedDeclaration": 1343, + "src": "8152:47:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 387, + "id": 380, "isConstant": false, "isLValue": false, "isPure": false, @@ -5288,126 +5186,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8331:55:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "8298:88:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 389, - "nodeType": "ExpressionStatement", - "src": "8298:88:0" - }, - { - "expression": { - "argumentTypes": null, - "id": 396, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 390, - "name": "transactions", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 77, - "src": "8396:12:0", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Transaction_$73_storage_$", - "typeString": "mapping(bytes32 => struct Escrow_v1_0.Transaction storage ref)" - } - }, - "id": 392, - "indexExpression": { - "argumentTypes": null, - "id": 391, - "name": "scriptHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 348, - "src": "8409:10:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "8396:24:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Transaction_$73_storage", - "typeString": "struct Escrow_v1_0.Transaction storage ref" - } - }, - "id": 393, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "lastModified", - "nodeType": "MemberAccess", - "referencedDeclaration": 44, - "src": "8396:37:0", + "src": "8152:58:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 394, - "name": "block", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1376, - "src": "8436:5:0", - "typeDescriptions": { - "typeIdentifier": "t_magic_block", - "typeString": "block" - } - }, - "id": 395, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "timestamp", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "8436:15:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "8396:55:0", + "src": "8119:91:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 397, + "id": 382, "nodeType": "ExpressionStatement", - "src": "8396:55:0" + "src": "8119:91:0" }, { "eventCall": { @@ -5415,12 +5208,12 @@ "arguments": [ { "argumentTypes": null, - "id": 399, + "id": 384, "name": "scriptHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 348, - "src": "8477:10:0", + "referencedDeclaration": 344, + "src": "8236:10:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -5430,18 +5223,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 400, + "id": 385, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1386, - "src": "8489:3:0", + "referencedDeclaration": 1379, + "src": "8248:3:0", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 401, + "id": 386, "isConstant": false, "isLValue": false, "isPure": false, @@ -5449,7 +5242,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "8489:10:0", + "src": "8248:10:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5457,12 +5250,28 @@ }, { "argumentTypes": null, - "id": 402, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 366, - "src": "8501:6:0", + "expression": { + "argumentTypes": null, + "id": 387, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1379, + "src": "8260:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 388, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "value", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "8260:9:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5484,18 +5293,18 @@ "typeString": "uint256" } ], - "id": 398, + "id": 383, "name": "FundAdded", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 30, - "src": "8467:9:0", + "src": "8226:9:0", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (bytes32,address,uint256)" } }, - "id": 403, + "id": 389, "isConstant": false, "isLValue": false, "isPure": false, @@ -5503,20 +5312,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8467:41:0", + "src": "8226:44:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 404, + "id": 390, "nodeType": "EmitStatement", - "src": "8462:46:0" + "src": "8221:49:0" } ] }, - "documentation": "dev Allows buyer of the transaction to add more funds(ether) in the transaction. This will help to cater scenarios wherein initially buyer missed to fund transaction as required\nparam scriptHash script hash of the transaction\nOnly buyer of the transaction can invoke this method", - "id": 406, + "documentation": "@dev Allows buyer of the transaction to add more funds(ether) in the transaction. \nThis will help to cater scenarios wherein initially buyer missed to fund transaction as required\n@param scriptHash script hash of the transaction\nOnly buyer of the transaction can invoke this method", + "id": 392, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -5525,78 +5334,78 @@ "arguments": [ { "argumentTypes": null, - "id": 351, + "id": 347, "name": "scriptHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 348, - "src": "8025:10:0", + "referencedDeclaration": 344, + "src": "7886:10:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } } ], - "id": 352, + "id": 348, "modifierName": { "argumentTypes": null, - "id": 350, - "name": "transactionExists", + "id": 346, + "name": "transactionExist", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 101, - "src": "8007:17:0", + "referencedDeclaration": 99, + "src": "7869:16:0", "typeDescriptions": { "typeIdentifier": "t_modifier$_t_bytes32_$", "typeString": "modifier (bytes32)" } }, "nodeType": "ModifierInvocation", - "src": "8007:29:0" + "src": "7869:28:0" }, { "arguments": [ { "argumentTypes": null, - "id": 354, + "id": 350, "name": "scriptHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 348, - "src": "8059:10:0", + "referencedDeclaration": 344, + "src": "7920:10:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } } ], - "id": 355, + "id": 351, "modifierName": { "argumentTypes": null, - "id": 353, + "id": 349, "name": "inFundedState", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 134, - "src": "8045:13:0", + "referencedDeclaration": 132, + "src": "7906:13:0", "typeDescriptions": { "typeIdentifier": "t_modifier$_t_bytes32_$", "typeString": "modifier (bytes32)" } }, "nodeType": "ModifierInvocation", - "src": "8045:25:0" + "src": "7906:25:0" }, { "arguments": [ { "argumentTypes": null, - "id": 357, + "id": 353, "name": "scriptHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 348, - "src": "8100:10:0", + "referencedDeclaration": 344, + "src": "7961:10:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -5606,18 +5415,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 358, + "id": 354, "name": "TransactionType", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12, - "src": "8112:15:0", + "src": "7973:15:0", "typeDescriptions": { "typeIdentifier": "t_type$_t_enum$_TransactionType_$12_$", "typeString": "type(enum Escrow_v1_0.TransactionType)" } }, - "id": 359, + "id": 355, "isConstant": false, "isLValue": false, "isPure": true, @@ -5625,77 +5434,77 @@ "memberName": "ETHER", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "8112:21:0", + "src": "7973:21:0", "typeDescriptions": { "typeIdentifier": "t_enum$_TransactionType_$12", "typeString": "enum Escrow_v1_0.TransactionType" } } ], - "id": 360, + "id": 356, "modifierName": { "argumentTypes": null, - "id": 356, + "id": 352, "name": "checkTransactionType", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 167, - "src": "8079:20:0", + "referencedDeclaration": 165, + "src": "7940:20:0", "typeDescriptions": { "typeIdentifier": "t_modifier$_t_bytes32_$_t_enum$_TransactionType_$12_$", "typeString": "modifier (bytes32,enum Escrow_v1_0.TransactionType)" } }, "nodeType": "ModifierInvocation", - "src": "8079:55:0" + "src": "7940:55:0" }, { "arguments": [ { "argumentTypes": null, - "id": 362, + "id": 358, "name": "scriptHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 348, - "src": "8153:10:0", + "referencedDeclaration": 344, + "src": "8014:10:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } } ], - "id": 363, + "id": 359, "modifierName": { "argumentTypes": null, - "id": 361, + "id": 357, "name": "onlyBuyer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 184, - "src": "8143:9:0", + "referencedDeclaration": 182, + "src": "8004:9:0", "typeDescriptions": { "typeIdentifier": "t_modifier$_t_bytes32_$", "typeString": "modifier (bytes32)" } }, "nodeType": "ModifierInvocation", - "src": "8143:21:0" + "src": "8004:21:0" } ], "name": "addFundsToTransaction", "nodeType": "FunctionDefinition", "parameters": { - "id": 349, + "id": 345, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 348, + "id": 344, "name": "scriptHash", "nodeType": "VariableDeclaration", - "scope": 406, - "src": "7957:18:0", + "scope": 392, + "src": "7803:18:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5703,10 +5512,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 347, + "id": 343, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "7957:7:0", + "src": "7803:7:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -5716,76 +5525,27 @@ "visibility": "internal" } ], - "src": "7947:34:0" + "src": "7793:34:0" }, "payable": true, "returnParameters": { - "id": 364, + "id": 360, "nodeType": "ParameterList", "parameters": [], - "src": "8185:0:0" + "src": "8039:0:0" }, - "scope": 1213, - "src": "7917:598:0", + "scope": 1206, + "src": "7763:514:0", "stateMutability": "payable", "superFunction": null, "visibility": "external" }, { "body": { - "id": 488, + "id": 462, "nodeType": "Block", - "src": "9051:648:0", + "src": "8880:537:0", "statements": [ - { - "assignments": [ - 428 - ], - "declarations": [ - { - "constant": false, - "id": 428, - "name": "_value", - "nodeType": "VariableDeclaration", - "scope": 489, - "src": "9061:14:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 427, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "9061:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 430, - "initialValue": { - "argumentTypes": null, - "id": 429, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 410, - "src": "9078:5:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "9061:22:0" - }, { "expression": { "argumentTypes": null, @@ -5796,19 +5556,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 434, + "id": 416, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 432, - "name": "_value", + "id": 414, + "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 428, - "src": "9102:6:0", + "referencedDeclaration": 396, + "src": "8899:5:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5819,14 +5579,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 433, + "id": 415, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "9111:1:0", + "src": "8907:1:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -5834,7 +5594,7 @@ }, "value": "0" }, - "src": "9102:10:0", + "src": "8899:9:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -5843,14 +5603,14 @@ { "argumentTypes": null, "hexValue": "56616c7565206d7573742062652067726561746572207468616e207a65726f2e", - "id": 435, + "id": 417, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "9114:34:0", + "src": "8910:34:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_21fbec2be6560b9ccffc4980d43c0d147770168e7aaf24999b418b9010085622", @@ -5870,21 +5630,21 @@ "typeString": "literal_string \"Value must be greater than zero.\"" } ], - "id": 431, + "id": 413, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1389, - 1390 + 1382, + 1383 ], - "referencedDeclaration": 1390, - "src": "9094:7:0", + "referencedDeclaration": 1383, + "src": "8891:7:0", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 436, + "id": 418, "isConstant": false, "isLValue": false, "isPure": false, @@ -5892,43 +5652,43 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "9094:55:0", + "src": "8891:54:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 437, + "id": 419, "nodeType": "ExpressionStatement", - "src": "9094:55:0" + "src": "8891:54:0" }, { "assignments": [ - 439 + 421 ], "declarations": [ { "constant": false, - "id": 439, + "id": 421, "name": "token", "nodeType": "VariableDeclaration", - "scope": 489, - "src": "9160:20:0", + "scope": 463, + "src": "8956:20:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_ITokenContract_$1243", + "typeIdentifier": "t_contract$_ITokenContract_$1236", "typeString": "contract ITokenContract" }, "typeName": { "contractScope": null, - "id": 438, + "id": 420, "name": "ITokenContract", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1243, - "src": "9160:14:0", + "referencedDeclaration": 1236, + "src": "8956:14:0", "typeDescriptions": { - "typeIdentifier": "t_contract$_ITokenContract_$1243", + "typeIdentifier": "t_contract$_ITokenContract_$1236", "typeString": "contract ITokenContract" } }, @@ -5936,7 +5696,7 @@ "visibility": "internal" } ], - "id": 446, + "id": 428, "initialValue": { "argumentTypes": null, "arguments": [ @@ -5946,26 +5706,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 441, + "id": 423, "name": "transactions", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 77, - "src": "9211:12:0", + "referencedDeclaration": 75, + "src": "9007:12:0", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Transaction_$73_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Transaction_$71_storage_$", "typeString": "mapping(bytes32 => struct Escrow_v1_0.Transaction storage ref)" } }, - "id": 443, + "id": 425, "indexExpression": { "argumentTypes": null, - "id": 442, + "id": 424, "name": "scriptHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 408, - "src": "9224:10:0", + "referencedDeclaration": 394, + "src": "9020:10:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -5976,21 +5736,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "9211:24:0", + "src": "9007:24:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Transaction_$73_storage", + "typeIdentifier": "t_struct$_Transaction_$71_storage", "typeString": "struct Escrow_v1_0.Transaction storage ref" } }, - "id": 444, + "id": 426, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "tokenAddress", "nodeType": "MemberAccess", - "referencedDeclaration": 58, - "src": "9211:37:0", + "referencedDeclaration": 56, + "src": "9007:37:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6004,18 +5764,18 @@ "typeString": "address" } ], - "id": 440, + "id": 422, "name": "ITokenContract", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1243, - "src": "9183:14:0", + "referencedDeclaration": 1236, + "src": "8979:14:0", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ITokenContract_$1243_$", + "typeIdentifier": "t_type$_t_contract$_ITokenContract_$1236_$", "typeString": "type(contract ITokenContract)" } }, - "id": 445, + "id": 427, "isConstant": false, "isLValue": false, "isPure": false, @@ -6023,14 +5783,14 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "9183:75:0", + "src": "8979:75:0", "typeDescriptions": { - "typeIdentifier": "t_contract$_ITokenContract_$1243", + "typeIdentifier": "t_contract$_ITokenContract_$1236", "typeString": "contract ITokenContract" } }, "nodeType": "VariableDeclarationStatement", - "src": "9160:98:0" + "src": "8956:98:0" }, { "expression": { @@ -6043,53 +5803,26 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 450, - "name": "transactions", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 77, - "src": "9309:12:0", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Transaction_$73_storage_$", - "typeString": "mapping(bytes32 => struct Escrow_v1_0.Transaction storage ref)" - } - }, - "id": 452, - "indexExpression": { - "argumentTypes": null, - "id": 451, - "name": "scriptHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 408, - "src": "9322:10:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "9309:24:0", + "id": 432, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1379, + "src": "9105:3:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Transaction_$73_storage", - "typeString": "struct Escrow_v1_0.Transaction storage ref" + "typeIdentifier": "t_magic_message", + "typeString": "msg" } }, - "id": 453, + "id": 433, "isConstant": false, - "isLValue": true, + "isLValue": false, "isPure": false, "lValueRequested": false, - "memberName": "buyer", + "memberName": "sender", "nodeType": "MemberAccess", - "referencedDeclaration": 54, - "src": "9309:30:0", + "referencedDeclaration": null, + "src": "9105:10:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6097,25 +5830,63 @@ }, { "argumentTypes": null, - "id": 454, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1403, - "src": "9341:4:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Escrow_v1_0_$1213", - "typeString": "contract Escrow_v1_0" + "arguments": [ + { + "argumentTypes": null, + "id": 435, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1396, + "src": "9125:4:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Escrow_v1_0_$1206", + "typeString": "contract Escrow_v1_0" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Escrow_v1_0_$1206", + "typeString": "contract Escrow_v1_0" + } + ], + "id": 434, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "9117:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 436, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9117:13:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" } }, { "argumentTypes": null, - "id": 455, + "id": 437, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 410, - "src": "9347:5:0", + "referencedDeclaration": 396, + "src": "9132:5:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6129,8 +5900,8 @@ "typeString": "address" }, { - "typeIdentifier": "t_contract$_Escrow_v1_0_$1213", - "typeString": "contract Escrow_v1_0" + "typeIdentifier": "t_address", + "typeString": "address" }, { "typeIdentifier": "t_uint256", @@ -6139,32 +5910,32 @@ ], "expression": { "argumentTypes": null, - "id": 448, + "id": 430, "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 439, - "src": "9290:5:0", + "referencedDeclaration": 421, + "src": "9086:5:0", "typeDescriptions": { - "typeIdentifier": "t_contract$_ITokenContract_$1243", + "typeIdentifier": "t_contract$_ITokenContract_$1236", "typeString": "contract ITokenContract" } }, - "id": 449, + "id": 431, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "transferFrom", "nodeType": "MemberAccess", - "referencedDeclaration": 1242, - "src": "9290:18:0", + "referencedDeclaration": 1235, + "src": "9086:18:0", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$", "typeString": "function (address,address,uint256) external returns (bool)" } }, - "id": 456, + "id": 438, "isConstant": false, "isLValue": false, "isPure": false, @@ -6172,7 +5943,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "9290:63:0", + "src": "9086:52:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -6181,14 +5952,14 @@ { "argumentTypes": null, "hexValue": "546f6b656e207472616e73666572206661696c65642c206d6179626520796f7520646964206e6f7420617070726f766520657363726f7720636f6e747261637420746f207370656e64206f6e20626568616c66206f66206275796572", - "id": 457, + "id": 439, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "9367:94:0", + "src": "9152:94:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_d9d07068d589bc4adc53018a3c57c159ec128fdfb62732a5fa9410e76cf03318", @@ -6208,21 +5979,21 @@ "typeString": "literal_string \"Token transfer failed, maybe you did not approve escrow contract to spend on behalf of buyer\"" } ], - "id": 447, + "id": 429, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1389, - 1390 + 1382, + 1383 ], - "referencedDeclaration": 1390, - "src": "9269:7:0", + "referencedDeclaration": 1383, + "src": "9065:7:0", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 458, + "id": 440, "isConstant": false, "isLValue": false, "isPure": false, @@ -6230,20 +6001,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "9269:202:0", + "src": "9065:191:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 459, + "id": 441, "nodeType": "ExpressionStatement", - "src": "9269:202:0" + "src": "9065:191:0" }, { "expression": { "argumentTypes": null, - "id": 471, + "id": 453, "isConstant": false, "isLValue": false, "isPure": false, @@ -6254,26 +6025,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 460, + "id": 442, "name": "transactions", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 77, - "src": "9482:12:0", + "referencedDeclaration": 75, + "src": "9267:12:0", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Transaction_$73_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Transaction_$71_storage_$", "typeString": "mapping(bytes32 => struct Escrow_v1_0.Transaction storage ref)" } }, - "id": 462, + "id": 444, "indexExpression": { "argumentTypes": null, - "id": 461, + "id": 443, "name": "scriptHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 408, - "src": "9495:10:0", + "referencedDeclaration": 394, + "src": "9280:10:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -6284,21 +6055,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "9482:24:0", + "src": "9267:24:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Transaction_$73_storage", + "typeIdentifier": "t_struct$_Transaction_$71_storage", "typeString": "struct Escrow_v1_0.Transaction storage ref" } }, - "id": 463, + "id": 445, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberName": "value", "nodeType": "MemberAccess", - "referencedDeclaration": 42, - "src": "9482:30:0", + "referencedDeclaration": 40, + "src": "9267:30:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6311,12 +6082,12 @@ "arguments": [ { "argumentTypes": null, - "id": 469, - "name": "_value", + "id": 451, + "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 428, - "src": "9563:6:0", + "referencedDeclaration": 396, + "src": "9348:5:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6336,26 +6107,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 464, + "id": 446, "name": "transactions", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 77, - "src": "9515:12:0", + "referencedDeclaration": 75, + "src": "9300:12:0", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Transaction_$73_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Transaction_$71_storage_$", "typeString": "mapping(bytes32 => struct Escrow_v1_0.Transaction storage ref)" } }, - "id": 466, + "id": 448, "indexExpression": { "argumentTypes": null, - "id": 465, + "id": 447, "name": "scriptHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 408, - "src": "9528:10:0", + "referencedDeclaration": 394, + "src": "9313:10:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -6366,41 +6137,41 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "9515:24:0", + "src": "9300:24:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Transaction_$73_storage", + "typeIdentifier": "t_struct$_Transaction_$71_storage", "typeString": "struct Escrow_v1_0.Transaction storage ref" } }, - "id": 467, + "id": 449, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "value", "nodeType": "MemberAccess", - "referencedDeclaration": 42, - "src": "9515:30:0", + "referencedDeclaration": 40, + "src": "9300:30:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 468, + "id": 450, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", - "referencedDeclaration": 1350, - "src": "9515:47:0", + "referencedDeclaration": 1343, + "src": "9300:47:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 470, + "id": 452, "isConstant": false, "isLValue": false, "isPure": false, @@ -6408,126 +6179,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "9515:55:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "9482:88:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 472, - "nodeType": "ExpressionStatement", - "src": "9482:88:0" - }, - { - "expression": { - "argumentTypes": null, - "id": 479, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 473, - "name": "transactions", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 77, - "src": "9580:12:0", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Transaction_$73_storage_$", - "typeString": "mapping(bytes32 => struct Escrow_v1_0.Transaction storage ref)" - } - }, - "id": 475, - "indexExpression": { - "argumentTypes": null, - "id": 474, - "name": "scriptHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 408, - "src": "9593:10:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "9580:24:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Transaction_$73_storage", - "typeString": "struct Escrow_v1_0.Transaction storage ref" - } - }, - "id": 476, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "lastModified", - "nodeType": "MemberAccess", - "referencedDeclaration": 44, - "src": "9580:37:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 477, - "name": "block", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1376, - "src": "9620:5:0", - "typeDescriptions": { - "typeIdentifier": "t_magic_block", - "typeString": "block" - } - }, - "id": 478, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "timestamp", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "9620:15:0", + "src": "9300:54:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "9580:55:0", + "src": "9267:87:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 480, + "id": 454, "nodeType": "ExpressionStatement", - "src": "9580:55:0" + "src": "9267:87:0" }, { "eventCall": { @@ -6535,12 +6201,12 @@ "arguments": [ { "argumentTypes": null, - "id": 482, + "id": 456, "name": "scriptHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 408, - "src": "9661:10:0", + "referencedDeclaration": 394, + "src": "9380:10:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -6550,18 +6216,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 483, + "id": 457, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1386, - "src": "9673:3:0", + "referencedDeclaration": 1379, + "src": "9392:3:0", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 484, + "id": 458, "isConstant": false, "isLValue": false, "isPure": false, @@ -6569,7 +6235,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "9673:10:0", + "src": "9392:10:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6577,12 +6243,12 @@ }, { "argumentTypes": null, - "id": 485, - "name": "_value", + "id": 459, + "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 428, - "src": "9685:6:0", + "referencedDeclaration": 396, + "src": "9404:5:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6604,18 +6270,18 @@ "typeString": "uint256" } ], - "id": 481, + "id": 455, "name": "FundAdded", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 30, - "src": "9651:9:0", + "src": "9370:9:0", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (bytes32,address,uint256)" } }, - "id": 486, + "id": 460, "isConstant": false, "isLValue": false, "isPure": false, @@ -6623,20 +6289,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "9651:41:0", + "src": "9370:40:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 487, + "id": 461, "nodeType": "EmitStatement", - "src": "9646:46:0" + "src": "9365:45:0" } ] }, - "documentation": "dev Allows buyer of the transaction to add more funds(Tokens) in the transaction. This will help to cater scenarios wherein initially buyer missed to fund transaction as required\nparam scriptHash script hash of the transaction", - "id": 489, + "documentation": "@dev Allows buyer of the transaction to add more funds(Tokens) in the transaction. \nThis will help to cater scenarios wherein initially buyer missed to fund transaction as required\n@param scriptHash script hash of the transaction\nOnly buyer of the transaction can invoke this method", + "id": 463, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -6645,78 +6311,78 @@ "arguments": [ { "argumentTypes": null, - "id": 413, + "id": 399, "name": "scriptHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 408, - "src": "8907:10:0", + "referencedDeclaration": 394, + "src": "8736:10:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } } ], - "id": 414, + "id": 400, "modifierName": { "argumentTypes": null, - "id": 412, - "name": "transactionExists", + "id": 398, + "name": "transactionExist", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 101, - "src": "8889:17:0", + "referencedDeclaration": 99, + "src": "8719:16:0", "typeDescriptions": { "typeIdentifier": "t_modifier$_t_bytes32_$", "typeString": "modifier (bytes32)" } }, "nodeType": "ModifierInvocation", - "src": "8889:29:0" + "src": "8719:28:0" }, { "arguments": [ { "argumentTypes": null, - "id": 416, + "id": 402, "name": "scriptHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 408, - "src": "8941:10:0", + "referencedDeclaration": 394, + "src": "8770:10:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } } ], - "id": 417, + "id": 403, "modifierName": { "argumentTypes": null, - "id": 415, + "id": 401, "name": "inFundedState", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 134, - "src": "8927:13:0", + "referencedDeclaration": 132, + "src": "8756:13:0", "typeDescriptions": { "typeIdentifier": "t_modifier$_t_bytes32_$", "typeString": "modifier (bytes32)" } }, "nodeType": "ModifierInvocation", - "src": "8927:25:0" + "src": "8756:25:0" }, { "arguments": [ { "argumentTypes": null, - "id": 419, + "id": 405, "name": "scriptHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 408, - "src": "8982:10:0", + "referencedDeclaration": 394, + "src": "8811:10:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -6726,18 +6392,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 420, + "id": 406, "name": "TransactionType", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12, - "src": "8994:15:0", + "src": "8823:15:0", "typeDescriptions": { "typeIdentifier": "t_type$_t_enum$_TransactionType_$12_$", "typeString": "type(enum Escrow_v1_0.TransactionType)" } }, - "id": 421, + "id": 407, "isConstant": false, "isLValue": false, "isPure": true, @@ -6745,77 +6411,77 @@ "memberName": "TOKEN", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "8994:21:0", + "src": "8823:21:0", "typeDescriptions": { "typeIdentifier": "t_enum$_TransactionType_$12", "typeString": "enum Escrow_v1_0.TransactionType" } } ], - "id": 422, + "id": 408, "modifierName": { "argumentTypes": null, - "id": 418, + "id": 404, "name": "checkTransactionType", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 167, - "src": "8961:20:0", + "referencedDeclaration": 165, + "src": "8790:20:0", "typeDescriptions": { "typeIdentifier": "t_modifier$_t_bytes32_$_t_enum$_TransactionType_$12_$", "typeString": "modifier (bytes32,enum Escrow_v1_0.TransactionType)" } }, "nodeType": "ModifierInvocation", - "src": "8961:55:0" + "src": "8790:55:0" }, { "arguments": [ { "argumentTypes": null, - "id": 424, + "id": 410, "name": "scriptHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 408, - "src": "9035:10:0", + "referencedDeclaration": 394, + "src": "8864:10:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } } ], - "id": 425, + "id": 411, "modifierName": { "argumentTypes": null, - "id": 423, + "id": 409, "name": "onlyBuyer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 184, - "src": "9025:9:0", + "referencedDeclaration": 182, + "src": "8854:9:0", "typeDescriptions": { "typeIdentifier": "t_modifier$_t_bytes32_$", "typeString": "modifier (bytes32)" } }, "nodeType": "ModifierInvocation", - "src": "9025:21:0" + "src": "8854:21:0" } ], "name": "addTokensToTransaction", "nodeType": "FunctionDefinition", "parameters": { - "id": 411, + "id": 397, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 408, + "id": 394, "name": "scriptHash", "nodeType": "VariableDeclaration", - "scope": 489, - "src": "8816:18:0", + "scope": 463, + "src": "8646:18:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6823,10 +6489,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 407, + "id": 393, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "8816:7:0", + "src": "8646:7:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -6837,11 +6503,11 @@ }, { "constant": false, - "id": 410, + "id": 396, "name": "value", "nodeType": "VariableDeclaration", - "scope": 489, - "src": "8844:13:0", + "scope": 463, + "src": "8674:13:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6849,10 +6515,10 @@ "typeString": "uint256" }, "typeName": { - "id": 409, + "id": 395, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "8844:7:0", + "src": "8674:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6862,52 +6528,52 @@ "visibility": "internal" } ], - "src": "8806:57:0" + "src": "8636:57:0" }, "payable": false, "returnParameters": { - "id": 426, + "id": 412, "nodeType": "ParameterList", "parameters": [], - "src": "9051:0:0" + "src": "8880:0:0" }, - "scope": 1213, - "src": "8775:924:0", + "scope": 1206, + "src": "8605:812:0", "stateMutability": "nonpayable", "superFunction": null, "visibility": "external" }, { "body": { - "id": 501, + "id": 475, "nodeType": "Block", - "src": "9967:56:0", + "src": "9672:56:0", "statements": [ { "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 497, + "id": 471, "name": "partyVsTransaction", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 85, - "src": "9984:18:0", + "referencedDeclaration": 83, + "src": "9689:18:0", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_bytes32_$dyn_storage_$", "typeString": "mapping(address => bytes32[] storage ref)" } }, - "id": 499, + "id": 473, "indexExpression": { "argumentTypes": null, - "id": 498, + "id": 472, "name": "partyAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 491, - "src": "10003:12:0", + "referencedDeclaration": 465, + "src": "9708:12:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6918,21 +6584,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "9984:32:0", + "src": "9689:32:0", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", "typeString": "bytes32[] storage ref" } }, - "functionReturnParameters": 496, - "id": 500, + "functionReturnParameters": 470, + "id": 474, "nodeType": "Return", - "src": "9977:39:0" + "src": "9682:39:0" } ] }, "documentation": "dev Returns all transaction ids for a party\nparam partyAddress Address of the party", - "id": 502, + "id": 476, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -6940,16 +6606,16 @@ "name": "getAllTransactionsForParty", "nodeType": "FunctionDefinition", "parameters": { - "id": 492, + "id": 466, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 491, + "id": 465, "name": "partyAddress", "nodeType": "VariableDeclaration", - "scope": 502, - "src": "9861:20:0", + "scope": 476, + "src": "9579:20:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6957,10 +6623,10 @@ "typeString": "address" }, "typeName": { - "id": 490, + "id": 464, "name": "address", "nodeType": "ElementaryTypeName", - "src": "9861:7:0", + "src": "9579:7:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6970,20 +6636,20 @@ "visibility": "internal" } ], - "src": "9851:36:0" + "src": "9569:36:0" }, "payable": false, "returnParameters": { - "id": 496, + "id": 470, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 495, - "name": "scriptHashes", + "id": 469, + "name": "", "nodeType": "VariableDeclaration", - "scope": 502, - "src": "9938:22:0", + "scope": 476, + "src": "9656:9:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6992,19 +6658,19 @@ }, "typeName": { "baseType": { - "id": 493, + "id": 467, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "9938:7:0", + "src": "9656:7:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "id": 494, + "id": 468, "length": null, "nodeType": "ArrayTypeName", - "src": "9938:9:0", + "src": "9656:9:0", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", "typeString": "bytes32[]" @@ -7014,19 +6680,19 @@ "visibility": "internal" } ], - "src": "9937:24:0" + "src": "9655:11:0" }, - "scope": 1213, - "src": "9816:207:0", + "scope": 1206, + "src": "9534:194:0", "stateMutability": "view", "superFunction": null, "visibility": "external" }, { "body": { - "id": 587, + "id": 564, "nodeType": "Block", - "src": "11053:790:0", + "src": "10598:932:0", "statements": [ { "expression": { @@ -7035,160 +6701,207 @@ { "argumentTypes": null, "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_uint256", + "typeString": "uint256" }, - "id": 538, + "id": 506, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "expression": { + "argumentTypes": null, + "id": 503, + "name": "destinations", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 490, + "src": "10632:12:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[] calldata" + } }, - "id": 532, + "id": 504, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 529, - "name": "destinations", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 516, - "src": "11084:12:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[] calldata" - } - }, - "id": 530, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "11084:19:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 531, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11104:1:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "11084:21:0", + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "10632:19:0", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, "nodeType": "BinaryOperation", - "operator": "&&", + "operator": ">", "rightExpression": { "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 537, + "hexValue": "30", + "id": 505, "isConstant": false, "isLValue": false, - "isPure": false, + "isPure": true, + "kind": "number", "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 533, - "name": "destinations", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 516, - "src": "11109:12:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[] calldata" - } - }, - "id": 534, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "11109:19:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } + "nodeType": "Literal", + "src": "10652:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 535, - "name": "amounts", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 519, - "src": "11132:7:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", - "typeString": "uint256[] calldata" - } - }, - "id": 536, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "11132:14:0", + "value": "0" + }, + "src": "10632:21:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "4e756d626572206f662064657374696e6174696f6e73206d7573742062652067726561746572207468616e2030", + "id": 507, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10668:47:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_fbeb58246a6e3ff255a1d618f14d1cced67ffd4784fbc3e1cfbdf71d1f7fbdf9", + "typeString": "literal_string \"Number of destinations must be greater than 0\"" + }, + "value": "Number of destinations must be greater than 0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_fbeb58246a6e3ff255a1d618f14d1cced67ffd4784fbc3e1cfbdf71d1f7fbdf9", + "typeString": "literal_string \"Number of destinations must be greater than 0\"" + } + ], + "id": 502, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1382, + 1383 + ], + "referencedDeclaration": 1383, + "src": "10611:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 508, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10611:114:0", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 509, + "nodeType": "ExpressionStatement", + "src": "10611:114:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 515, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 511, + "name": "destinations", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 490, + "src": "10756:12:0", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[] calldata" } }, - "src": "11109:37:0", + "id": 512, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "10756:19:0", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 513, + "name": "amounts", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 493, + "src": "10779:7:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", + "typeString": "uint256[] calldata" + } + }, + "id": 514, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "10779:14:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "src": "11084:62:0", + "src": "10756:37:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -7196,21 +6909,21 @@ }, { "argumentTypes": null, - "hexValue": "4c656e677468206f662064657374696e6174696f6e7320697320696e636f72726563742e", - "id": 539, + "hexValue": "4e756d626572206f662064657374696e6174696f6e73206d757374206d61746368206e756d626572206f662076616c7565732073656e74", + "id": 516, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "11148:38:0", + "src": "10807:57:0", "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_stringliteral_53e979b0c355ea1eeda44a80ca73370fdb2abe922711b459aa4ee43d1558782b", - "typeString": "literal_string \"Length of destinations is incorrect.\"" + "typeIdentifier": "t_stringliteral_e70a315a5939ff57e3400503291dbc0af19d18c32f15c80c7c6f5b7c54a6cd3c", + "typeString": "literal_string \"Number of destinations must match number of values sent\"" }, - "value": "Length of destinations is incorrect." + "value": "Number of destinations must match number of values sent" } ], "expression": { @@ -7220,25 +6933,25 @@ "typeString": "bool" }, { - "typeIdentifier": "t_stringliteral_53e979b0c355ea1eeda44a80ca73370fdb2abe922711b459aa4ee43d1558782b", - "typeString": "literal_string \"Length of destinations is incorrect.\"" + "typeIdentifier": "t_stringliteral_e70a315a5939ff57e3400503291dbc0af19d18c32f15c80c7c6f5b7c54a6cd3c", + "typeString": "literal_string \"Number of destinations must match number of values sent\"" } ], - "id": 528, + "id": 510, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1389, - 1390 + 1382, + 1383 ], - "referencedDeclaration": 1390, - "src": "11063:7:0", + "referencedDeclaration": 1383, + "src": "10735:7:0", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 540, + "id": 517, "isConstant": false, "isLValue": false, "isPure": false, @@ -7246,15 +6959,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "11063:133:0", + "src": "10735:139:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 541, + "id": 518, "nodeType": "ExpressionStatement", - "src": "11063:133:0" + "src": "10735:139:0" }, { "expression": { @@ -7262,12 +6975,12 @@ "arguments": [ { "argumentTypes": null, - "id": 543, + "id": 520, "name": "sigV", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 505, - "src": "11238:4:0", + "referencedDeclaration": 479, + "src": "10924:4:0", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint8_$dyn_calldata_ptr", "typeString": "uint8[] calldata" @@ -7275,12 +6988,12 @@ }, { "argumentTypes": null, - "id": 544, + "id": 521, "name": "sigR", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 508, - "src": "11256:4:0", + "referencedDeclaration": 482, + "src": "10942:4:0", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr", "typeString": "bytes32[] calldata" @@ -7288,12 +7001,12 @@ }, { "argumentTypes": null, - "id": 545, + "id": 522, "name": "sigS", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 511, - "src": "11274:4:0", + "referencedDeclaration": 485, + "src": "10960:4:0", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr", "typeString": "bytes32[] calldata" @@ -7301,12 +7014,12 @@ }, { "argumentTypes": null, - "id": 546, + "id": 523, "name": "scriptHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 513, - "src": "11292:10:0", + "referencedDeclaration": 487, + "src": "10978:10:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -7314,12 +7027,12 @@ }, { "argumentTypes": null, - "id": 547, + "id": 524, "name": "destinations", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 516, - "src": "11316:12:0", + "referencedDeclaration": 490, + "src": "11002:12:0", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", "typeString": "address[] calldata" @@ -7327,12 +7040,12 @@ }, { "argumentTypes": null, - "id": 548, + "id": 525, "name": "amounts", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 519, - "src": "11342:7:0", + "referencedDeclaration": 493, + "src": "11028:7:0", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", "typeString": "uint256[] calldata" @@ -7366,18 +7079,18 @@ "typeString": "uint256[] calldata" } ], - "id": 542, - "name": "verifyTransaction", + "id": 519, + "name": "_verifyTransaction", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 716, - "src": "11207:17:0", + "referencedDeclaration": 693, + "src": "10892:18:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_array$_t_uint8_$dyn_memory_ptr_$_t_array$_t_bytes32_$dyn_memory_ptr_$_t_array$_t_bytes32_$dyn_memory_ptr_$_t_bytes32_$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$returns$__$", "typeString": "function (uint8[] memory,bytes32[] memory,bytes32[] memory,bytes32,address[] memory,uint256[] memory)" } }, - "id": 549, + "id": 526, "isConstant": false, "isLValue": false, "isPure": false, @@ -7385,20 +7098,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "11207:152:0", + "src": "10892:153:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 550, + "id": 527, "nodeType": "ExpressionStatement", - "src": "11207:152:0" + "src": "10892:153:0" }, { "expression": { "argumentTypes": null, - "id": 557, + "id": 534, "isConstant": false, "isLValue": false, "isPure": false, @@ -7409,26 +7122,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 551, + "id": 528, "name": "transactions", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 77, - "src": "11370:12:0", + "referencedDeclaration": 75, + "src": "11056:12:0", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Transaction_$73_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Transaction_$71_storage_$", "typeString": "mapping(bytes32 => struct Escrow_v1_0.Transaction storage ref)" } }, - "id": 553, + "id": 530, "indexExpression": { "argumentTypes": null, - "id": 552, + "id": 529, "name": "scriptHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 513, - "src": "11383:10:0", + "referencedDeclaration": 487, + "src": "11069:10:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -7439,21 +7152,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "11370:24:0", + "src": "11056:24:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Transaction_$73_storage", + "typeIdentifier": "t_struct$_Transaction_$71_storage", "typeString": "struct Escrow_v1_0.Transaction storage ref" } }, - "id": 554, + "id": 531, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberName": "status", "nodeType": "MemberAccess", - "referencedDeclaration": 46, - "src": "11370:31:0", + "referencedDeclaration": 44, + "src": "11056:31:0", "typeDescriptions": { "typeIdentifier": "t_enum$_Status_$9", "typeString": "enum Escrow_v1_0.Status" @@ -7465,18 +7178,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 555, + "id": 532, "name": "Status", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9, - "src": "11404:6:0", + "src": "11090:6:0", "typeDescriptions": { "typeIdentifier": "t_type$_t_enum$_Status_$9_$", "typeString": "type(enum Escrow_v1_0.Status)" } }, - "id": 556, + "id": 533, "isConstant": false, "isLValue": false, "isPure": true, @@ -7484,26 +7197,26 @@ "memberName": "RELEASED", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "11404:15:0", + "src": "11090:15:0", "typeDescriptions": { "typeIdentifier": "t_enum$_Status_$9", "typeString": "enum Escrow_v1_0.Status" } }, - "src": "11370:49:0", + "src": "11056:49:0", "typeDescriptions": { "typeIdentifier": "t_enum$_Status_$9", "typeString": "enum Escrow_v1_0.Status" } }, - "id": 558, + "id": 535, "nodeType": "ExpressionStatement", - "src": "11370:49:0" + "src": "11056:49:0" }, { "expression": { "argumentTypes": null, - "id": 565, + "id": 542, "isConstant": false, "isLValue": false, "isPure": false, @@ -7514,26 +7227,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 559, + "id": 536, "name": "transactions", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 77, - "src": "11503:12:0", + "referencedDeclaration": 75, + "src": "11189:12:0", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Transaction_$73_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Transaction_$71_storage_$", "typeString": "mapping(bytes32 => struct Escrow_v1_0.Transaction storage ref)" } }, - "id": 561, + "id": 538, "indexExpression": { "argumentTypes": null, - "id": 560, + "id": 537, "name": "scriptHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 513, - "src": "11516:10:0", + "referencedDeclaration": 487, + "src": "11202:10:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -7544,21 +7257,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "11503:24:0", + "src": "11189:24:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Transaction_$73_storage", + "typeIdentifier": "t_struct$_Transaction_$71_storage", "typeString": "struct Escrow_v1_0.Transaction storage ref" } }, - "id": 562, + "id": 539, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberName": "lastModified", "nodeType": "MemberAccess", - "referencedDeclaration": 44, - "src": "11503:37:0", + "referencedDeclaration": 42, + "src": "11189:37:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7570,18 +7283,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 563, + "id": 540, "name": "block", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1376, - "src": "11543:5:0", + "referencedDeclaration": 1369, + "src": "11229:5:0", "typeDescriptions": { "typeIdentifier": "t_magic_block", "typeString": "block" } }, - "id": 564, + "id": 541, "isConstant": false, "isLValue": false, "isPure": false, @@ -7589,21 +7302,21 @@ "memberName": "timestamp", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "11543:15:0", + "src": "11229:15:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "11503:55:0", + "src": "11189:55:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 566, + "id": 543, "nodeType": "ExpressionStatement", - "src": "11503:55:0" + "src": "11189:55:0" }, { "expression": { @@ -7615,7 +7328,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 577, + "id": 554, "isConstant": false, "isLValue": false, "isPure": false, @@ -7625,12 +7338,12 @@ "arguments": [ { "argumentTypes": null, - "id": 569, + "id": 546, "name": "scriptHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 513, - "src": "11603:10:0", + "referencedDeclaration": 487, + "src": "11290:10:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -7638,12 +7351,12 @@ }, { "argumentTypes": null, - "id": 570, + "id": 547, "name": "destinations", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 516, - "src": "11615:12:0", + "referencedDeclaration": 490, + "src": "11302:12:0", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", "typeString": "address[] calldata" @@ -7651,12 +7364,12 @@ }, { "argumentTypes": null, - "id": 571, + "id": 548, "name": "amounts", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 519, - "src": "11629:7:0", + "referencedDeclaration": 493, + "src": "11316:7:0", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", "typeString": "uint256[] calldata" @@ -7678,18 +7391,18 @@ "typeString": "uint256[] calldata" } ], - "id": 568, - "name": "transferFunds", + "id": 545, + "name": "_transferFunds", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 902, - "src": "11589:13:0", + "referencedDeclaration": 886, + "src": "11275:14:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$returns$_t_uint256_$", "typeString": "function (bytes32,address[] memory,uint256[] memory) returns (uint256)" } }, - "id": 572, + "id": 549, "isConstant": false, "isLValue": false, "isPure": false, @@ -7697,7 +7410,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "11589:48:0", + "src": "11275:49:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7711,26 +7424,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 573, + "id": 550, "name": "transactions", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 77, - "src": "11641:12:0", + "referencedDeclaration": 75, + "src": "11328:12:0", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Transaction_$73_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Transaction_$71_storage_$", "typeString": "mapping(bytes32 => struct Escrow_v1_0.Transaction storage ref)" } }, - "id": 575, + "id": 552, "indexExpression": { "argumentTypes": null, - "id": 574, + "id": 551, "name": "scriptHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 513, - "src": "11654:10:0", + "referencedDeclaration": 487, + "src": "11341:10:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -7741,27 +7454,27 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "11641:24:0", + "src": "11328:24:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Transaction_$73_storage", + "typeIdentifier": "t_struct$_Transaction_$71_storage", "typeString": "struct Escrow_v1_0.Transaction storage ref" } }, - "id": 576, + "id": 553, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "value", "nodeType": "MemberAccess", - "referencedDeclaration": 42, - "src": "11641:30:0", + "referencedDeclaration": 40, + "src": "11328:30:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "11589:82:0", + "src": "11275:83:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -7770,14 +7483,14 @@ { "argumentTypes": null, "hexValue": "546f74616c2076616c756520746f2062652072656c6561736564206d75737420626520657175616c20746f20746865207472616e73616374696f6e20657363726f772076616c7565", - "id": 578, + "id": 555, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "11685:74:0", + "src": "11372:74:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_9e0bdb14e2e0d5e118fd1f547268c6a1fdb5e8facacd614066d4b60bc2c9941d", @@ -7797,21 +7510,21 @@ "typeString": "literal_string \"Total value to be released must be equal to the transaction escrow value\"" } ], - "id": 567, + "id": 544, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1389, - 1390 + 1382, + 1383 ], - "referencedDeclaration": 1390, - "src": "11568:7:0", + "referencedDeclaration": 1383, + "src": "11254:7:0", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 579, + "id": 556, "isConstant": false, "isLValue": false, "isPure": false, @@ -7819,15 +7532,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "11568:201:0", + "src": "11254:202:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 580, + "id": 557, "nodeType": "ExpressionStatement", - "src": "11568:201:0" + "src": "11254:202:0" }, { "eventCall": { @@ -7835,12 +7548,12 @@ "arguments": [ { "argumentTypes": null, - "id": 582, + "id": 559, "name": "scriptHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 513, - "src": "11802:10:0", + "referencedDeclaration": 487, + "src": "11489:10:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -7848,12 +7561,12 @@ }, { "argumentTypes": null, - "id": 583, + "id": 560, "name": "destinations", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 516, - "src": "11814:12:0", + "referencedDeclaration": 490, + "src": "11501:12:0", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", "typeString": "address[] calldata" @@ -7861,12 +7574,12 @@ }, { "argumentTypes": null, - "id": 584, + "id": 561, "name": "amounts", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 519, - "src": "11828:7:0", + "referencedDeclaration": 493, + "src": "11515:7:0", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", "typeString": "uint256[] calldata" @@ -7888,18 +7601,18 @@ "typeString": "uint256[] calldata" } ], - "id": 581, + "id": 558, "name": "Executed", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 22, - "src": "11793:8:0", + "src": "11480:8:0", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$returns$__$", "typeString": "function (bytes32,address[] memory,uint256[] memory)" } }, - "id": 585, + "id": 562, "isConstant": false, "isLValue": false, "isPure": false, @@ -7907,20 +7620,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "11793:43:0", + "src": "11480:43:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 586, + "id": 563, "nodeType": "EmitStatement", - "src": "11788:48:0" + "src": "11475:48:0" } ] }, - "documentation": "dev Allows one of the moderator to collect all the signature to solve dispute and submit it to this method.\nIf all the required signatures are collected and consensus has been reached than funds will be released to the voted party\nparam sigV Array containing V component of all the signatures\nparam sigR Array containing R component of all the signatures\nparam signS Array containing S component of all the signatures\nparam scriptHash script hash of the transaction\nparam destinations address of the destination in whose favour dispute resolution is taking place. In case of split payments it will be address of the split payments contract\nparam amounts value to send to each destination", - "id": 588, + "documentation": "dev This method will be used to release funds associated with the transaction\nPlease see specs https://github.com/OpenBazaar/smart-contracts/blob/master/contracts/escrow/EscrowSpec.md\nparam sigV Array containing V component of all the signatures\nparam sigR Array containing R component of all the signatures\nparam signS Array containing S component of all the signatures\nparam scriptHash script hash of the transaction\nparam destinations List of addresses who will receive funds\nparam amounts amount released to each destination", + "id": 565, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -7929,82 +7642,82 @@ "arguments": [ { "argumentTypes": null, - "id": 522, + "id": 496, "name": "scriptHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 513, - "src": "11003:10:0", + "referencedDeclaration": 487, + "src": "10548:10:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } } ], - "id": 523, + "id": 497, "modifierName": { "argumentTypes": null, - "id": 521, - "name": "transactionExists", + "id": 495, + "name": "transactionExist", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 101, - "src": "10985:17:0", + "referencedDeclaration": 99, + "src": "10531:16:0", "typeDescriptions": { "typeIdentifier": "t_modifier$_t_bytes32_$", "typeString": "modifier (bytes32)" } }, "nodeType": "ModifierInvocation", - "src": "10985:29:0" + "src": "10531:28:0" }, { "arguments": [ { "argumentTypes": null, - "id": 525, + "id": 499, "name": "scriptHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 513, - "src": "11037:10:0", + "referencedDeclaration": 487, + "src": "10582:10:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } } ], - "id": 526, + "id": 500, "modifierName": { "argumentTypes": null, - "id": 524, + "id": 498, "name": "inFundedState", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 134, - "src": "11023:13:0", + "referencedDeclaration": 132, + "src": "10568:13:0", "typeDescriptions": { "typeIdentifier": "t_modifier$_t_bytes32_$", "typeString": "modifier (bytes32)" } }, "nodeType": "ModifierInvocation", - "src": "11023:25:0" + "src": "10568:25:0" } ], "name": "execute", "nodeType": "FunctionDefinition", "parameters": { - "id": 520, + "id": 494, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 505, + "id": 479, "name": "sigV", "nodeType": "VariableDeclaration", - "scope": 588, - "src": "10806:12:0", + "scope": 565, + "src": "10352:12:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8013,19 +7726,19 @@ }, "typeName": { "baseType": { - "id": 503, + "id": 477, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "10806:5:0", + "src": "10352:5:0", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, - "id": 504, + "id": 478, "length": null, "nodeType": "ArrayTypeName", - "src": "10806:7:0", + "src": "10352:7:0", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint8_$dyn_storage_ptr", "typeString": "uint8[]" @@ -8036,11 +7749,11 @@ }, { "constant": false, - "id": 508, + "id": 482, "name": "sigR", "nodeType": "VariableDeclaration", - "scope": 588, - "src": "10828:14:0", + "scope": 565, + "src": "10374:14:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8049,19 +7762,19 @@ }, "typeName": { "baseType": { - "id": 506, + "id": 480, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "10828:7:0", + "src": "10374:7:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "id": 507, + "id": 481, "length": null, "nodeType": "ArrayTypeName", - "src": "10828:9:0", + "src": "10374:9:0", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", "typeString": "bytes32[]" @@ -8072,11 +7785,11 @@ }, { "constant": false, - "id": 511, + "id": 485, "name": "sigS", "nodeType": "VariableDeclaration", - "scope": 588, - "src": "10852:14:0", + "scope": 565, + "src": "10398:14:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8085,19 +7798,19 @@ }, "typeName": { "baseType": { - "id": 509, + "id": 483, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "10852:7:0", + "src": "10398:7:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "id": 510, + "id": 484, "length": null, "nodeType": "ArrayTypeName", - "src": "10852:9:0", + "src": "10398:9:0", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", "typeString": "bytes32[]" @@ -8108,11 +7821,11 @@ }, { "constant": false, - "id": 513, + "id": 487, "name": "scriptHash", "nodeType": "VariableDeclaration", - "scope": 588, - "src": "10876:18:0", + "scope": 565, + "src": "10422:18:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8120,10 +7833,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 512, + "id": 486, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "10876:7:0", + "src": "10422:7:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -8134,11 +7847,11 @@ }, { "constant": false, - "id": 516, + "id": 490, "name": "destinations", "nodeType": "VariableDeclaration", - "scope": 588, - "src": "10904:22:0", + "scope": 565, + "src": "10450:22:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8147,19 +7860,19 @@ }, "typeName": { "baseType": { - "id": 514, + "id": 488, "name": "address", "nodeType": "ElementaryTypeName", - "src": "10904:7:0", + "src": "10450:7:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 515, + "id": 489, "length": null, "nodeType": "ArrayTypeName", - "src": "10904:9:0", + "src": "10450:9:0", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]" @@ -8170,11 +7883,11 @@ }, { "constant": false, - "id": 519, + "id": 493, "name": "amounts", "nodeType": "VariableDeclaration", - "scope": 588, - "src": "10936:17:0", + "scope": 565, + "src": "10482:17:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8183,19 +7896,19 @@ }, "typeName": { "baseType": { - "id": 517, + "id": 491, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "10936:7:0", + "src": "10482:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 518, + "id": 492, "length": null, "nodeType": "ArrayTypeName", - "src": "10936:9:0", + "src": "10482:9:0", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", "typeString": "uint256[]" @@ -8205,26 +7918,26 @@ "visibility": "internal" } ], - "src": "10796:163:0" + "src": "10342:163:0" }, "payable": false, "returnParameters": { - "id": 527, + "id": 501, "nodeType": "ParameterList", "parameters": [], - "src": "11053:0:0" + "src": "10598:0:0" }, - "scope": 1213, - "src": "10780:1063:0", + "scope": 1206, + "src": "10326:1204:0", "stateMutability": "nonpayable", "superFunction": null, "visibility": "external" }, { "body": { - "id": 646, + "id": 623, "nodeType": "Block", - "src": "12602:716:0", + "src": "12334:734:0", "statements": [ { "condition": { @@ -8233,19 +7946,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 611, + "id": 588, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 607, + "id": 584, "name": "tokenAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 602, - "src": "12616:12:0", + "referencedDeclaration": 579, + "src": "12348:12:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -8259,14 +7972,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 609, + "id": 586, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "12640:1:0", + "src": "12372:1:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -8282,20 +7995,20 @@ "typeString": "int_const 0" } ], - "id": 608, + "id": 585, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "12632:7:0", + "src": "12364:7:0", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 610, + "id": 587, "isConstant": false, "isLValue": false, "isPure": true, @@ -8303,529 +8016,551 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "12632:10:0", + "src": "12364:10:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "12616:26:0", + "src": "12348:26:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": { - "id": 644, + "id": 621, "nodeType": "Block", - "src": "12964:348:0", + "src": "12705:357:0", "statements": [ { "expression": { "argumentTypes": null, - "id": 642, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 628, - "name": "hash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 605, - "src": "12978:4:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 632, - "name": "uniqueId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 590, - "src": "13050:8:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes20", - "typeString": "bytes20" - } - }, - { - "argumentTypes": null, - "id": 633, - "name": "threshold", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 592, - "src": "13080:9:0", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - { - "argumentTypes": null, - "id": 634, - "name": "timeoutHours", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 594, - "src": "13111:12:0", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 608, + "name": "uniqueId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 567, + "src": "12791:8:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes20", + "typeString": "bytes20" + } + }, + { + "argumentTypes": null, + "id": 609, + "name": "threshold", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 569, + "src": "12821:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + { + "argumentTypes": null, + "id": 610, + "name": "timeoutHours", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 571, + "src": "12852:12:0", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + { + "argumentTypes": null, + "id": 611, + "name": "buyer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 573, + "src": "12886:5:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 612, + "name": "seller", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 575, + "src": "12913:6:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 613, + "name": "moderator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 577, + "src": "12941:9:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 615, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1396, + "src": "12980:4:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Escrow_v1_0_$1206", + "typeString": "contract Escrow_v1_0" + } } - }, - { - "argumentTypes": null, - "id": 635, - "name": "buyer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 596, - "src": "13145:5:0", + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Escrow_v1_0_$1206", + "typeString": "contract Escrow_v1_0" + } + ], + "id": 614, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "12972:7:0", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" }, - { - "argumentTypes": null, - "id": 636, - "name": "seller", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 598, - "src": "13172:6:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } + "id": 616, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12972:13:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 617, + "name": "tokenAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 579, + "src": "13007:12:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes20", + "typeString": "bytes20" }, { - "argumentTypes": null, - "id": 637, - "name": "moderator", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 600, - "src": "13200:9:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } + "typeIdentifier": "t_uint8", + "typeString": "uint8" }, { - "argumentTypes": null, - "id": 638, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1403, - "src": "13231:4:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Escrow_v1_0_$1213", - "typeString": "contract Escrow_v1_0" - } + "typeIdentifier": "t_uint32", + "typeString": "uint32" }, { - "argumentTypes": null, - "id": 639, - "name": "tokenAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 602, - "src": "13257:12:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" } ], "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes20", - "typeString": "bytes20" - }, - { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_contract$_Escrow_v1_0_$1213", - "typeString": "contract Escrow_v1_0" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 630, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1373, - "src": "13012:3:0", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 631, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "encodePacked", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "13012:16:0", + "argumentTypes": null, + "id": 606, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1366, + "src": "12753:3:0", "typeDescriptions": { - "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", - "typeString": "function () pure returns (bytes memory)" + "typeIdentifier": "t_magic_abi", + "typeString": "abi" } }, - "id": 640, + "id": 607, "isConstant": false, "isLValue": false, - "isPure": false, - "kind": "functionCall", + "isPure": true, "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13012:275:0", + "memberName": "encodePacked", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "12753:16:0", "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" + "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", + "typeString": "function () pure returns (bytes memory)" } - ], - "id": 629, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1380, - "src": "12985:9:0", + }, + "id": 618, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12753:284:0", "typeDescriptions": { - "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", - "typeString": "function () pure returns (bytes32)" + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" } - }, - "id": 641, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12985:316:0", + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 605, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1373, + "src": "12726:9:0", "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" + "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", + "typeString": "function () pure returns (bytes32)" } }, - "src": "12978:323:0", + "id": 619, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12726:325:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "id": 643, - "nodeType": "ExpressionStatement", - "src": "12978:323:0" + "functionReturnParameters": 583, + "id": 620, + "nodeType": "Return", + "src": "12719:332:0" } ] }, - "id": 645, + "id": 622, "nodeType": "IfStatement", - "src": "12612:700:0", + "src": "12344:718:0", "trueBody": { - "id": 627, + "id": 604, "nodeType": "Block", - "src": "12644:314:0", + "src": "12376:323:0", "statements": [ { "expression": { "argumentTypes": null, - "id": 625, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 612, - "name": "hash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 605, - "src": "12658:4:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 616, - "name": "uniqueId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 590, - "src": "12730:8:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes20", - "typeString": "bytes20" - } - }, - { - "argumentTypes": null, - "id": 617, - "name": "threshold", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 592, - "src": "12760:9:0", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - { - "argumentTypes": null, - "id": 618, - "name": "timeoutHours", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 594, - "src": "12791:12:0", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - { - "argumentTypes": null, - "id": 619, - "name": "buyer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 596, - "src": "12825:5:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 620, - "name": "seller", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 598, - "src": "12852:6:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 621, - "name": "moderator", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 600, - "src": "12880:9:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 622, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1403, - "src": "12911:4:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Escrow_v1_0_$1213", - "typeString": "contract Escrow_v1_0" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes20", - "typeString": "bytes20" - }, - { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 592, + "name": "uniqueId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 567, + "src": "12462:8:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes20", + "typeString": "bytes20" + } + }, + { + "argumentTypes": null, + "id": 593, + "name": "threshold", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 569, + "src": "12492:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + { + "argumentTypes": null, + "id": 594, + "name": "timeoutHours", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 571, + "src": "12523:12:0", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + { + "argumentTypes": null, + "id": 595, + "name": "buyer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 573, + "src": "12557:5:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 596, + "name": "seller", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 575, + "src": "12584:6:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 597, + "name": "moderator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 577, + "src": "12612:9:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "arguments": [ { - "typeIdentifier": "t_contract$_Escrow_v1_0_$1213", - "typeString": "contract Escrow_v1_0" + "argumentTypes": null, + "id": 599, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1396, + "src": "12651:4:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Escrow_v1_0_$1206", + "typeString": "contract Escrow_v1_0" + } } ], "expression": { - "argumentTypes": null, - "id": 614, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1373, - "src": "12692:3:0", + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Escrow_v1_0_$1206", + "typeString": "contract Escrow_v1_0" + } + ], + "id": 598, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "12643:7:0", "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" }, - "id": 615, + "id": 600, "isConstant": false, "isLValue": false, - "isPure": true, + "isPure": false, + "kind": "typeConversion", "lValueRequested": false, - "memberName": "encodePacked", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "12692:16:0", + "names": [], + "nodeType": "FunctionCall", + "src": "12643:13:0", "typeDescriptions": { - "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", - "typeString": "function () pure returns (bytes memory)" + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes20", + "typeString": "bytes20" + }, + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "id": 590, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1366, + "src": "12424:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" } }, - "id": 623, + "id": 591, "isConstant": false, "isLValue": false, - "isPure": false, - "kind": "functionCall", + "isPure": true, "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12692:241:0", + "memberName": "encodePacked", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "12424:16:0", "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" + "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", + "typeString": "function () pure returns (bytes memory)" } - ], - "id": 613, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1380, - "src": "12665:9:0", + }, + "id": 601, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12424:250:0", "typeDescriptions": { - "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", - "typeString": "function () pure returns (bytes32)" + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" } - }, - "id": 624, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12665:282:0", + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 589, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1373, + "src": "12397:9:0", "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" + "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", + "typeString": "function () pure returns (bytes32)" } }, - "src": "12658:289:0", + "id": 602, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12397:291:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "id": 626, - "nodeType": "ExpressionStatement", - "src": "12658:289:0" + "functionReturnParameters": 583, + "id": 603, + "nodeType": "Return", + "src": "12390:298:0" } ] } } ] }, - "documentation": "dev Method for calculating script hash. Calculation will depend upon the type of transaction\nETHER Type transaction-:\nScript Hash- keccak256(uniqueId, threshold, timeoutHours, buyer, seller, moderator)\nTOKEN Type transaction\nScript Hash- keccak256(uniqueId, threshold, timeoutHours, buyer, seller, moderator, tokenAddress)\nClient can use this method to verify whether it has calculated correct script hash or not", - "id": 647, + "documentation": "dev Method for calculating script hash. Calculation will depend upon the type of transaction\nETHER Type transaction-:\nScript Hash- keccak256(uniqueId, threshold, timeoutHours, buyer, seller, moderator, multiSigContractAddress)\nTOKEN Type transaction\nScript Hash- keccak256(uniqueId, threshold, timeoutHours, buyer, seller, moderator, multiSigContractAddress, tokenAddress)\nClient can use this method to verify whether it has calculated correct script hash or not", + "id": 624, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -8833,16 +8568,16 @@ "name": "calculateRedeemScriptHash", "nodeType": "FunctionDefinition", "parameters": { - "id": 603, + "id": 580, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 590, + "id": 567, "name": "uniqueId", "nodeType": "VariableDeclaration", - "scope": 647, - "src": "12358:16:0", + "scope": 624, + "src": "12095:16:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8850,10 +8585,10 @@ "typeString": "bytes20" }, "typeName": { - "id": 589, + "id": 566, "name": "bytes20", "nodeType": "ElementaryTypeName", - "src": "12358:7:0", + "src": "12095:7:0", "typeDescriptions": { "typeIdentifier": "t_bytes20", "typeString": "bytes20" @@ -8864,11 +8599,11 @@ }, { "constant": false, - "id": 592, + "id": 569, "name": "threshold", "nodeType": "VariableDeclaration", - "scope": 647, - "src": "12384:15:0", + "scope": 624, + "src": "12121:15:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8876,10 +8611,10 @@ "typeString": "uint8" }, "typeName": { - "id": 591, + "id": 568, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "12384:5:0", + "src": "12121:5:0", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -8890,11 +8625,11 @@ }, { "constant": false, - "id": 594, + "id": 571, "name": "timeoutHours", "nodeType": "VariableDeclaration", - "scope": 647, - "src": "12409:19:0", + "scope": 624, + "src": "12146:19:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8902,10 +8637,10 @@ "typeString": "uint32" }, "typeName": { - "id": 593, + "id": 570, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "12409:6:0", + "src": "12146:6:0", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -8916,11 +8651,11 @@ }, { "constant": false, - "id": 596, + "id": 573, "name": "buyer", "nodeType": "VariableDeclaration", - "scope": 647, - "src": "12438:13:0", + "scope": 624, + "src": "12175:13:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8928,10 +8663,10 @@ "typeString": "address" }, "typeName": { - "id": 595, + "id": 572, "name": "address", "nodeType": "ElementaryTypeName", - "src": "12438:7:0", + "src": "12175:7:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -8942,11 +8677,11 @@ }, { "constant": false, - "id": 598, + "id": 575, "name": "seller", "nodeType": "VariableDeclaration", - "scope": 647, - "src": "12461:14:0", + "scope": 624, + "src": "12198:14:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8954,10 +8689,10 @@ "typeString": "address" }, "typeName": { - "id": 597, + "id": 574, "name": "address", "nodeType": "ElementaryTypeName", - "src": "12461:7:0", + "src": "12198:7:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -8968,11 +8703,11 @@ }, { "constant": false, - "id": 600, + "id": 577, "name": "moderator", "nodeType": "VariableDeclaration", - "scope": 647, - "src": "12485:17:0", + "scope": 624, + "src": "12222:17:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8980,10 +8715,10 @@ "typeString": "address" }, "typeName": { - "id": 599, + "id": 576, "name": "address", "nodeType": "ElementaryTypeName", - "src": "12485:7:0", + "src": "12222:7:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -8994,11 +8729,11 @@ }, { "constant": false, - "id": 602, + "id": 579, "name": "tokenAddress", "nodeType": "VariableDeclaration", - "scope": 647, - "src": "12512:20:0", + "scope": 624, + "src": "12249:20:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9006,10 +8741,10 @@ "typeString": "address" }, "typeName": { - "id": 601, + "id": 578, "name": "address", "nodeType": "ElementaryTypeName", - "src": "12512:7:0", + "src": "12249:7:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9019,20 +8754,20 @@ "visibility": "internal" } ], - "src": "12348:190:0" + "src": "12085:190:0" }, "payable": false, "returnParameters": { - "id": 606, + "id": 583, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 605, - "name": "hash", + "id": 582, + "name": "", "nodeType": "VariableDeclaration", - "scope": 647, - "src": "12584:12:0", + "scope": 624, + "src": "12321:7:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9040,10 +8775,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 604, + "id": 581, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "12584:7:0", + "src": "12321:7:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -9053,32 +8788,32 @@ "visibility": "internal" } ], - "src": "12583:14:0" + "src": "12320:9:0" }, - "scope": 1213, - "src": "12314:1004:0", + "scope": 1206, + "src": "12051:1017:0", "stateMutability": "view", "superFunction": null, "visibility": "public" }, { "body": { - "id": 715, + "id": 692, "nodeType": "Block", - "src": "13802:742:0", + "src": "13553:797:0", "statements": [ { "assignments": [ - 668 + 645 ], "declarations": [ { "constant": false, - "id": 668, + "id": 645, "name": "lastRecovered", "nodeType": "VariableDeclaration", - "scope": 716, - "src": "13812:21:0", + "scope": 693, + "src": "13563:21:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9086,10 +8821,10 @@ "typeString": "address" }, "typeName": { - "id": 667, + "id": 644, "name": "address", "nodeType": "ElementaryTypeName", - "src": "13812:7:0", + "src": "13563:7:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9099,18 +8834,18 @@ "visibility": "internal" } ], - "id": 677, + "id": 654, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 670, + "id": 647, "name": "sigV", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 650, - "src": "13866:4:0", + "referencedDeclaration": 627, + "src": "13618:4:0", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint8_$dyn_memory_ptr", "typeString": "uint8[] memory" @@ -9118,12 +8853,12 @@ }, { "argumentTypes": null, - "id": 671, + "id": 648, "name": "sigR", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 653, - "src": "13884:4:0", + "referencedDeclaration": 630, + "src": "13636:4:0", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr", "typeString": "bytes32[] memory" @@ -9131,12 +8866,12 @@ }, { "argumentTypes": null, - "id": 672, + "id": 649, "name": "sigS", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 656, - "src": "13902:4:0", + "referencedDeclaration": 633, + "src": "13654:4:0", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr", "typeString": "bytes32[] memory" @@ -9144,12 +8879,12 @@ }, { "argumentTypes": null, - "id": 673, + "id": 650, "name": "scriptHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 658, - "src": "13920:10:0", + "referencedDeclaration": 635, + "src": "13672:10:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -9157,12 +8892,12 @@ }, { "argumentTypes": null, - "id": 674, + "id": 651, "name": "destinations", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 661, - "src": "13944:12:0", + "referencedDeclaration": 638, + "src": "13696:12:0", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" @@ -9170,12 +8905,12 @@ }, { "argumentTypes": null, - "id": 675, + "id": 652, "name": "amounts", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 664, - "src": "13970:7:0", + "referencedDeclaration": 641, + "src": "13722:7:0", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", "typeString": "uint256[] memory" @@ -9209,18 +8944,18 @@ "typeString": "uint256[] memory" } ], - "id": 669, - "name": "verifySignatures", + "id": 646, + "name": "_verifySignatures", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1026, - "src": "13836:16:0", + "referencedDeclaration": 1017, + "src": "13587:17:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_array$_t_uint8_$dyn_memory_ptr_$_t_array$_t_bytes32_$dyn_memory_ptr_$_t_array$_t_bytes32_$dyn_memory_ptr_$_t_bytes32_$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$returns$_t_address_$", "typeString": "function (uint8[] memory,bytes32[] memory,bytes32[] memory,bytes32,address[] memory,uint256[] memory) returns (address)" } }, - "id": 676, + "id": 653, "isConstant": false, "isLValue": false, "isPure": false, @@ -9228,27 +8963,27 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "13836:151:0", + "src": "13587:152:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "VariableDeclarationStatement", - "src": "13812:175:0" + "src": "13563:176:0" }, { "assignments": [ - 679 + 656 ], "declarations": [ { "constant": false, - "id": 679, + "id": 656, "name": "timeLockExpired", "nodeType": "VariableDeclaration", - "scope": 716, - "src": "13998:20:0", + "scope": 693, + "src": "13750:20:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9256,10 +8991,10 @@ "typeString": "bool" }, "typeName": { - "id": 678, + "id": 655, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "13998:4:0", + "src": "13750:4:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -9269,7 +9004,7 @@ "visibility": "internal" } ], - "id": 690, + "id": 667, "initialValue": { "argumentTypes": null, "arguments": [ @@ -9279,26 +9014,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 681, + "id": 658, "name": "transactions", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 77, - "src": "14052:12:0", + "referencedDeclaration": 75, + "src": "13805:12:0", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Transaction_$73_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Transaction_$71_storage_$", "typeString": "mapping(bytes32 => struct Escrow_v1_0.Transaction storage ref)" } }, - "id": 683, + "id": 660, "indexExpression": { "argumentTypes": null, - "id": 682, + "id": 659, "name": "scriptHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 658, - "src": "14065:10:0", + "referencedDeclaration": 635, + "src": "13818:10:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -9309,21 +9044,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "14052:24:0", + "src": "13805:24:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Transaction_$73_storage", + "typeIdentifier": "t_struct$_Transaction_$71_storage", "typeString": "struct Escrow_v1_0.Transaction storage ref" } }, - "id": 684, + "id": 661, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "timeoutHours", "nodeType": "MemberAccess", - "referencedDeclaration": 52, - "src": "14052:37:0", + "referencedDeclaration": 50, + "src": "13805:37:0", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -9335,26 +9070,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 685, + "id": 662, "name": "transactions", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 77, - "src": "14103:12:0", + "referencedDeclaration": 75, + "src": "13856:12:0", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Transaction_$73_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Transaction_$71_storage_$", "typeString": "mapping(bytes32 => struct Escrow_v1_0.Transaction storage ref)" } }, - "id": 687, + "id": 664, "indexExpression": { "argumentTypes": null, - "id": 686, + "id": 663, "name": "scriptHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 658, - "src": "14116:10:0", + "referencedDeclaration": 635, + "src": "13869:10:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -9365,21 +9100,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "14103:24:0", + "src": "13856:24:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Transaction_$73_storage", + "typeIdentifier": "t_struct$_Transaction_$71_storage", "typeString": "struct Escrow_v1_0.Transaction storage ref" } }, - "id": 688, + "id": 665, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "lastModified", "nodeType": "MemberAccess", - "referencedDeclaration": 44, - "src": "14103:37:0", + "referencedDeclaration": 42, + "src": "13856:37:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -9397,18 +9132,18 @@ "typeString": "uint256" } ], - "id": 680, - "name": "isTimeLockExpired", + "id": 657, + "name": "_isTimeLockExpired", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1060, - "src": "14021:17:0", + "referencedDeclaration": 1049, + "src": "13773:18:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_uint32_$_t_uint256_$returns$_t_bool_$", "typeString": "function (uint32,uint256) view returns (bool)" } }, - "id": 689, + "id": 666, "isConstant": false, "isLValue": false, "isPure": false, @@ -9416,14 +9151,14 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "14021:129:0", + "src": "13773:130:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "VariableDeclarationStatement", - "src": "13998:152:0" + "src": "13750:153:0" }, { "condition": { @@ -9432,7 +9167,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 708, + "id": 685, "isConstant": false, "isLValue": false, "isPure": false, @@ -9443,7 +9178,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 697, + "id": 674, "isConstant": false, "isLValue": false, "isPure": false, @@ -9452,18 +9187,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 691, + "id": 668, "name": "sigV", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 650, - "src": "14322:4:0", + "referencedDeclaration": 627, + "src": "14075:4:0", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint8_$dyn_memory_ptr", "typeString": "uint8[] memory" } }, - "id": 692, + "id": 669, "isConstant": false, "isLValue": false, "isPure": false, @@ -9471,7 +9206,7 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "14322:11:0", + "src": "14075:11:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -9485,26 +9220,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 693, + "id": 670, "name": "transactions", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 77, - "src": "14336:12:0", + "referencedDeclaration": 75, + "src": "14089:12:0", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Transaction_$73_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Transaction_$71_storage_$", "typeString": "mapping(bytes32 => struct Escrow_v1_0.Transaction storage ref)" } }, - "id": 695, + "id": 672, "indexExpression": { "argumentTypes": null, - "id": 694, + "id": 671, "name": "scriptHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 658, - "src": "14349:10:0", + "referencedDeclaration": 635, + "src": "14102:10:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -9515,27 +9250,27 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "14336:24:0", + "src": "14089:24:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Transaction_$73_storage", + "typeIdentifier": "t_struct$_Transaction_$71_storage", "typeString": "struct Escrow_v1_0.Transaction storage ref" } }, - "id": 696, + "id": 673, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "threshold", "nodeType": "MemberAccess", - "referencedDeclaration": 50, - "src": "14336:34:0", + "referencedDeclaration": 48, + "src": "14089:34:0", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, - "src": "14322:48:0", + "src": "14075:48:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -9552,14 +9287,14 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 706, + "id": 683, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 699, + "id": 676, "isConstant": false, "isLValue": false, "isPure": false, @@ -9567,15 +9302,15 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "14375:16:0", + "src": "14128:16:0", "subExpression": { "argumentTypes": null, - "id": 698, + "id": 675, "name": "timeLockExpired", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 679, - "src": "14376:15:0", + "referencedDeclaration": 656, + "src": "14129:15:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -9594,19 +9329,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 705, + "id": 682, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 700, + "id": 677, "name": "lastRecovered", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 668, - "src": "14395:13:0", + "referencedDeclaration": 645, + "src": "14148:13:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9620,26 +9355,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 701, + "id": 678, "name": "transactions", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 77, - "src": "14412:12:0", + "referencedDeclaration": 75, + "src": "14165:12:0", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Transaction_$73_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Transaction_$71_storage_$", "typeString": "mapping(bytes32 => struct Escrow_v1_0.Transaction storage ref)" } }, - "id": 703, + "id": 680, "indexExpression": { "argumentTypes": null, - "id": 702, + "id": 679, "name": "scriptHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 658, - "src": "14425:10:0", + "referencedDeclaration": 635, + "src": "14178:10:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -9650,66 +9385,66 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "14412:24:0", + "src": "14165:24:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Transaction_$73_storage", + "typeIdentifier": "t_struct$_Transaction_$71_storage", "typeString": "struct Escrow_v1_0.Transaction storage ref" } }, - "id": 704, + "id": 681, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "seller", "nodeType": "MemberAccess", - "referencedDeclaration": 56, - "src": "14412:31:0", + "referencedDeclaration": 54, + "src": "14165:31:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "14395:48:0", + "src": "14148:48:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "14375:68:0", + "src": "14128:68:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } ], - "id": 707, + "id": 684, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "14374:70:0", + "src": "14127:70:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "14322:122:0", + "src": "14075:122:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 714, + "id": 691, "nodeType": "IfStatement", - "src": "14301:236:0", + "src": "14054:289:0", "trueBody": { - "id": 713, + "id": 690, "nodeType": "Block", - "src": "14467:70:0", + "src": "14220:123:0", "statements": [ { "expression": { @@ -9717,45 +9452,45 @@ "arguments": [ { "argumentTypes": null, - "hexValue": "736967562e6c656e67746820697320756e64657220746865207468726573686f6c642e", - "id": 710, + "hexValue": "4d696e696d756d206e756d626572206f66207369676e61747572657320617265206e6f7420636f6c6c656374656420616e642074696d65206c6f636b2065787069727920636f6e646974696f6e73206e6f74206d65742121", + "id": 687, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "14488:37:0", + "src": "14241:90:0", "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_stringliteral_d1b34f8ee6043043ff8e104db499160a1e51c77ca18fe42fba7312fd923c28e1", - "typeString": "literal_string \"sigV.length is under the threshold.\"" + "typeIdentifier": "t_stringliteral_e454643f61f81e3a3dc8dabaafde295fea592e232abeb03abbb1835bdc3d20d0", + "typeString": "literal_string \"Minimum number of signatures are not collected and time lock expiry conditions not met!!\"" }, - "value": "sigV.length is under the threshold." + "value": "Minimum number of signatures are not collected and time lock expiry conditions not met!!" } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_stringliteral_d1b34f8ee6043043ff8e104db499160a1e51c77ca18fe42fba7312fd923c28e1", - "typeString": "literal_string \"sigV.length is under the threshold.\"" + "typeIdentifier": "t_stringliteral_e454643f61f81e3a3dc8dabaafde295fea592e232abeb03abbb1835bdc3d20d0", + "typeString": "literal_string \"Minimum number of signatures are not collected and time lock expiry conditions not met!!\"" } ], - "id": 709, + "id": 686, "name": "revert", "nodeType": "Identifier", "overloadedDeclarations": [ - 1391, - 1392 + 1384, + 1385 ], - "referencedDeclaration": 1392, - "src": "14481:6:0", + "referencedDeclaration": 1385, + "src": "14234:6:0", "typeDescriptions": { "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$", "typeString": "function (string memory) pure" } }, - "id": 711, + "id": 688, "isConstant": false, "isLValue": false, "isPure": false, @@ -9763,15 +9498,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "14481:45:0", + "src": "14234:98:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 712, + "id": 689, "nodeType": "ExpressionStatement", - "src": "14481:45:0" + "src": "14234:98:0" } ] } @@ -9779,24 +9514,24 @@ ] }, "documentation": "@dev This methods checks validity of transaction\n1. Verify Signatures\n2. Check if minimum number of signatures has been acquired\n3. If above condition is false, check if time lock is expired and the execution is signed by seller", - "id": 716, + "id": 693, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [], - "name": "verifyTransaction", + "name": "_verifyTransaction", "nodeType": "FunctionDefinition", "parameters": { - "id": 665, + "id": 642, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 650, + "id": 627, "name": "sigV", "nodeType": "VariableDeclaration", - "scope": 716, - "src": "13628:12:0", + "scope": 693, + "src": "13379:12:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9805,19 +9540,19 @@ }, "typeName": { "baseType": { - "id": 648, + "id": 625, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "13628:5:0", + "src": "13379:5:0", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, - "id": 649, + "id": 626, "length": null, "nodeType": "ArrayTypeName", - "src": "13628:7:0", + "src": "13379:7:0", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint8_$dyn_storage_ptr", "typeString": "uint8[]" @@ -9828,11 +9563,11 @@ }, { "constant": false, - "id": 653, + "id": 630, "name": "sigR", "nodeType": "VariableDeclaration", - "scope": 716, - "src": "13650:14:0", + "scope": 693, + "src": "13401:14:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9841,19 +9576,19 @@ }, "typeName": { "baseType": { - "id": 651, + "id": 628, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "13650:7:0", + "src": "13401:7:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "id": 652, + "id": 629, "length": null, "nodeType": "ArrayTypeName", - "src": "13650:9:0", + "src": "13401:9:0", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", "typeString": "bytes32[]" @@ -9864,11 +9599,11 @@ }, { "constant": false, - "id": 656, + "id": 633, "name": "sigS", "nodeType": "VariableDeclaration", - "scope": 716, - "src": "13674:14:0", + "scope": 693, + "src": "13425:14:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9877,19 +9612,19 @@ }, "typeName": { "baseType": { - "id": 654, + "id": 631, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "13674:7:0", + "src": "13425:7:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "id": 655, + "id": 632, "length": null, "nodeType": "ArrayTypeName", - "src": "13674:9:0", + "src": "13425:9:0", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", "typeString": "bytes32[]" @@ -9900,11 +9635,11 @@ }, { "constant": false, - "id": 658, + "id": 635, "name": "scriptHash", "nodeType": "VariableDeclaration", - "scope": 716, - "src": "13698:18:0", + "scope": 693, + "src": "13449:18:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9912,10 +9647,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 657, + "id": 634, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "13698:7:0", + "src": "13449:7:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -9926,11 +9661,11 @@ }, { "constant": false, - "id": 661, + "id": 638, "name": "destinations", "nodeType": "VariableDeclaration", - "scope": 716, - "src": "13726:22:0", + "scope": 693, + "src": "13477:22:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9939,19 +9674,19 @@ }, "typeName": { "baseType": { - "id": 659, + "id": 636, "name": "address", "nodeType": "ElementaryTypeName", - "src": "13726:7:0", + "src": "13477:7:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 660, + "id": 637, "length": null, "nodeType": "ArrayTypeName", - "src": "13726:9:0", + "src": "13477:9:0", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]" @@ -9962,11 +9697,11 @@ }, { "constant": false, - "id": 664, + "id": 641, "name": "amounts", "nodeType": "VariableDeclaration", - "scope": 716, - "src": "13758:17:0", + "scope": 693, + "src": "13509:17:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9975,19 +9710,19 @@ }, "typeName": { "baseType": { - "id": 662, + "id": 639, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "13758:7:0", + "src": "13509:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 663, + "id": 640, "length": null, "nodeType": "ArrayTypeName", - "src": "13758:9:0", + "src": "13509:9:0", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", "typeString": "uint256[]" @@ -9997,54 +9732,54 @@ "visibility": "internal" } ], - "src": "13618:163:0" + "src": "13369:163:0" }, "payable": false, "returnParameters": { - "id": 666, + "id": 643, "nodeType": "ParameterList", "parameters": [], - "src": "13802:0:0" + "src": "13553:0:0" }, - "scope": 1213, - "src": "13592:952:0", + "scope": 1206, + "src": "13342:1008:0", "stateMutability": "nonpayable", "superFunction": null, "visibility": "private" }, { "body": { - "id": 901, + "id": 885, "nodeType": "Block", - "src": "14847:1540:0", + "src": "14637:1562:0", "statements": [ { "assignments": [ - 730 + 707 ], "declarations": [ { "constant": false, - "id": 730, + "id": 707, "name": "t", "nodeType": "VariableDeclaration", - "scope": 902, - "src": "14857:21:0", + "scope": 886, + "src": "14647:21:0", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { - "typeIdentifier": "t_struct$_Transaction_$73_storage_ptr", + "typeIdentifier": "t_struct$_Transaction_$71_storage_ptr", "typeString": "struct Escrow_v1_0.Transaction" }, "typeName": { "contractScope": null, - "id": 729, + "id": 706, "name": "Transaction", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 73, - "src": "14857:11:0", + "referencedDeclaration": 71, + "src": "14647:11:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Transaction_$73_storage_ptr", + "typeIdentifier": "t_struct$_Transaction_$71_storage_ptr", "typeString": "struct Escrow_v1_0.Transaction" } }, @@ -10052,31 +9787,31 @@ "visibility": "internal" } ], - "id": 734, + "id": 711, "initialValue": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 731, + "id": 708, "name": "transactions", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 77, - "src": "14881:12:0", + "referencedDeclaration": 75, + "src": "14671:12:0", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Transaction_$73_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Transaction_$71_storage_$", "typeString": "mapping(bytes32 => struct Escrow_v1_0.Transaction storage ref)" } }, - "id": 733, + "id": 710, "indexExpression": { "argumentTypes": null, - "id": 732, + "id": 709, "name": "scriptHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 718, - "src": "14894:10:0", + "referencedDeclaration": 695, + "src": "14684:10:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -10087,14 +9822,68 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "14881:24:0", + "src": "14671:24:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Transaction_$73_storage", + "typeIdentifier": "t_struct$_Transaction_$71_storage", "typeString": "struct Escrow_v1_0.Transaction storage ref" } }, "nodeType": "VariableDeclarationStatement", - "src": "14857:48:0" + "src": "14647:48:0" + }, + { + "assignments": [ + 713 + ], + "declarations": [ + { + "constant": false, + "id": 713, + "name": "valueTransferred", + "nodeType": "VariableDeclaration", + "scope": 886, + "src": "14706:24:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 712, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14706:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 715, + "initialValue": { + "argumentTypes": null, + "hexValue": "30", + "id": 714, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14733:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "14706:28:0" }, { "condition": { @@ -10103,7 +9892,7 @@ "typeIdentifier": "t_enum$_TransactionType_$12", "typeString": "enum Escrow_v1_0.TransactionType" }, - "id": 739, + "id": 720, "isConstant": false, "isLValue": false, "isPure": false, @@ -10112,26 +9901,26 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 735, + "id": 716, "name": "t", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 730, - "src": "14920:1:0", + "referencedDeclaration": 707, + "src": "14749:1:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Transaction_$73_storage_ptr", + "typeIdentifier": "t_struct$_Transaction_$71_storage_ptr", "typeString": "struct Escrow_v1_0.Transaction storage pointer" } }, - "id": 736, + "id": 717, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "transactionType", "nodeType": "MemberAccess", - "referencedDeclaration": 48, - "src": "14920:17:0", + "referencedDeclaration": 46, + "src": "14749:17:0", "typeDescriptions": { "typeIdentifier": "t_enum$_TransactionType_$12", "typeString": "enum Escrow_v1_0.TransactionType" @@ -10143,18 +9932,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 737, + "id": 718, "name": "TransactionType", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12, - "src": "14941:15:0", + "src": "14770:15:0", "typeDescriptions": { "typeIdentifier": "t_type$_t_enum$_TransactionType_$12_$", "typeString": "type(enum Escrow_v1_0.TransactionType)" } }, - "id": 738, + "id": 719, "isConstant": false, "isLValue": false, "isPure": true, @@ -10162,13 +9951,13 @@ "memberName": "ETHER", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "14941:21:0", + "src": "14770:21:0", "typeDescriptions": { "typeIdentifier": "t_enum$_TransactionType_$12", "typeString": "enum Escrow_v1_0.TransactionType" } }, - "src": "14920:42:0", + "src": "14749:42:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -10181,7 +9970,7 @@ "typeIdentifier": "t_enum$_TransactionType_$12", "typeString": "enum Escrow_v1_0.TransactionType" }, - "id": 813, + "id": 797, "isConstant": false, "isLValue": false, "isPure": false, @@ -10190,26 +9979,26 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 809, + "id": 793, "name": "t", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 730, - "src": "15561:1:0", + "referencedDeclaration": 707, + "src": "15405:1:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Transaction_$73_storage_ptr", + "typeIdentifier": "t_struct$_Transaction_$71_storage_ptr", "typeString": "struct Escrow_v1_0.Transaction storage pointer" } }, - "id": 810, + "id": 794, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "transactionType", "nodeType": "MemberAccess", - "referencedDeclaration": 48, - "src": "15561:17:0", + "referencedDeclaration": 46, + "src": "15405:17:0", "typeDescriptions": { "typeIdentifier": "t_enum$_TransactionType_$12", "typeString": "enum Escrow_v1_0.TransactionType" @@ -10221,18 +10010,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 811, + "id": 795, "name": "TransactionType", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12, - "src": "15582:15:0", + "src": "15426:15:0", "typeDescriptions": { "typeIdentifier": "t_type$_t_enum$_TransactionType_$12_$", "typeString": "type(enum Escrow_v1_0.TransactionType)" } }, - "id": 812, + "id": 796, "isConstant": false, "isLValue": false, "isPure": true, @@ -10240,122 +10029,54 @@ "memberName": "TOKEN", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "15582:21:0", + "src": "15426:21:0", "typeDescriptions": { "typeIdentifier": "t_enum$_TransactionType_$12", "typeString": "enum Escrow_v1_0.TransactionType" } }, - "src": "15561:42:0", + "src": "15405:42:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "falseBody": { - "id": 898, - "nodeType": "Block", - "src": "16221:160:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "5472616e736174696f6e2074797065206973206e6f7420737570706f727465642e", - "id": 895, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "16334:35:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_9d93f6a20d47e99a6df20afacc401ffacf7e50a57b5dfa59ab7b43321870608b", - "typeString": "literal_string \"Transation type is not supported.\"" - }, - "value": "Transation type is not supported." - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_stringliteral_9d93f6a20d47e99a6df20afacc401ffacf7e50a57b5dfa59ab7b43321870608b", - "typeString": "literal_string \"Transation type is not supported.\"" - } - ], - "id": 894, - "name": "revert", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1391, - 1392 - ], - "referencedDeclaration": 1392, - "src": "16327:6:0", - "typeDescriptions": { - "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$", - "typeString": "function (string memory) pure" - } - }, - "id": 896, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16327:43:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 897, - "nodeType": "ExpressionStatement", - "src": "16327:43:0" - } - ] - }, - "id": 899, + "falseBody": null, + "id": 881, "nodeType": "IfStatement", - "src": "15557:824:0", + "src": "15401:758:0", "trueBody": { - "id": 893, + "id": 880, "nodeType": "Block", - "src": "15605:610:0", + "src": "15449:710:0", "statements": [ { "assignments": [ - 815 + 799 ], "declarations": [ { "constant": false, - "id": 815, + "id": 799, "name": "token", "nodeType": "VariableDeclaration", - "scope": 902, - "src": "15620:20:0", + "scope": 886, + "src": "15464:20:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_ITokenContract_$1243", + "typeIdentifier": "t_contract$_ITokenContract_$1236", "typeString": "contract ITokenContract" }, "typeName": { "contractScope": null, - "id": 814, + "id": 798, "name": "ITokenContract", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1243, - "src": "15620:14:0", + "referencedDeclaration": 1236, + "src": "15464:14:0", "typeDescriptions": { - "typeIdentifier": "t_contract$_ITokenContract_$1243", + "typeIdentifier": "t_contract$_ITokenContract_$1236", "typeString": "contract ITokenContract" } }, @@ -10363,7 +10084,7 @@ "visibility": "internal" } ], - "id": 820, + "id": 804, "initialValue": { "argumentTypes": null, "arguments": [ @@ -10371,26 +10092,26 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 817, + "id": 801, "name": "t", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 730, - "src": "15658:1:0", + "referencedDeclaration": 707, + "src": "15502:1:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Transaction_$73_storage_ptr", + "typeIdentifier": "t_struct$_Transaction_$71_storage_ptr", "typeString": "struct Escrow_v1_0.Transaction storage pointer" } }, - "id": 818, + "id": 802, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "tokenAddress", "nodeType": "MemberAccess", - "referencedDeclaration": 58, - "src": "15658:14:0", + "referencedDeclaration": 56, + "src": "15502:14:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -10404,18 +10125,18 @@ "typeString": "address" } ], - "id": 816, + "id": 800, "name": "ITokenContract", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1243, - "src": "15643:14:0", + "referencedDeclaration": 1236, + "src": "15487:14:0", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ITokenContract_$1243_$", + "typeIdentifier": "t_type$_t_contract$_ITokenContract_$1236_$", "typeString": "type(contract ITokenContract)" } }, - "id": 819, + "id": 803, "isConstant": false, "isLValue": false, "isPure": false, @@ -10423,20 +10144,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "15643:30:0", + "src": "15487:30:0", "typeDescriptions": { - "typeIdentifier": "t_contract$_ITokenContract_$1243", + "typeIdentifier": "t_contract$_ITokenContract_$1236", "typeString": "contract ITokenContract" } }, "nodeType": "VariableDeclarationStatement", - "src": "15620:53:0" + "src": "15464:53:0" }, { "body": { - "id": 891, + "id": 878, "nodeType": "Block", - "src": "15736:469:0", + "src": "15580:569:0", "statements": [ { "expression": { @@ -10445,215 +10166,113 @@ { "argumentTypes": null, "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_address", + "typeString": "address" }, - "id": 846, + "id": 823, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 839, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { + "baseExpression": { "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 833, - "name": "destinations", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 721, - "src": "15763:12:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 835, - "indexExpression": { - "argumentTypes": null, - "id": 834, - "name": "j", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 822, - "src": "15776:1:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "15763:15:0", + "id": 817, + "name": "destinations", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 698, + "src": "15607:12:0", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" } }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { + "id": 819, + "indexExpression": { "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 837, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15790:1:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 836, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "15782:7:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 838, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15782:10:0", + "id": 818, + "name": "j", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 806, + "src": "15620:1:0", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "src": "15763:29:0", + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "15607:15:0", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_address", + "typeString": "address" } }, "nodeType": "BinaryOperation", - "operator": "&&", + "operator": "!=", "rightExpression": { "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "expression": { + "arguments": [ + { "argumentTypes": null, - "id": 840, - "name": "t", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 730, - "src": "15796:1:0", + "hexValue": "30", + "id": 821, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15634:1:0", + "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_struct$_Transaction_$73_storage_ptr", - "typeString": "struct Escrow_v1_0.Transaction storage pointer" - } - }, - "id": 841, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "isOwner", - "nodeType": "MemberAccess", - "referencedDeclaration": 64, - "src": "15796:9:0", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" } - }, - "id": 845, - "indexExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 842, - "name": "destinations", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 721, - "src": "15806:12:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 844, - "indexExpression": { - "argumentTypes": null, - "id": 843, - "name": "j", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 822, - "src": "15819:1:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" } - }, + ], + "id": 820, "isConstant": false, - "isLValue": true, - "isPure": false, + "isLValue": false, + "isPure": true, "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "15806:15:0", + "nodeType": "ElementaryTypeNameExpression", + "src": "15626:7:0", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" }, + "id": 822, "isConstant": false, - "isLValue": true, - "isPure": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "15796:26:0", + "names": [], + "nodeType": "FunctionCall", + "src": "15626:10:0", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_address", + "typeString": "address" } }, - "src": "15763:59:0", + "src": "15607:29:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -10661,21 +10280,21 @@ }, { "argumentTypes": null, - "hexValue": "4e6f7420612076616c69642064657374696e6174696f6e", - "id": 847, + "hexValue": "7a65726f2061646472657373206973206e6f7420616c6c6f7765642061732064657374696e6174696f6e2061646472657373", + "id": 824, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "15824:25:0", + "src": "15638:52:0", "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_stringliteral_4b4c116dbf18274831a2b569c567d9fd9a0e9828a6c86ee9f93e80400fb6c49f", - "typeString": "literal_string \"Not a valid destination\"" + "typeIdentifier": "t_stringliteral_587fbb5a9b8e6d4cc482f236066ac51bcf007ae6026eab186437d2f1b22fc139", + "typeString": "literal_string \"zero address is not allowed as destination address\"" }, - "value": "Not a valid destination" + "value": "zero address is not allowed as destination address" } ], "expression": { @@ -10685,25 +10304,25 @@ "typeString": "bool" }, { - "typeIdentifier": "t_stringliteral_4b4c116dbf18274831a2b569c567d9fd9a0e9828a6c86ee9f93e80400fb6c49f", - "typeString": "literal_string \"Not a valid destination\"" + "typeIdentifier": "t_stringliteral_587fbb5a9b8e6d4cc482f236066ac51bcf007ae6026eab186437d2f1b22fc139", + "typeString": "literal_string \"zero address is not allowed as destination address\"" } ], - "id": 832, + "id": 816, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1389, - 1390 + 1382, + 1383 ], - "referencedDeclaration": 1390, - "src": "15755:7:0", + "referencedDeclaration": 1383, + "src": "15599:7:0", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 848, + "id": 825, "isConstant": false, "isLValue": false, "isPure": false, @@ -10711,15 +10330,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "15755:95:0", + "src": "15599:92:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 849, + "id": 826, "nodeType": "ExpressionStatement", - "src": "15755:95:0" + "src": "15599:92:0" }, { "expression": { @@ -10727,39 +10346,60 @@ "arguments": [ { "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 828, + "name": "t", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 707, + "src": "15718:1:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Transaction_$71_storage_ptr", + "typeString": "struct Escrow_v1_0.Transaction storage pointer" + } + }, + "id": 829, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "isOwner", + "nodeType": "MemberAccess", + "referencedDeclaration": 62, + "src": "15718:9:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } }, - "id": 855, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { + "id": 833, + "indexExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 851, - "name": "amounts", + "id": 830, + "name": "destinations", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 724, - "src": "15876:7:0", + "referencedDeclaration": 698, + "src": "15728:12:0", "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" } }, - "id": 853, + "id": 832, "indexExpression": { "argumentTypes": null, - "id": 852, + "id": 831, "name": "j", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 822, - "src": "15884:1:0", + "referencedDeclaration": 806, + "src": "15741:1:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -10770,33 +10410,161 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "15876:10:0", + "src": "15728:15:0", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_address", + "typeString": "address" } }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 854, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15889:1:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "15718:26:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "44657374696e6174696f6e2061646472657373206973206e6f74206f6e65206f6620746865206f776e657273", + "id": 834, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15746:46:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_5ccbe9d117aeeb4b3546dfe6a12f083cb37039367b3ec38b60873b8650bc846f", + "typeString": "literal_string \"Destination address is not one of the owners\"" + }, + "value": "Destination address is not one of the owners" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_5ccbe9d117aeeb4b3546dfe6a12f083cb37039367b3ec38b60873b8650bc846f", + "typeString": "literal_string \"Destination address is not one of the owners\"" + } + ], + "id": 827, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1382, + 1383 + ], + "referencedDeclaration": 1383, + "src": "15710:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 835, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15710:83:0", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 836, + "nodeType": "ExpressionStatement", + "src": "15710:83:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 842, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 838, + "name": "amounts", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 701, + "src": "15820:7:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 840, + "indexExpression": { + "argumentTypes": null, + "id": 839, + "name": "j", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 806, + "src": "15828:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "15820:10:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 841, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15833:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" }, "value": "0" }, - "src": "15876:14:0", + "src": "15820:14:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -10805,14 +10573,14 @@ { "argumentTypes": null, "hexValue": "416d6f756e7420746f2062652073656e742073686f756c642062652067726561746572207468616e2030", - "id": 856, + "id": 843, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "15892:44:0", + "src": "15836:44:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_5e1271a09dbb64ae031de288deb0ad8d707df7db51d6e827931dc8fa6642a71e", @@ -10832,21 +10600,21 @@ "typeString": "literal_string \"Amount to be sent should be greater than 0\"" } ], - "id": 850, + "id": 837, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1389, - 1390 + 1382, + 1383 ], - "referencedDeclaration": 1390, - "src": "15868:7:0", + "referencedDeclaration": 1383, + "src": "15812:7:0", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 857, + "id": 844, "isConstant": false, "isLValue": false, "isPure": false, @@ -10854,32 +10622,32 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "15868:69:0", + "src": "15812:69:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 858, + "id": 845, "nodeType": "ExpressionStatement", - "src": "15868:69:0" + "src": "15812:69:0" }, { "expression": { "argumentTypes": null, - "id": 866, + "id": 853, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 859, + "id": 846, "name": "valueTransferred", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 727, - "src": "15956:16:0", + "referencedDeclaration": 713, + "src": "15900:16:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -10894,26 +10662,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 862, + "id": 849, "name": "amounts", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 724, - "src": "15996:7:0", + "referencedDeclaration": 701, + "src": "15940:7:0", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", "typeString": "uint256[] memory" } }, - "id": 864, + "id": 851, "indexExpression": { "argumentTypes": null, - "id": 863, + "id": 850, "name": "j", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 822, - "src": "16004:1:0", + "referencedDeclaration": 806, + "src": "15948:1:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -10924,7 +10692,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "15996:10:0", + "src": "15940:10:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -10940,32 +10708,32 @@ ], "expression": { "argumentTypes": null, - "id": 860, + "id": 847, "name": "valueTransferred", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 727, - "src": "15975:16:0", + "referencedDeclaration": 713, + "src": "15919:16:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 861, + "id": 848, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", - "referencedDeclaration": 1350, - "src": "15975:20:0", + "referencedDeclaration": 1343, + "src": "15919:20:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 865, + "id": 852, "isConstant": false, "isLValue": false, "isPure": false, @@ -10973,26 +10741,26 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "15975:32:0", + "src": "15919:32:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "15956:51:0", + "src": "15900:51:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 867, + "id": 854, "nodeType": "ExpressionStatement", - "src": "15956:51:0" + "src": "15900:51:0" }, { "expression": { "argumentTypes": null, - "id": 876, + "id": 863, "isConstant": false, "isLValue": false, "isPure": false, @@ -11003,56 +10771,56 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 868, + "id": 855, "name": "t", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 730, - "src": "16025:1:0", + "referencedDeclaration": 707, + "src": "15969:1:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Transaction_$73_storage_ptr", + "typeIdentifier": "t_struct$_Transaction_$71_storage_ptr", "typeString": "struct Escrow_v1_0.Transaction storage pointer" } }, - "id": 873, + "id": 860, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "beneficiaries", "nodeType": "MemberAccess", - "referencedDeclaration": 72, - "src": "16025:15:0", + "referencedDeclaration": 70, + "src": "15969:15:0", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, - "id": 874, + "id": 861, "indexExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 870, + "id": 857, "name": "destinations", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 721, - "src": "16041:12:0", + "referencedDeclaration": 698, + "src": "15985:12:0", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, - "id": 872, + "id": 859, "indexExpression": { "argumentTypes": null, - "id": 871, + "id": 858, "name": "j", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 822, - "src": "16054:1:0", + "referencedDeclaration": 806, + "src": "15998:1:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11063,7 +10831,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "16041:15:0", + "src": "15985:15:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -11074,7 +10842,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "16025:32:0", + "src": "15969:32:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -11085,14 +10853,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "74727565", - "id": 875, + "id": 862, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "16060:4:0", + "src": "16004:4:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -11100,15 +10868,15 @@ }, "value": "true" }, - "src": "16025:39:0", + "src": "15969:39:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 877, + "id": 864, "nodeType": "ExpressionStatement", - "src": "16025:39:0" + "src": "15969:39:0" }, { "expression": { @@ -11121,26 +10889,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 881, + "id": 868, "name": "destinations", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 721, - "src": "16135:12:0", + "referencedDeclaration": 698, + "src": "16079:12:0", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, - "id": 883, + "id": 870, "indexExpression": { "argumentTypes": null, - "id": 882, + "id": 869, "name": "j", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 822, - "src": "16148:1:0", + "referencedDeclaration": 806, + "src": "16092:1:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11151,7 +10919,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "16135:15:0", + "src": "16079:15:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -11161,26 +10929,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 884, + "id": 871, "name": "amounts", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 724, - "src": "16152:7:0", + "referencedDeclaration": 701, + "src": "16096:7:0", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", "typeString": "uint256[] memory" } }, - "id": 886, + "id": 873, "indexExpression": { "argumentTypes": null, - "id": 885, + "id": 872, "name": "j", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 822, - "src": "16160:1:0", + "referencedDeclaration": 806, + "src": "16104:1:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11191,7 +10959,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "16152:10:0", + "src": "16096:10:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11211,32 +10979,32 @@ ], "expression": { "argumentTypes": null, - "id": 879, + "id": 866, "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 815, - "src": "16120:5:0", + "referencedDeclaration": 799, + "src": "16064:5:0", "typeDescriptions": { - "typeIdentifier": "t_contract$_ITokenContract_$1243", + "typeIdentifier": "t_contract$_ITokenContract_$1236", "typeString": "contract ITokenContract" } }, - "id": 880, + "id": 867, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "transfer", "nodeType": "MemberAccess", - "referencedDeclaration": 1231, - "src": "16120:14:0", + "referencedDeclaration": 1224, + "src": "16064:14:0", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", "typeString": "function (address,uint256) external returns (bool)" } }, - "id": 887, + "id": 874, "isConstant": false, "isLValue": false, "isPure": false, @@ -11244,7 +11012,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "16120:43:0", + "src": "16064:43:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -11253,14 +11021,14 @@ { "argumentTypes": null, "hexValue": "546f6b656e207472616e73666572206661696c65642e", - "id": 888, + "id": 875, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "16165:24:0", + "src": "16109:24:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_e545223bb79d8456d66fa5a98897abb42bb4807111f004a120200da3b7e292c5", @@ -11280,21 +11048,21 @@ "typeString": "literal_string \"Token transfer failed.\"" } ], - "id": 878, + "id": 865, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1389, - 1390 + 1382, + 1383 ], - "referencedDeclaration": 1390, - "src": "16112:7:0", + "referencedDeclaration": 1383, + "src": "16056:7:0", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 889, + "id": 876, "isConstant": false, "isLValue": false, "isPure": false, @@ -11302,15 +11070,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "16112:78:0", + "src": "16056:78:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 890, + "id": 877, "nodeType": "ExpressionStatement", - "src": "16112:78:0" + "src": "16056:78:0" } ] }, @@ -11320,19 +11088,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 828, + "id": 812, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 825, + "id": 809, "name": "j", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 822, - "src": "15708:1:0", + "referencedDeclaration": 806, + "src": "15552:1:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11344,18 +11112,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 826, + "id": 810, "name": "destinations", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 721, - "src": "15710:12:0", + "referencedDeclaration": 698, + "src": "15554:12:0", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, - "id": 827, + "id": 811, "isConstant": false, "isLValue": false, "isPure": false, @@ -11363,31 +11131,31 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "15710:19:0", + "src": "15554:19:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "15708:21:0", + "src": "15552:21:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 892, + "id": 879, "initializationExpression": { "assignments": [ - 822 + 806 ], "declarations": [ { "constant": false, - "id": 822, + "id": 806, "name": "j", "nodeType": "VariableDeclaration", - "scope": 902, - "src": "15693:9:0", + "scope": 886, + "src": "15537:9:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -11395,10 +11163,10 @@ "typeString": "uint256" }, "typeName": { - "id": 821, + "id": 805, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "15693:7:0", + "src": "15537:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11408,18 +11176,18 @@ "visibility": "internal" } ], - "id": 824, + "id": 808, "initialValue": { "argumentTypes": null, "hexValue": "30", - "id": 823, + "id": 807, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "15705:1:0", + "src": "15549:1:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -11428,12 +11196,12 @@ "value": "0" }, "nodeType": "VariableDeclarationStatement", - "src": "15693:13:0" + "src": "15537:13:0" }, "loopExpression": { "expression": { "argumentTypes": null, - "id": 830, + "id": 814, "isConstant": false, "isLValue": false, "isPure": false, @@ -11441,15 +11209,15 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "15731:3:0", + "src": "15575:3:0", "subExpression": { "argumentTypes": null, - "id": 829, + "id": 813, "name": "j", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 822, - "src": "15731:1:0", + "referencedDeclaration": 806, + "src": "15575:1:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11460,29 +11228,29 @@ "typeString": "uint256" } }, - "id": 831, + "id": 815, "nodeType": "ExpressionStatement", - "src": "15731:3:0" + "src": "15575:3:0" }, "nodeType": "ForStatement", - "src": "15688:517:0" + "src": "15532:617:0" } ] } }, - "id": 900, + "id": 882, "nodeType": "IfStatement", - "src": "14916:1465:0", + "src": "14745:1414:0", "trueBody": { - "id": 808, + "id": 792, "nodeType": "Block", - "src": "14964:587:0", + "src": "14793:602:0", "statements": [ { "body": { - "id": 806, + "id": 790, "nodeType": "Block", - "src": "15028:512:0", + "src": "14857:527:0", "statements": [ { "expression": { @@ -11491,201 +11259,243 @@ { "argumentTypes": null, "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_address", + "typeString": "address" }, - "id": 765, + "id": 739, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 758, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { + "baseExpression": { "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 752, - "name": "destinations", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 721, - "src": "15055:12:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 754, - "indexExpression": { - "argumentTypes": null, - "id": 753, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 741, - "src": "15068:1:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "15055:15:0", + "id": 733, + "name": "destinations", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 698, + "src": "14884:12:0", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" } }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { + "id": 735, + "indexExpression": { "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 756, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15082:1:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 755, + "id": 734, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 722, + "src": "14897:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "14884:15:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 737, "isConstant": false, "isLValue": false, "isPure": true, + "kind": "number", "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "15074:7:0", + "nodeType": "Literal", + "src": "14911:1:0", + "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" }, - "typeName": "address" - }, - "id": 757, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 736, "isConstant": false, "isLValue": false, "isPure": true, - "kind": "typeConversion", "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15074:10:0", + "nodeType": "ElementaryTypeNameExpression", + "src": "14903:7:0", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" }, - "src": "15055:29:0", + "id": 738, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14903:10:0", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_address", + "typeString": "address" } }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "argumentTypes": null, + "src": "14884:29:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "7a65726f2061646472657373206973206e6f7420616c6c6f7765642061732064657374696e6174696f6e2061646472657373", + "id": 740, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14915:52:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_587fbb5a9b8e6d4cc482f236066ac51bcf007ae6026eab186437d2f1b22fc139", + "typeString": "literal_string \"zero address is not allowed as destination address\"" + }, + "value": "zero address is not allowed as destination address" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_587fbb5a9b8e6d4cc482f236066ac51bcf007ae6026eab186437d2f1b22fc139", + "typeString": "literal_string \"zero address is not allowed as destination address\"" + } + ], + "id": 732, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1382, + 1383 + ], + "referencedDeclaration": 1383, + "src": "14876:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 741, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14876:92:0", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 742, + "nodeType": "ExpressionStatement", + "src": "14876:92:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 744, + "name": "t", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 707, + "src": "14995:1:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Transaction_$71_storage_ptr", + "typeString": "struct Escrow_v1_0.Transaction storage pointer" + } + }, + "id": 745, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "isOwner", + "nodeType": "MemberAccess", + "referencedDeclaration": 62, + "src": "14995:9:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 749, + "indexExpression": { + "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 759, - "name": "t", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 730, - "src": "15088:1:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Transaction_$73_storage_ptr", - "typeString": "struct Escrow_v1_0.Transaction storage pointer" - } - }, - "id": 760, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "isOwner", - "nodeType": "MemberAccess", - "referencedDeclaration": 64, - "src": "15088:9:0", + "id": 746, + "name": "destinations", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 698, + "src": "15005:12:0", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" } }, - "id": 764, + "id": 748, "indexExpression": { "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 761, - "name": "destinations", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 721, - "src": "15098:12:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 763, - "indexExpression": { - "argumentTypes": null, - "id": 762, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 741, - "src": "15111:1:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "15098:15:0", + "id": 747, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 722, + "src": "15018:1:0", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, "isConstant": false, @@ -11693,13 +11503,18 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "15088:26:0", + "src": "15005:15:0", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_address", + "typeString": "address" } }, - "src": "15055:59:0", + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "14995:26:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -11707,21 +11522,21 @@ }, { "argumentTypes": null, - "hexValue": "4e6f7420612076616c69642064657374696e6174696f6e", - "id": 766, + "hexValue": "44657374696e6174696f6e2061646472657373206973206e6f74206f6e65206f6620746865206f776e657273", + "id": 750, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "15116:25:0", + "src": "15023:46:0", "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_stringliteral_4b4c116dbf18274831a2b569c567d9fd9a0e9828a6c86ee9f93e80400fb6c49f", - "typeString": "literal_string \"Not a valid destination\"" + "typeIdentifier": "t_stringliteral_5ccbe9d117aeeb4b3546dfe6a12f083cb37039367b3ec38b60873b8650bc846f", + "typeString": "literal_string \"Destination address is not one of the owners\"" }, - "value": "Not a valid destination" + "value": "Destination address is not one of the owners" } ], "expression": { @@ -11731,25 +11546,25 @@ "typeString": "bool" }, { - "typeIdentifier": "t_stringliteral_4b4c116dbf18274831a2b569c567d9fd9a0e9828a6c86ee9f93e80400fb6c49f", - "typeString": "literal_string \"Not a valid destination\"" + "typeIdentifier": "t_stringliteral_5ccbe9d117aeeb4b3546dfe6a12f083cb37039367b3ec38b60873b8650bc846f", + "typeString": "literal_string \"Destination address is not one of the owners\"" } ], - "id": 751, + "id": 743, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1389, - 1390 + 1382, + 1383 ], - "referencedDeclaration": 1390, - "src": "15047:7:0", + "referencedDeclaration": 1383, + "src": "14987:7:0", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 767, + "id": 751, "isConstant": false, "isLValue": false, "isPure": false, @@ -11757,15 +11572,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "15047:95:0", + "src": "14987:83:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 768, + "id": 752, "nodeType": "ExpressionStatement", - "src": "15047:95:0" + "src": "14987:83:0" }, { "expression": { @@ -11777,7 +11592,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 774, + "id": 758, "isConstant": false, "isLValue": false, "isPure": false, @@ -11786,26 +11601,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 770, + "id": 754, "name": "amounts", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 724, - "src": "15168:7:0", + "referencedDeclaration": 701, + "src": "15097:7:0", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", "typeString": "uint256[] memory" } }, - "id": 772, + "id": 756, "indexExpression": { "argumentTypes": null, - "id": 771, + "id": 755, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 741, - "src": "15176:1:0", + "referencedDeclaration": 722, + "src": "15105:1:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11816,7 +11631,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "15168:10:0", + "src": "15097:10:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11827,14 +11642,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 773, + "id": 757, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "15181:1:0", + "src": "15110:1:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -11842,7 +11657,7 @@ }, "value": "0" }, - "src": "15168:14:0", + "src": "15097:14:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -11851,14 +11666,14 @@ { "argumentTypes": null, "hexValue": "416d6f756e7420746f2062652073656e742073686f756c642062652067726561746572207468616e2030", - "id": 775, + "id": 759, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "15184:44:0", + "src": "15113:44:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_5e1271a09dbb64ae031de288deb0ad8d707df7db51d6e827931dc8fa6642a71e", @@ -11878,21 +11693,21 @@ "typeString": "literal_string \"Amount to be sent should be greater than 0\"" } ], - "id": 769, + "id": 753, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1389, - 1390 + 1382, + 1383 ], - "referencedDeclaration": 1390, - "src": "15160:7:0", + "referencedDeclaration": 1383, + "src": "15089:7:0", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 776, + "id": 760, "isConstant": false, "isLValue": false, "isPure": false, @@ -11900,32 +11715,32 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "15160:69:0", + "src": "15089:69:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 777, + "id": 761, "nodeType": "ExpressionStatement", - "src": "15160:69:0" + "src": "15089:69:0" }, { "expression": { "argumentTypes": null, - "id": 785, + "id": 769, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 778, + "id": 762, "name": "valueTransferred", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 727, - "src": "15248:16:0", + "referencedDeclaration": 713, + "src": "15177:16:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11940,26 +11755,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 781, + "id": 765, "name": "amounts", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 724, - "src": "15288:7:0", + "referencedDeclaration": 701, + "src": "15217:7:0", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", "typeString": "uint256[] memory" } }, - "id": 783, + "id": 767, "indexExpression": { "argumentTypes": null, - "id": 782, + "id": 766, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 741, - "src": "15296:1:0", + "referencedDeclaration": 722, + "src": "15225:1:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11970,7 +11785,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "15288:10:0", + "src": "15217:10:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11986,32 +11801,32 @@ ], "expression": { "argumentTypes": null, - "id": 779, + "id": 763, "name": "valueTransferred", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 727, - "src": "15267:16:0", + "referencedDeclaration": 713, + "src": "15196:16:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 780, + "id": 764, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", - "referencedDeclaration": 1350, - "src": "15267:20:0", + "referencedDeclaration": 1343, + "src": "15196:20:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 784, + "id": 768, "isConstant": false, "isLValue": false, "isPure": false, @@ -12019,26 +11834,26 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "15267:32:0", + "src": "15196:32:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "15248:51:0", + "src": "15177:51:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 786, + "id": 770, "nodeType": "ExpressionStatement", - "src": "15248:51:0" + "src": "15177:51:0" }, { "expression": { "argumentTypes": null, - "id": 795, + "id": 779, "isConstant": false, "isLValue": false, "isPure": false, @@ -12049,56 +11864,56 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 787, + "id": 771, "name": "t", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 730, - "src": "15318:1:0", + "referencedDeclaration": 707, + "src": "15247:1:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Transaction_$73_storage_ptr", + "typeIdentifier": "t_struct$_Transaction_$71_storage_ptr", "typeString": "struct Escrow_v1_0.Transaction storage pointer" } }, - "id": 792, + "id": 776, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "beneficiaries", "nodeType": "MemberAccess", - "referencedDeclaration": 72, - "src": "15318:15:0", + "referencedDeclaration": 70, + "src": "15247:15:0", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, - "id": 793, + "id": 777, "indexExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 789, + "id": 773, "name": "destinations", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 721, - "src": "15334:12:0", + "referencedDeclaration": 698, + "src": "15263:12:0", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, - "id": 791, + "id": 775, "indexExpression": { "argumentTypes": null, - "id": 790, + "id": 774, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 741, - "src": "15347:1:0", + "referencedDeclaration": 722, + "src": "15276:1:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -12109,7 +11924,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "15334:15:0", + "src": "15263:15:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -12120,7 +11935,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "15318:32:0", + "src": "15247:32:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -12131,14 +11946,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "74727565", - "id": 794, + "id": 778, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "15353:4:0", + "src": "15282:4:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -12146,15 +11961,15 @@ }, "value": "true" }, - "src": "15318:39:0", + "src": "15247:39:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 796, + "id": 780, "nodeType": "ExpressionStatement", - "src": "15318:39:0" + "src": "15247:39:0" }, { "expression": { @@ -12164,26 +11979,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 801, + "id": 785, "name": "amounts", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 724, - "src": "15429:7:0", + "referencedDeclaration": 701, + "src": "15358:7:0", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", "typeString": "uint256[] memory" } }, - "id": 803, + "id": 787, "indexExpression": { "argumentTypes": null, - "id": 802, + "id": 786, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 741, - "src": "15437:1:0", + "referencedDeclaration": 722, + "src": "15366:1:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -12194,7 +12009,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "15429:10:0", + "src": "15358:10:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -12212,26 +12027,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 797, + "id": 781, "name": "destinations", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 721, - "src": "15404:12:0", + "referencedDeclaration": 698, + "src": "15333:12:0", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, - "id": 799, + "id": 783, "indexExpression": { "argumentTypes": null, - "id": 798, + "id": 782, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 741, - "src": "15417:1:0", + "referencedDeclaration": 722, + "src": "15346:1:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -12242,13 +12057,13 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "15404:15:0", + "src": "15333:15:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 800, + "id": 784, "isConstant": false, "isLValue": false, "isPure": false, @@ -12256,13 +12071,13 @@ "memberName": "transfer", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "15404:24:0", + "src": "15333:24:0", "typeDescriptions": { "typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$", "typeString": "function (uint256)" } }, - "id": 804, + "id": 788, "isConstant": false, "isLValue": false, "isPure": false, @@ -12270,15 +12085,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "15404:36:0", + "src": "15333:36:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 805, + "id": 789, "nodeType": "ExpressionStatement", - "src": "15404:36:0" + "src": "15333:36:0" } ] }, @@ -12288,19 +12103,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 747, + "id": 728, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 744, + "id": 725, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 741, - "src": "14998:1:0", + "referencedDeclaration": 722, + "src": "14827:1:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -12312,18 +12127,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 745, + "id": 726, "name": "destinations", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 721, - "src": "15002:12:0", + "referencedDeclaration": 698, + "src": "14831:12:0", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, - "id": 746, + "id": 727, "isConstant": false, "isLValue": false, "isPure": false, @@ -12331,31 +12146,31 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "15002:19:0", + "src": "14831:19:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "14998:23:0", + "src": "14827:23:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 807, + "id": 791, "initializationExpression": { "assignments": [ - 741 + 722 ], "declarations": [ { "constant": false, - "id": 741, + "id": 722, "name": "i", "nodeType": "VariableDeclaration", - "scope": 902, - "src": "14983:9:0", + "scope": 886, + "src": "14812:9:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -12363,10 +12178,10 @@ "typeString": "uint256" }, "typeName": { - "id": 740, + "id": 721, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "14983:7:0", + "src": "14812:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -12376,18 +12191,18 @@ "visibility": "internal" } ], - "id": 743, + "id": 724, "initialValue": { "argumentTypes": null, "hexValue": "30", - "id": 742, + "id": 723, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "14995:1:0", + "src": "14824:1:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -12396,12 +12211,12 @@ "value": "0" }, "nodeType": "VariableDeclarationStatement", - "src": "14983:13:0" + "src": "14812:13:0" }, "loopExpression": { "expression": { "argumentTypes": null, - "id": 749, + "id": 730, "isConstant": false, "isLValue": false, "isPure": false, @@ -12409,15 +12224,15 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "15023:3:0", + "src": "14852:3:0", "subExpression": { "argumentTypes": null, - "id": 748, + "id": 729, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 741, - "src": "15023:1:0", + "referencedDeclaration": 722, + "src": "14852:1:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -12428,37 +12243,56 @@ "typeString": "uint256" } }, - "id": 750, + "id": 731, "nodeType": "ExpressionStatement", - "src": "15023:3:0" + "src": "14852:3:0" }, "nodeType": "ForStatement", - "src": "14978:562:0" + "src": "14807:577:0" } ] } + }, + { + "expression": { + "argumentTypes": null, + "id": 883, + "name": "valueTransferred", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 713, + "src": "16176:16:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 705, + "id": 884, + "nodeType": "Return", + "src": "16169:23:0" } ] }, "documentation": "dev Private method to transfer funds to the destination addresses on the basis of transaction type", - "id": 902, + "id": 886, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [], - "name": "transferFunds", + "name": "_transferFunds", "nodeType": "FunctionDefinition", "parameters": { - "id": 725, + "id": 702, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 718, + "id": 695, "name": "scriptHash", "nodeType": "VariableDeclaration", - "scope": 902, - "src": "14702:18:0", + "scope": 886, + "src": "14509:18:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -12466,10 +12300,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 717, + "id": 694, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "14702:7:0", + "src": "14509:7:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -12480,11 +12314,11 @@ }, { "constant": false, - "id": 721, + "id": 698, "name": "destinations", "nodeType": "VariableDeclaration", - "scope": 902, - "src": "14730:21:0", + "scope": 886, + "src": "14537:21:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -12493,19 +12327,19 @@ }, "typeName": { "baseType": { - "id": 719, + "id": 696, "name": "address", "nodeType": "ElementaryTypeName", - "src": "14730:7:0", + "src": "14537:7:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 720, + "id": 697, "length": null, "nodeType": "ArrayTypeName", - "src": "14730:9:0", + "src": "14537:9:0", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]" @@ -12516,11 +12350,11 @@ }, { "constant": false, - "id": 724, + "id": 701, "name": "amounts", "nodeType": "VariableDeclaration", - "scope": 902, - "src": "14761:16:0", + "scope": 886, + "src": "14568:16:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -12529,19 +12363,19 @@ }, "typeName": { "baseType": { - "id": 722, + "id": 699, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "14761:7:0", + "src": "14568:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 723, + "id": 700, "length": null, "nodeType": "ArrayTypeName", - "src": "14761:9:0", + "src": "14568:9:0", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", "typeString": "uint256[]" @@ -12551,20 +12385,20 @@ "visibility": "internal" } ], - "src": "14692:91:0" + "src": "14499:91:0" }, "payable": false, "returnParameters": { - "id": 728, + "id": 705, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 727, - "name": "valueTransferred", + "id": 704, + "name": "", "nodeType": "VariableDeclaration", - "scope": 902, - "src": "14817:24:0", + "scope": 886, + "src": "14624:7:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -12572,10 +12406,10 @@ "typeString": "uint256" }, "typeName": { - "id": 726, + "id": 703, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "14817:7:0", + "src": "14624:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -12585,19 +12419,19 @@ "visibility": "internal" } ], - "src": "14816:26:0" + "src": "14623:9:0" }, - "scope": 1213, - "src": "14670:1717:0", + "scope": 1206, + "src": "14476:1723:0", "stateMutability": "nonpayable", "superFunction": null, "visibility": "private" }, { "body": { - "id": 1025, + "id": 1016, "nodeType": "Block", - "src": "16817:1277:0", + "src": "16619:1346:0", "statements": [ { "expression": { @@ -12609,7 +12443,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 935, + "id": 919, "isConstant": false, "isLValue": false, "isPure": false, @@ -12620,7 +12454,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 929, + "id": 913, "isConstant": false, "isLValue": false, "isPure": false, @@ -12629,18 +12463,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 925, + "id": 909, "name": "sigR", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 908, - "src": "16848:4:0", + "referencedDeclaration": 892, + "src": "16651:4:0", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr", "typeString": "bytes32[] memory" } }, - "id": 926, + "id": 910, "isConstant": false, "isLValue": false, "isPure": false, @@ -12648,7 +12482,7 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "16848:11:0", + "src": "16651:11:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -12660,18 +12494,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 927, + "id": 911, "name": "sigS", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 911, - "src": "16863:4:0", + "referencedDeclaration": 895, + "src": "16666:4:0", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr", "typeString": "bytes32[] memory" } }, - "id": 928, + "id": 912, "isConstant": false, "isLValue": false, "isPure": false, @@ -12679,13 +12513,13 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "16863:11:0", + "src": "16666:11:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "16848:26:0", + "src": "16651:26:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -12699,7 +12533,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 934, + "id": 918, "isConstant": false, "isLValue": false, "isPure": false, @@ -12708,18 +12542,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 930, + "id": 914, "name": "sigR", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 908, - "src": "16878:4:0", + "referencedDeclaration": 892, + "src": "16681:4:0", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr", "typeString": "bytes32[] memory" } }, - "id": 931, + "id": 915, "isConstant": false, "isLValue": false, "isPure": false, @@ -12727,7 +12561,7 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "16878:11:0", + "src": "16681:11:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -12739,18 +12573,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 932, + "id": 916, "name": "sigV", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 905, - "src": "16893:4:0", + "referencedDeclaration": 889, + "src": "16696:4:0", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint8_$dyn_memory_ptr", "typeString": "uint8[] memory" } }, - "id": 933, + "id": 917, "isConstant": false, "isLValue": false, "isPure": false, @@ -12758,19 +12592,19 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "16893:11:0", + "src": "16696:11:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "16878:26:0", + "src": "16681:26:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "16848:56:0", + "src": "16651:56:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -12779,14 +12613,14 @@ { "argumentTypes": null, "hexValue": "522c532c56206c656e677468206d69736d617463682e", - "id": 936, + "id": 920, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "16919:24:0", + "src": "16722:24:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_f85073c8befb65baed58ca1ee563e5da0bdbdce8abd4d29ef22a8329c7c97506", @@ -12806,21 +12640,21 @@ "typeString": "literal_string \"R,S,V length mismatch.\"" } ], - "id": 924, + "id": 908, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1389, - 1390 + 1382, + 1383 ], - "referencedDeclaration": 1390, - "src": "16827:7:0", + "referencedDeclaration": 1383, + "src": "16630:7:0", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 937, + "id": 921, "isConstant": false, "isLValue": false, "isPure": false, @@ -12828,28 +12662,63 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "16827:126:0", + "src": "16630:126:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 938, + "id": 922, "nodeType": "ExpressionStatement", - "src": "16827:126:0" + "src": "16630:126:0" + }, + { + "assignments": [], + "declarations": [ + { + "constant": false, + "id": 924, + "name": "lastAddress", + "nodeType": "VariableDeclaration", + "scope": 1017, + "src": "16767:19:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 923, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "16767:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 925, + "initialValue": null, + "nodeType": "VariableDeclarationStatement", + "src": "16767:19:0" }, { "assignments": [ - 940 + 927 ], "declarations": [ { "constant": false, - "id": 940, + "id": 927, "name": "txHash", "nodeType": "VariableDeclaration", - "scope": 1026, - "src": "17052:14:0", + "scope": 1017, + "src": "16885:14:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -12857,10 +12726,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 939, + "id": 926, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "17052:7:0", + "src": "16885:7:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -12870,7 +12739,7 @@ "visibility": "internal" } ], - "id": 962, + "id": 951, "initialValue": { "argumentTypes": null, "arguments": [ @@ -12880,14 +12749,14 @@ { "argumentTypes": null, "hexValue": "19457468657265756d205369676e6564204d6573736167653a0a3332", - "id": 944, + "id": 931, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "17126:34:0", + "src": "16959:34:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_178a2411ab6fbc1ba11064408972259c558d0e82fd48b0aba3ad81d14f065e73", @@ -12907,14 +12776,14 @@ { "argumentTypes": null, "hexValue": "30783139", - "id": 949, + "id": 936, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "17256:4:0", + "src": "17089:4:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_25_by_1", @@ -12930,20 +12799,20 @@ "typeString": "int_const 25" } ], - "id": 948, + "id": 935, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "17251:4:0", + "src": "17084:4:0", "typeDescriptions": { "typeIdentifier": "t_type$_t_bytes1_$", "typeString": "type(bytes1)" }, "typeName": "byte" }, - "id": 950, + "id": 937, "isConstant": false, "isLValue": false, "isPure": true, @@ -12951,7 +12820,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "17251:10:0", + "src": "17084:10:0", "typeDescriptions": { "typeIdentifier": "t_bytes1", "typeString": "bytes1" @@ -12963,14 +12832,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 952, + "id": 939, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "17292:1:0", + "src": "17125:1:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -12986,20 +12855,20 @@ "typeString": "int_const 0" } ], - "id": 951, + "id": 938, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "17287:4:0", + "src": "17120:4:0", "typeDescriptions": { "typeIdentifier": "t_type$_t_bytes1_$", "typeString": "type(bytes1)" }, "typeName": "byte" }, - "id": 953, + "id": 940, "isConstant": false, "isLValue": false, "isPure": true, @@ -13007,7 +12876,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "17287:7:0", + "src": "17120:7:0", "typeDescriptions": { "typeIdentifier": "t_bytes1", "typeString": "bytes1" @@ -13015,25 +12884,63 @@ }, { "argumentTypes": null, - "id": 954, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1403, - "src": "17320:4:0", + "arguments": [ + { + "argumentTypes": null, + "id": 942, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1396, + "src": "17161:4:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Escrow_v1_0_$1206", + "typeString": "contract Escrow_v1_0" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Escrow_v1_0_$1206", + "typeString": "contract Escrow_v1_0" + } + ], + "id": 941, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "17153:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 943, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17153:13:0", "typeDescriptions": { - "typeIdentifier": "t_contract$_Escrow_v1_0_$1213", - "typeString": "contract Escrow_v1_0" + "typeIdentifier": "t_address", + "typeString": "address" } }, { "argumentTypes": null, - "id": 955, + "id": 944, "name": "destinations", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 916, - "src": "17350:12:0", + "referencedDeclaration": 900, + "src": "17192:12:0", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" @@ -13041,12 +12948,12 @@ }, { "argumentTypes": null, - "id": 956, + "id": 945, "name": "amounts", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 919, - "src": "17388:7:0", + "referencedDeclaration": 903, + "src": "17230:7:0", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", "typeString": "uint256[] memory" @@ -13054,12 +12961,12 @@ }, { "argumentTypes": null, - "id": 957, + "id": 946, "name": "scriptHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 913, - "src": "17421:10:0", + "referencedDeclaration": 897, + "src": "17263:10:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -13077,8 +12984,8 @@ "typeString": "bytes1" }, { - "typeIdentifier": "t_contract$_Escrow_v1_0_$1213", - "typeString": "contract Escrow_v1_0" + "typeIdentifier": "t_address", + "typeString": "address" }, { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", @@ -13095,18 +13002,18 @@ ], "expression": { "argumentTypes": null, - "id": 946, + "id": 933, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1373, - "src": "17209:3:0", + "referencedDeclaration": 1366, + "src": "17042:3:0", "typeDescriptions": { "typeIdentifier": "t_magic_abi", "typeString": "abi" } }, - "id": 947, + "id": 934, "isConstant": false, "isLValue": false, "isPure": true, @@ -13114,13 +13021,13 @@ "memberName": "encodePacked", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "17209:16:0", + "src": "17042:16:0", "typeDescriptions": { "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", "typeString": "function () pure returns (bytes memory)" } }, - "id": 958, + "id": 947, "isConstant": false, "isLValue": false, "isPure": false, @@ -13128,7 +13035,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "17209:244:0", + "src": "17042:253:0", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -13142,18 +13049,18 @@ "typeString": "bytes memory" } ], - "id": 945, + "id": 932, "name": "keccak256", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1380, - "src": "17178:9:0", + "referencedDeclaration": 1373, + "src": "17011:9:0", "typeDescriptions": { "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", "typeString": "function () pure returns (bytes32)" } }, - "id": 959, + "id": 948, "isConstant": false, "isLValue": false, "isPure": false, @@ -13161,7 +13068,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "17178:293:0", + "src": "17011:302:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -13181,18 +13088,18 @@ ], "expression": { "argumentTypes": null, - "id": 942, + "id": 929, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1373, - "src": "17092:3:0", + "referencedDeclaration": 1366, + "src": "16925:3:0", "typeDescriptions": { "typeIdentifier": "t_magic_abi", "typeString": "abi" } }, - "id": 943, + "id": 930, "isConstant": false, "isLValue": false, "isPure": true, @@ -13200,13 +13107,13 @@ "memberName": "encodePacked", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "17092:16:0", + "src": "16925:16:0", "typeDescriptions": { "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", "typeString": "function () pure returns (bytes memory)" } }, - "id": 960, + "id": 949, "isConstant": false, "isLValue": false, "isPure": false, @@ -13214,7 +13121,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "17092:393:0", + "src": "16925:402:0", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -13228,18 +13135,18 @@ "typeString": "bytes memory" } ], - "id": 941, + "id": 928, "name": "keccak256", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1380, - "src": "17069:9:0", + "referencedDeclaration": 1373, + "src": "16902:9:0", "typeDescriptions": { "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", "typeString": "function () pure returns (bytes32)" } }, - "id": 961, + "id": 950, "isConstant": false, "isLValue": false, "isPure": false, @@ -13247,33 +13154,33 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "17069:426:0", + "src": "16902:435:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "nodeType": "VariableDeclarationStatement", - "src": "17052:443:0" + "src": "16885:452:0" }, { "body": { - "id": 1023, + "id": 1012, "nodeType": "Block", - "src": "17545:543:0", + "src": "17387:543:0", "statements": [ { "assignments": [ - 975 + 964 ], "declarations": [ { "constant": false, - "id": 975, + "id": 964, "name": "recovered", "nodeType": "VariableDeclaration", - "scope": 1026, - "src": "17560:17:0", + "scope": 1017, + "src": "17402:17:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -13281,10 +13188,10 @@ "typeString": "address" }, "typeName": { - "id": 974, + "id": 963, "name": "address", "nodeType": "ElementaryTypeName", - "src": "17560:7:0", + "src": "17402:7:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -13294,18 +13201,18 @@ "visibility": "internal" } ], - "id": 988, + "id": 977, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 977, + "id": 966, "name": "txHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 940, - "src": "17607:6:0", + "referencedDeclaration": 927, + "src": "17449:6:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -13315,26 +13222,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 978, + "id": 967, "name": "sigV", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 905, - "src": "17631:4:0", + "referencedDeclaration": 889, + "src": "17473:4:0", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint8_$dyn_memory_ptr", "typeString": "uint8[] memory" } }, - "id": 980, + "id": 969, "indexExpression": { "argumentTypes": null, - "id": 979, + "id": 968, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 964, - "src": "17636:1:0", + "referencedDeclaration": 953, + "src": "17478:1:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -13345,7 +13252,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "17631:7:0", + "src": "17473:7:0", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -13355,26 +13262,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 981, + "id": 970, "name": "sigR", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 908, - "src": "17656:4:0", + "referencedDeclaration": 892, + "src": "17498:4:0", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr", "typeString": "bytes32[] memory" } }, - "id": 983, + "id": 972, "indexExpression": { "argumentTypes": null, - "id": 982, + "id": 971, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 964, - "src": "17661:1:0", + "referencedDeclaration": 953, + "src": "17503:1:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -13385,7 +13292,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "17656:7:0", + "src": "17498:7:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -13395,26 +13302,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 984, + "id": 973, "name": "sigS", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 911, - "src": "17681:4:0", + "referencedDeclaration": 895, + "src": "17523:4:0", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr", "typeString": "bytes32[] memory" } }, - "id": 986, + "id": 975, "indexExpression": { "argumentTypes": null, - "id": 985, + "id": 974, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 964, - "src": "17686:1:0", + "referencedDeclaration": 953, + "src": "17528:1:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -13425,7 +13332,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "17681:7:0", + "src": "17523:7:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -13451,18 +13358,18 @@ "typeString": "bytes32" } ], - "id": 976, + "id": 965, "name": "ecrecover", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1378, - "src": "17580:9:0", + "referencedDeclaration": 1371, + "src": "17422:9:0", "typeDescriptions": { "typeIdentifier": "t_function_ecrecover_pure$_t_bytes32_$_t_uint8_$_t_bytes32_$_t_bytes32_$returns$_t_address_$", "typeString": "function (bytes32,uint8,bytes32,bytes32) pure returns (address)" } }, - "id": 987, + "id": 976, "isConstant": false, "isLValue": false, "isPure": false, @@ -13470,14 +13377,14 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "17580:122:0", + "src": "17422:122:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "VariableDeclarationStatement", - "src": "17560:142:0" + "src": "17402:142:0" }, { "expression": { @@ -13491,26 +13398,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 990, + "id": 979, "name": "transactions", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 77, - "src": "17742:12:0", + "referencedDeclaration": 75, + "src": "17584:12:0", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Transaction_$73_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Transaction_$71_storage_$", "typeString": "mapping(bytes32 => struct Escrow_v1_0.Transaction storage ref)" } }, - "id": 992, + "id": 981, "indexExpression": { "argumentTypes": null, - "id": 991, + "id": 980, "name": "scriptHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 913, - "src": "17755:10:0", + "referencedDeclaration": 897, + "src": "17597:10:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -13521,35 +13428,35 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "17742:24:0", + "src": "17584:24:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Transaction_$73_storage", + "typeIdentifier": "t_struct$_Transaction_$71_storage", "typeString": "struct Escrow_v1_0.Transaction storage ref" } }, - "id": 993, + "id": 982, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "isOwner", "nodeType": "MemberAccess", - "referencedDeclaration": 64, - "src": "17742:32:0", + "referencedDeclaration": 62, + "src": "17584:32:0", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, - "id": 995, + "id": 984, "indexExpression": { "argumentTypes": null, - "id": 994, + "id": 983, "name": "recovered", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 975, - "src": "17775:9:0", + "referencedDeclaration": 964, + "src": "17617:9:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -13560,7 +13467,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "17742:43:0", + "src": "17584:43:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -13569,14 +13476,14 @@ { "argumentTypes": null, "hexValue": "496e76616c6964207369676e6174757265", - "id": 996, + "id": 985, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "17804:19:0", + "src": "17646:19:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_4f2d7dfcb27c0aafa13ae8c400de482c7832204d194018b6e45bd2bf244c74e7", @@ -13596,21 +13503,21 @@ "typeString": "literal_string \"Invalid signature\"" } ], - "id": 989, + "id": 978, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1389, - 1390 + 1382, + 1383 ], - "referencedDeclaration": 1390, - "src": "17717:7:0", + "referencedDeclaration": 1383, + "src": "17559:7:0", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 997, + "id": 986, "isConstant": false, "isLValue": false, "isPure": false, @@ -13618,15 +13525,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "17717:120:0", + "src": "17559:120:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 998, + "id": 987, "nodeType": "ExpressionStatement", - "src": "17717:120:0" + "src": "17559:120:0" }, { "expression": { @@ -13634,7 +13541,7 @@ "arguments": [ { "argumentTypes": null, - "id": 1006, + "id": 995, "isConstant": false, "isLValue": false, "isPure": false, @@ -13642,7 +13549,7 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "17876:42:0", + "src": "17718:42:0", "subExpression": { "argumentTypes": null, "baseExpression": { @@ -13651,26 +13558,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1000, + "id": 989, "name": "transactions", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 77, - "src": "17877:12:0", + "referencedDeclaration": 75, + "src": "17719:12:0", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Transaction_$73_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Transaction_$71_storage_$", "typeString": "mapping(bytes32 => struct Escrow_v1_0.Transaction storage ref)" } }, - "id": 1002, + "id": 991, "indexExpression": { "argumentTypes": null, - "id": 1001, + "id": 990, "name": "scriptHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 913, - "src": "17890:10:0", + "referencedDeclaration": 897, + "src": "17732:10:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -13681,35 +13588,35 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "17877:24:0", + "src": "17719:24:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Transaction_$73_storage", + "typeIdentifier": "t_struct$_Transaction_$71_storage", "typeString": "struct Escrow_v1_0.Transaction storage ref" } }, - "id": 1003, + "id": 992, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "voted", "nodeType": "MemberAccess", - "referencedDeclaration": 68, - "src": "17877:30:0", + "referencedDeclaration": 66, + "src": "17719:30:0", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, - "id": 1005, + "id": 994, "indexExpression": { "argumentTypes": null, - "id": 1004, + "id": 993, "name": "recovered", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 975, - "src": "17908:9:0", + "referencedDeclaration": 964, + "src": "17750:9:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -13720,7 +13627,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "17877:41:0", + "src": "17719:41:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -13734,14 +13641,14 @@ { "argumentTypes": null, "hexValue": "53616d65207369676e61747572652073656e74207477696365", - "id": 1007, + "id": 996, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "17937:27:0", + "src": "17779:27:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_fb2c7e49d5ec7ce36fa812cf15ee7fa946942f931d04fe3ae970516007b2a543", @@ -13761,21 +13668,21 @@ "typeString": "literal_string \"Same signature sent twice\"" } ], - "id": 999, + "id": 988, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1389, - 1390 + 1382, + 1383 ], - "referencedDeclaration": 1390, - "src": "17851:7:0", + "referencedDeclaration": 1383, + "src": "17693:7:0", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1008, + "id": 997, "isConstant": false, "isLValue": false, "isPure": false, @@ -13783,20 +13690,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "17851:127:0", + "src": "17693:127:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1009, + "id": 998, "nodeType": "ExpressionStatement", - "src": "17851:127:0" + "src": "17693:127:0" }, { "expression": { "argumentTypes": null, - "id": 1017, + "id": 1006, "isConstant": false, "isLValue": false, "isPure": false, @@ -13809,26 +13716,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1010, + "id": 999, "name": "transactions", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 77, - "src": "17992:12:0", + "referencedDeclaration": 75, + "src": "17834:12:0", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Transaction_$73_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Transaction_$71_storage_$", "typeString": "mapping(bytes32 => struct Escrow_v1_0.Transaction storage ref)" } }, - "id": 1012, + "id": 1001, "indexExpression": { "argumentTypes": null, - "id": 1011, + "id": 1000, "name": "scriptHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 913, - "src": "18005:10:0", + "referencedDeclaration": 897, + "src": "17847:10:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -13839,35 +13746,35 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "17992:24:0", + "src": "17834:24:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Transaction_$73_storage", + "typeIdentifier": "t_struct$_Transaction_$71_storage", "typeString": "struct Escrow_v1_0.Transaction storage ref" } }, - "id": 1013, + "id": 1002, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "voted", "nodeType": "MemberAccess", - "referencedDeclaration": 68, - "src": "17992:30:0", + "referencedDeclaration": 66, + "src": "17834:30:0", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, - "id": 1015, + "id": 1004, "indexExpression": { "argumentTypes": null, - "id": 1014, + "id": 1003, "name": "recovered", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 975, - "src": "18023:9:0", + "referencedDeclaration": 964, + "src": "17865:9:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -13878,7 +13785,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "17992:41:0", + "src": "17834:41:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -13889,14 +13796,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "74727565", - "id": 1016, + "id": 1005, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "18036:4:0", + "src": "17878:4:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -13904,32 +13811,32 @@ }, "value": "true" }, - "src": "17992:48:0", + "src": "17834:48:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 1018, + "id": 1007, "nodeType": "ExpressionStatement", - "src": "17992:48:0" + "src": "17834:48:0" }, { "expression": { "argumentTypes": null, - "id": 1021, + "id": 1010, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 1019, + "id": 1008, "name": "lastAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 922, - "src": "18054:11:0", + "referencedDeclaration": 924, + "src": "17896:11:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -13939,26 +13846,26 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 1020, + "id": 1009, "name": "recovered", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 975, - "src": "18068:9:0", + "referencedDeclaration": 964, + "src": "17910:9:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "18054:23:0", + "src": "17896:23:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 1022, + "id": 1011, "nodeType": "ExpressionStatement", - "src": "18054:23:0" + "src": "17896:23:0" } ] }, @@ -13968,19 +13875,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 970, + "id": 959, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 967, + "id": 956, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 964, - "src": "17523:1:0", + "referencedDeclaration": 953, + "src": "17365:1:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -13992,18 +13899,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 968, + "id": 957, "name": "sigR", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 908, - "src": "17527:4:0", + "referencedDeclaration": 892, + "src": "17369:4:0", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr", "typeString": "bytes32[] memory" } }, - "id": 969, + "id": 958, "isConstant": false, "isLValue": false, "isPure": false, @@ -14011,31 +13918,31 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "17527:11:0", + "src": "17369:11:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "17523:15:0", + "src": "17365:15:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 1024, + "id": 1013, "initializationExpression": { "assignments": [ - 964 + 953 ], "declarations": [ { "constant": false, - "id": 964, + "id": 953, "name": "i", "nodeType": "VariableDeclaration", - "scope": 1026, - "src": "17511:6:0", + "scope": 1017, + "src": "17353:6:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -14043,10 +13950,10 @@ "typeString": "uint256" }, "typeName": { - "id": 963, + "id": 952, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "17511:4:0", + "src": "17353:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -14056,18 +13963,18 @@ "visibility": "internal" } ], - "id": 966, + "id": 955, "initialValue": { "argumentTypes": null, "hexValue": "30", - "id": 965, + "id": 954, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "17520:1:0", + "src": "17362:1:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -14076,12 +13983,12 @@ "value": "0" }, "nodeType": "VariableDeclarationStatement", - "src": "17511:10:0" + "src": "17353:10:0" }, "loopExpression": { "expression": { "argumentTypes": null, - "id": 972, + "id": 961, "isConstant": false, "isLValue": false, "isPure": false, @@ -14089,15 +13996,15 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "17540:3:0", + "src": "17382:3:0", "subExpression": { "argumentTypes": null, - "id": 971, + "id": 960, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 964, - "src": "17540:1:0", + "referencedDeclaration": 953, + "src": "17382:1:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -14108,34 +14015,53 @@ "typeString": "uint256" } }, - "id": 973, + "id": 962, "nodeType": "ExpressionStatement", - "src": "17540:3:0" + "src": "17382:3:0" }, "nodeType": "ForStatement", - "src": "17506:582:0" + "src": "17348:582:0" + }, + { + "expression": { + "argumentTypes": null, + "id": 1014, + "name": "lastAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 924, + "src": "17947:11:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 907, + "id": 1015, + "nodeType": "Return", + "src": "17940:18:0" } ] }, "documentation": null, - "id": 1026, + "id": 1017, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [], - "name": "verifySignatures", + "name": "_verifySignatures", "nodeType": "FunctionDefinition", "parameters": { - "id": 920, + "id": 904, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 905, + "id": 889, "name": "sigV", "nodeType": "VariableDeclaration", - "scope": 1026, - "src": "16606:12:0", + "scope": 1017, + "src": "16420:12:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -14144,19 +14070,19 @@ }, "typeName": { "baseType": { - "id": 903, + "id": 887, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "16606:5:0", + "src": "16420:5:0", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, - "id": 904, + "id": 888, "length": null, "nodeType": "ArrayTypeName", - "src": "16606:7:0", + "src": "16420:7:0", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint8_$dyn_storage_ptr", "typeString": "uint8[]" @@ -14167,11 +14093,11 @@ }, { "constant": false, - "id": 908, + "id": 892, "name": "sigR", "nodeType": "VariableDeclaration", - "scope": 1026, - "src": "16628:14:0", + "scope": 1017, + "src": "16442:14:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -14180,19 +14106,19 @@ }, "typeName": { "baseType": { - "id": 906, + "id": 890, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "16628:7:0", + "src": "16442:7:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "id": 907, + "id": 891, "length": null, "nodeType": "ArrayTypeName", - "src": "16628:9:0", + "src": "16442:9:0", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", "typeString": "bytes32[]" @@ -14203,11 +14129,11 @@ }, { "constant": false, - "id": 911, + "id": 895, "name": "sigS", "nodeType": "VariableDeclaration", - "scope": 1026, - "src": "16652:14:0", + "scope": 1017, + "src": "16466:14:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -14216,19 +14142,19 @@ }, "typeName": { "baseType": { - "id": 909, + "id": 893, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "16652:7:0", + "src": "16466:7:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "id": 910, + "id": 894, "length": null, "nodeType": "ArrayTypeName", - "src": "16652:9:0", + "src": "16466:9:0", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", "typeString": "bytes32[]" @@ -14239,11 +14165,11 @@ }, { "constant": false, - "id": 913, + "id": 897, "name": "scriptHash", "nodeType": "VariableDeclaration", - "scope": 1026, - "src": "16676:18:0", + "scope": 1017, + "src": "16490:18:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -14251,10 +14177,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 912, + "id": 896, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "16676:7:0", + "src": "16490:7:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -14265,11 +14191,11 @@ }, { "constant": false, - "id": 916, + "id": 900, "name": "destinations", "nodeType": "VariableDeclaration", - "scope": 1026, - "src": "16704:22:0", + "scope": 1017, + "src": "16518:22:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -14278,19 +14204,19 @@ }, "typeName": { "baseType": { - "id": 914, + "id": 898, "name": "address", "nodeType": "ElementaryTypeName", - "src": "16704:7:0", + "src": "16518:7:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 915, + "id": 899, "length": null, "nodeType": "ArrayTypeName", - "src": "16704:9:0", + "src": "16518:9:0", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]" @@ -14301,11 +14227,11 @@ }, { "constant": false, - "id": 919, + "id": 903, "name": "amounts", "nodeType": "VariableDeclaration", - "scope": 1026, - "src": "16736:16:0", + "scope": 1017, + "src": "16550:16:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -14314,19 +14240,19 @@ }, "typeName": { "baseType": { - "id": 917, + "id": 901, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "16736:7:0", + "src": "16550:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 918, + "id": 902, "length": null, "nodeType": "ArrayTypeName", - "src": "16736:9:0", + "src": "16550:9:0", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", "typeString": "uint256[]" @@ -14336,20 +14262,20 @@ "visibility": "internal" } ], - "src": "16596:162:0" + "src": "16410:162:0" }, "payable": false, "returnParameters": { - "id": 923, + "id": 907, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 922, - "name": "lastAddress", + "id": 906, + "name": "", "nodeType": "VariableDeclaration", - "scope": 1026, - "src": "16792:19:0", + "scope": 1017, + "src": "16606:7:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -14357,10 +14283,10 @@ "typeString": "address" }, "typeName": { - "id": 921, + "id": 905, "name": "address", "nodeType": "ElementaryTypeName", - "src": "16792:7:0", + "src": "16606:7:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -14370,32 +14296,32 @@ "visibility": "internal" } ], - "src": "16791:21:0" + "src": "16605:9:0" }, - "scope": 1213, - "src": "16571:1523:0", + "scope": 1206, + "src": "16384:1581:0", "stateMutability": "nonpayable", "superFunction": null, "visibility": "private" }, { "body": { - "id": 1059, + "id": 1048, "nodeType": "Block", - "src": "18256:171:0", + "src": "18120:168:0", "statements": [ { "assignments": [ - 1036 + 1027 ], "declarations": [ { "constant": false, - "id": 1036, + "id": 1027, "name": "timeSince", "nodeType": "VariableDeclaration", - "scope": 1060, - "src": "18266:17:0", + "scope": 1049, + "src": "18130:17:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -14403,10 +14329,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1035, + "id": 1026, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "18266:7:0", + "src": "18130:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -14416,18 +14342,18 @@ "visibility": "internal" } ], - "id": 1041, + "id": 1032, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 1039, + "id": 1030, "name": "lastModified", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1030, - "src": "18294:12:0", + "referencedDeclaration": 1021, + "src": "18158:12:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -14443,32 +14369,32 @@ ], "expression": { "argumentTypes": null, - "id": 1037, + "id": 1028, "name": "now", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1388, - "src": "18286:3:0", + "referencedDeclaration": 1381, + "src": "18150:3:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1038, + "id": 1029, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", - "referencedDeclaration": 1326, - "src": "18286:7:0", + "referencedDeclaration": 1319, + "src": "18150:7:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 1040, + "id": 1031, "isConstant": false, "isLValue": false, "isPure": false, @@ -14476,308 +14402,281 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "18286:21:0", + "src": "18150:21:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", - "src": "18266:41:0" + "src": "18130:41:0" }, { "expression": { "argumentTypes": null, - "id": 1057, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1042, - "name": "expired", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1033, - "src": "18317:7:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "components": [ - { + "components": [ + { + "argumentTypes": null, + "condition": { "argumentTypes": null, - "condition": { + "commonType": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "id": 1035, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { "argumentTypes": null, - "commonType": { + "id": 1033, + "name": "timeoutHours", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1019, + "src": "18202:12:0", + "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" - }, - "id": 1045, + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 1034, "isConstant": false, "isLValue": false, - "isPure": false, + "isPure": true, + "kind": "number", "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1043, - "name": "timeoutHours", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1028, - "src": "18341:12:0", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 1044, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "18357:1:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "18341:17:0", + "nodeType": "Literal", + "src": "18218:1:0", + "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "18202:17:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" }, - "falseExpression": { + "id": 1044, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { "argumentTypes": null, - "commonType": { + "id": 1037, + "name": "timeSince", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1027, + "src": "18228:9:0", + "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" - }, - "id": 1054, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1047, - "name": "timeSince", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1036, - "src": "18367:9:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "33363030", + "id": 1042, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "18266:4:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_3600_by_1", + "typeString": "int_const 3600" + }, + "value": "3600" } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "arguments": [ + ], + "expression": { + "argumentTypes": [ { - "argumentTypes": null, - "hexValue": "33363030", - "id": 1052, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "18405:4:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_3600_by_1", - "typeString": "int_const 3600" - }, - "value": "3600" + "typeIdentifier": "t_rational_3600_by_1", + "typeString": "int_const 3600" } ], "expression": { - "argumentTypes": [ + "argumentTypes": null, + "arguments": [ { - "typeIdentifier": "t_rational_3600_by_1", - "typeString": "int_const 3600" + "argumentTypes": null, + "id": 1039, + "name": "timeoutHours", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1019, + "src": "18248:12:0", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } } ], "expression": { - "argumentTypes": null, - "arguments": [ + "argumentTypes": [ { - "argumentTypes": null, - "id": 1049, - "name": "timeoutHours", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1028, - "src": "18387:12:0", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } + "typeIdentifier": "t_uint32", + "typeString": "uint32" } ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - ], - "id": 1048, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "18379:7:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint256_$", - "typeString": "type(uint256)" - }, - "typeName": "uint256" - }, - "id": 1050, + "id": 1038, "isConstant": false, "isLValue": false, - "isPure": false, - "kind": "typeConversion", + "isPure": true, "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18379:21:0", + "nodeType": "ElementaryTypeNameExpression", + "src": "18240:7:0", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": "uint256" }, - "id": 1051, + "id": 1040, "isConstant": false, "isLValue": false, "isPure": false, + "kind": "typeConversion", "lValueRequested": false, - "memberName": "mul", - "nodeType": "MemberAccess", - "referencedDeclaration": 1278, - "src": "18379:25:0", + "names": [], + "nodeType": "FunctionCall", + "src": "18240:21:0", "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "id": 1053, + "id": 1041, "isConstant": false, "isLValue": false, "isPure": false, - "kind": "functionCall", "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18379:31:0", + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 1271, + "src": "18240:25:0", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "src": "18367:43:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 1055, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "Conditional", - "src": "18341:69:0", - "trueExpression": { - "argumentTypes": null, - "hexValue": "66616c7365", - "id": 1046, + "id": 1043, "isConstant": false, "isLValue": false, - "isPure": true, - "kind": "bool", + "isPure": false, + "kind": "functionCall", "lValueRequested": false, - "nodeType": "Literal", - "src": "18361:5:0", - "subdenomination": null, + "names": [], + "nodeType": "FunctionCall", + "src": "18240:31:0", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "false" + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } }, + "src": "18228:43:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } - } - ], - "id": 1056, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "18327:93:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + }, + "id": 1045, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "18202:69:0", + "trueExpression": { + "argumentTypes": null, + "hexValue": "66616c7365", + "id": 1036, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "18222:5:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } } - }, - "src": "18317:103:0", + ], + "id": 1046, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "18188:93:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 1058, - "nodeType": "ExpressionStatement", - "src": "18317:103:0" + "functionReturnParameters": 1025, + "id": 1047, + "nodeType": "Return", + "src": "18181:100:0" } ] }, "documentation": null, - "id": 1060, + "id": 1049, "implemented": true, "isConstructor": false, "isDeclaredConst": true, "modifiers": [], - "name": "isTimeLockExpired", + "name": "_isTimeLockExpired", "nodeType": "FunctionDefinition", "parameters": { - "id": 1031, + "id": 1022, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1028, + "id": 1019, "name": "timeoutHours", "nodeType": "VariableDeclaration", - "scope": 1060, - "src": "18136:19:0", + "scope": 1049, + "src": "18008:19:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -14785,10 +14684,10 @@ "typeString": "uint32" }, "typeName": { - "id": 1027, + "id": 1018, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "18136:6:0", + "src": "18008:6:0", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -14799,11 +14698,11 @@ }, { "constant": false, - "id": 1030, + "id": 1021, "name": "lastModified", "nodeType": "VariableDeclaration", - "scope": 1060, - "src": "18165:20:0", + "scope": 1049, + "src": "18037:20:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -14811,10 +14710,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1029, + "id": 1020, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "18165:7:0", + "src": "18037:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -14824,20 +14723,20 @@ "visibility": "internal" } ], - "src": "18126:65:0" + "src": "17998:65:0" }, "payable": false, "returnParameters": { - "id": 1034, + "id": 1025, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1033, - "name": "expired", + "id": 1024, + "name": "", "nodeType": "VariableDeclaration", - "scope": 1060, - "src": "18238:12:0", + "scope": 1049, + "src": "18110:4:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -14845,10 +14744,10 @@ "typeString": "bool" }, "typeName": { - "id": 1032, + "id": 1023, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "18238:4:0", + "src": "18110:4:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -14858,19 +14757,19 @@ "visibility": "internal" } ], - "src": "18237:14:0" + "src": "18109:6:0" }, - "scope": 1213, - "src": "18100:327:0", + "scope": 1206, + "src": "17971:317:0", "stateMutability": "view", "superFunction": null, "visibility": "private" }, { "body": { - "id": 1211, + "id": 1204, "nodeType": "Block", - "src": "18841:1919:0", + "src": "18702:2314:0", "statements": [ { "expression": { @@ -14882,19 +14781,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1086, + "id": 1075, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1084, + "id": 1073, "name": "buyer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1062, - "src": "18867:5:0", + "referencedDeclaration": 1051, + "src": "18728:5:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -14904,18 +14803,18 @@ "operator": "!=", "rightExpression": { "argumentTypes": null, - "id": 1085, + "id": 1074, "name": "seller", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1064, - "src": "18876:6:0", + "referencedDeclaration": 1053, + "src": "18737:6:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "18867:15:0", + "src": "18728:15:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -14924,14 +14823,14 @@ { "argumentTypes": null, "hexValue": "427579657220616e642073656c6c6572206172652073616d65", - "id": 1087, + "id": 1076, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "18884:27:0", + "src": "18745:27:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_6141441751234d42e9a73d96317794195c7ff57b8f16ac15725a10f10763f824", @@ -14951,21 +14850,21 @@ "typeString": "literal_string \"Buyer and seller are same\"" } ], - "id": 1083, + "id": 1072, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1389, - 1390 + 1382, + 1383 ], - "referencedDeclaration": 1390, - "src": "18859:7:0", + "referencedDeclaration": 1383, + "src": "18720:7:0", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1088, + "id": 1077, "isConstant": false, "isLValue": false, "isPure": false, @@ -14973,15 +14872,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "18859:53:0", + "src": "18720:53:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1089, + "id": 1078, "nodeType": "ExpressionStatement", - "src": "18859:53:0" + "src": "18720:53:0" }, { "expression": { @@ -14993,19 +14892,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1093, + "id": 1082, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1091, + "id": 1080, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1074, - "src": "18979:5:0", + "referencedDeclaration": 1063, + "src": "18840:5:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -15016,14 +14915,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 1092, + "id": 1081, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "18987:1:0", + "src": "18848:1:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -15031,7 +14930,7 @@ }, "value": "0" }, - "src": "18979:9:0", + "src": "18840:9:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -15040,14 +14939,14 @@ { "argumentTypes": null, "hexValue": "56616c7565207061737365642069732030", - "id": 1094, + "id": 1083, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "18990:19:0", + "src": "18851:19:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_3686f87c4804517ea83323ccf1a3b5b5ff52ed144b19e6fc56abe8fcd182e747", @@ -15067,21 +14966,21 @@ "typeString": "literal_string \"Value passed is 0\"" } ], - "id": 1090, + "id": 1079, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1389, - 1390 + 1382, + 1383 ], - "referencedDeclaration": 1390, - "src": "18971:7:0", + "referencedDeclaration": 1383, + "src": "18832:7:0", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1095, + "id": 1084, "isConstant": false, "isLValue": false, "isPure": false, @@ -15089,15 +14988,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "18971:39:0", + "src": "18832:39:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1096, + "id": 1085, "nodeType": "ExpressionStatement", - "src": "18971:39:0" + "src": "18832:39:0" }, { "expression": { @@ -15109,7 +15008,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 1104, + "id": 1093, "isConstant": false, "isLValue": false, "isPure": false, @@ -15120,19 +15019,19 @@ "typeIdentifier": "t_uint8", "typeString": "uint8" }, - "id": 1100, + "id": 1089, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1098, + "id": 1087, "name": "threshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1068, - "src": "19113:9:0", + "referencedDeclaration": 1057, + "src": "18974:9:0", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -15143,14 +15042,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 1099, + "id": 1088, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "19125:1:0", + "src": "18986:1:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -15158,7 +15057,7 @@ }, "value": "0" }, - "src": "19113:13:0", + "src": "18974:13:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -15172,19 +15071,19 @@ "typeIdentifier": "t_uint8", "typeString": "uint8" }, - "id": 1103, + "id": 1092, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1101, + "id": 1090, "name": "threshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1068, - "src": "19130:9:0", + "referencedDeclaration": 1057, + "src": "18991:9:0", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -15195,14 +15094,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "33", - "id": 1102, + "id": 1091, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "19143:1:0", + "src": "19004:1:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_3_by_1", @@ -15210,13 +15109,13 @@ }, "value": "3" }, - "src": "19130:14:0", + "src": "18991:14:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "19113:31:0", + "src": "18974:31:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -15225,14 +15124,14 @@ { "argumentTypes": null, "hexValue": "5468726573686f6c642063616e6e6f742062652067726561746572207468616e203320616e64206d7573742062652067726561746572207468616e2030", - "id": 1105, + "id": 1094, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "19159:63:0", + "src": "19020:63:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_351c1d5dfdc4a2b4c61d6f4dbb41a0d2ae70a9c094d3c0add87af24b5dd19c13", @@ -15252,21 +15151,21 @@ "typeString": "literal_string \"Threshold cannot be greater than 3 and must be greater than 0\"" } ], - "id": 1097, + "id": 1086, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1389, - 1390 + 1382, + 1383 ], - "referencedDeclaration": 1390, - "src": "19092:7:0", + "referencedDeclaration": 1383, + "src": "18953:7:0", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1106, + "id": 1095, "isConstant": false, "isLValue": false, "isPure": false, @@ -15274,15 +15173,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "19092:140:0", + "src": "18953:140:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1107, + "id": 1096, "nodeType": "ExpressionStatement", - "src": "19092:140:0" + "src": "18953:140:0" }, { "expression": { @@ -15294,7 +15193,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 1117, + "id": 1106, "isConstant": false, "isLValue": false, "isPure": false, @@ -15305,19 +15204,19 @@ "typeIdentifier": "t_uint8", "typeString": "uint8" }, - "id": 1111, + "id": 1100, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1109, + "id": 1098, "name": "threshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1068, - "src": "19263:9:0", + "referencedDeclaration": 1057, + "src": "19374:9:0", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -15328,14 +15227,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "31", - "id": 1110, + "id": 1099, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "19276:1:0", + "src": "19387:1:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -15343,7 +15242,7 @@ }, "value": "1" }, - "src": "19263:14:0", + "src": "19374:14:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -15357,19 +15256,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1116, + "id": 1105, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1112, + "id": 1101, "name": "moderator", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1066, - "src": "19281:9:0", + "referencedDeclaration": 1055, + "src": "19392:9:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -15383,14 +15282,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 1114, + "id": 1103, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "19302:1:0", + "src": "19413:1:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -15406,20 +15305,20 @@ "typeString": "int_const 0" } ], - "id": 1113, + "id": 1102, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "19294:7:0", + "src": "19405:7:0", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 1115, + "id": 1104, "isConstant": false, "isLValue": false, "isPure": true, @@ -15427,19 +15326,19 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "19294:10:0", + "src": "19405:10:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "19281:23:0", + "src": "19392:23:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "19263:41:0", + "src": "19374:41:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -15447,21 +15346,21 @@ }, { "argumentTypes": null, - "hexValue": "456974686572207468726573686f6c642073686f756c642062652031206f74686572776973652076616c6964206d6f64657261746f7220616464726573732073686f756c6420626520706173736564", - "id": 1118, + "hexValue": "456974686572207468726573686f6c642073686f756c642062652031206f722076616c6964206d6f64657261746f7220616464726573732073686f756c6420626520706173736564", + "id": 1107, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "19318:81:0", + "src": "19429:74:0", "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_stringliteral_08dfdd405be5d5023d3f601e2b0a844b246ceb6764817070ff6789d5e1f80050", - "typeString": "literal_string \"Either threshold should be 1 otherwise valid moderator address should be passed\"" + "typeIdentifier": "t_stringliteral_2056db168725d2fabb8aaf14efad7a3fc12ef6bc7132f0596ea09b041b71cb25", + "typeString": "literal_string \"Either threshold should be 1 or valid moderator address should be passed\"" }, - "value": "Either threshold should be 1 otherwise valid moderator address should be passed" + "value": "Either threshold should be 1 or valid moderator address should be passed" } ], "expression": { @@ -15471,25 +15370,25 @@ "typeString": "bool" }, { - "typeIdentifier": "t_stringliteral_08dfdd405be5d5023d3f601e2b0a844b246ceb6764817070ff6789d5e1f80050", - "typeString": "literal_string \"Either threshold should be 1 otherwise valid moderator address should be passed\"" + "typeIdentifier": "t_stringliteral_2056db168725d2fabb8aaf14efad7a3fc12ef6bc7132f0596ea09b041b71cb25", + "typeString": "literal_string \"Either threshold should be 1 or valid moderator address should be passed\"" } ], - "id": 1108, + "id": 1097, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1389, - 1390 + 1382, + 1383 ], - "referencedDeclaration": 1390, - "src": "19242:7:0", + "referencedDeclaration": 1383, + "src": "19353:7:0", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1119, + "id": 1108, "isConstant": false, "isLValue": false, "isPure": false, @@ -15497,15 +15396,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "19242:167:0", + "src": "19353:160:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1120, + "id": 1109, "nodeType": "ExpressionStatement", - "src": "19242:167:0" + "src": "19353:160:0" }, { "expression": { @@ -15517,19 +15416,19 @@ "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, - "id": 1132, + "id": 1121, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1122, + "id": 1111, "name": "scriptHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1072, - "src": "19441:10:0", + "referencedDeclaration": 1061, + "src": "19545:10:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -15542,12 +15441,12 @@ "arguments": [ { "argumentTypes": null, - "id": 1124, + "id": 1113, "name": "uniqueId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1076, - "src": "19498:8:0", + "referencedDeclaration": 1065, + "src": "19602:8:0", "typeDescriptions": { "typeIdentifier": "t_bytes20", "typeString": "bytes20" @@ -15555,12 +15454,12 @@ }, { "argumentTypes": null, - "id": 1125, + "id": 1114, "name": "threshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1068, - "src": "19524:9:0", + "referencedDeclaration": 1057, + "src": "19628:9:0", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -15568,12 +15467,12 @@ }, { "argumentTypes": null, - "id": 1126, + "id": 1115, "name": "timeoutHours", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1070, - "src": "19551:12:0", + "referencedDeclaration": 1059, + "src": "19655:12:0", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -15581,12 +15480,12 @@ }, { "argumentTypes": null, - "id": 1127, + "id": 1116, "name": "buyer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1062, - "src": "19581:5:0", + "referencedDeclaration": 1051, + "src": "19685:5:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -15594,12 +15493,12 @@ }, { "argumentTypes": null, - "id": 1128, + "id": 1117, "name": "seller", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1064, - "src": "19604:6:0", + "referencedDeclaration": 1053, + "src": "19708:6:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -15607,12 +15506,12 @@ }, { "argumentTypes": null, - "id": 1129, + "id": 1118, "name": "moderator", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1066, - "src": "19628:9:0", + "referencedDeclaration": 1055, + "src": "19732:9:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -15620,12 +15519,12 @@ }, { "argumentTypes": null, - "id": 1130, + "id": 1119, "name": "tokenAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1080, - "src": "19655:12:0", + "referencedDeclaration": 1069, + "src": "19759:12:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -15663,18 +15562,18 @@ "typeString": "address" } ], - "id": 1123, + "id": 1112, "name": "calculateRedeemScriptHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 647, - "src": "19455:25:0", + "referencedDeclaration": 624, + "src": "19559:25:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_bytes20_$_t_uint8_$_t_uint32_$_t_address_$_t_address_$_t_address_$_t_address_$returns$_t_bytes32_$", "typeString": "function (bytes20,uint8,uint32,address,address,address,address) view returns (bytes32)" } }, - "id": 1131, + "id": 1120, "isConstant": false, "isLValue": false, "isPure": false, @@ -15682,13 +15581,13 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "19455:226:0", + "src": "19559:226:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "src": "19441:240:0", + "src": "19545:240:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -15697,14 +15596,14 @@ { "argumentTypes": null, "hexValue": "43616c63756c6174656420736372697074206861736820646f6573206e6f74206d61746368207061737365642073637269707420686173682e", - "id": 1133, + "id": 1122, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "19696:59:0", + "src": "19800:59:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_0c041e0c58e6b0e01d338d852a5abb639065eabeb0aee05e0ce3e5f0e52b4f51", @@ -15724,21 +15623,21 @@ "typeString": "literal_string \"Calculated script hash does not match passed script hash.\"" } ], - "id": 1121, + "id": 1110, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1389, - 1390 + 1382, + 1383 ], - "referencedDeclaration": 1390, - "src": "19420:7:0", + "referencedDeclaration": 1383, + "src": "19524:7:0", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1134, + "id": 1123, "isConstant": false, "isLValue": false, "isPure": false, @@ -15746,20 +15645,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "19420:345:0", + "src": "19524:345:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1135, + "id": 1124, "nodeType": "ExpressionStatement", - "src": "19420:345:0" + "src": "19524:345:0" }, { "expression": { "argumentTypes": null, - "id": 1154, + "id": 1142, "isConstant": false, "isLValue": false, "isPure": false, @@ -15768,26 +15667,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1136, + "id": 1125, "name": "transactions", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 77, - "src": "19776:12:0", + "referencedDeclaration": 75, + "src": "19880:12:0", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Transaction_$73_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Transaction_$71_storage_$", "typeString": "mapping(bytes32 => struct Escrow_v1_0.Transaction storage ref)" } }, - "id": 1138, + "id": 1127, "indexExpression": { "argumentTypes": null, - "id": 1137, + "id": 1126, "name": "scriptHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1072, - "src": "19789:10:0", + "referencedDeclaration": 1061, + "src": "19893:10:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -15798,9 +15697,9 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "19776:24:0", + "src": "19880:24:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Transaction_$73_storage", + "typeIdentifier": "t_struct$_Transaction_$71_storage", "typeString": "struct Escrow_v1_0.Transaction storage ref" } }, @@ -15811,12 +15710,12 @@ "arguments": [ { "argumentTypes": null, - "id": 1140, + "id": 1129, "name": "buyer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1062, - "src": "19836:5:0", + "referencedDeclaration": 1051, + "src": "19940:5:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -15824,12 +15723,12 @@ }, { "argumentTypes": null, - "id": 1141, + "id": 1130, "name": "seller", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1064, - "src": "19863:6:0", + "referencedDeclaration": 1053, + "src": "19967:6:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -15837,12 +15736,12 @@ }, { "argumentTypes": null, - "id": 1142, + "id": 1131, "name": "moderator", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1066, - "src": "19894:9:0", + "referencedDeclaration": 1055, + "src": "19998:9:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -15850,12 +15749,12 @@ }, { "argumentTypes": null, - "id": 1143, + "id": 1132, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1074, - "src": "19924:5:0", + "referencedDeclaration": 1063, + "src": "20028:5:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -15865,18 +15764,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1144, + "id": 1133, "name": "Status", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9, - "src": "19951:6:0", + "src": "20055:6:0", "typeDescriptions": { "typeIdentifier": "t_type$_t_enum$_Status_$9_$", "typeString": "type(enum Escrow_v1_0.Status)" } }, - "id": 1145, + "id": 1134, "isConstant": false, "isLValue": false, "isPure": true, @@ -15884,7 +15783,7 @@ "memberName": "FUNDED", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "19951:13:0", + "src": "20055:13:0", "typeDescriptions": { "typeIdentifier": "t_enum$_Status_$9", "typeString": "enum Escrow_v1_0.Status" @@ -15894,18 +15793,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1146, + "id": 1135, "name": "block", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1376, - "src": "19992:5:0", + "referencedDeclaration": 1369, + "src": "20096:5:0", "typeDescriptions": { "typeIdentifier": "t_magic_block", "typeString": "block" } }, - "id": 1147, + "id": 1136, "isConstant": false, "isLValue": false, "isPure": false, @@ -15913,7 +15812,7 @@ "memberName": "timestamp", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "19992:15:0", + "src": "20096:15:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -15921,25 +15820,12 @@ }, { "argumentTypes": null, - "id": 1148, - "name": "scriptHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1072, - "src": "20033:10:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 1149, + "id": 1137, "name": "threshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1068, - "src": "20068:9:0", + "referencedDeclaration": 1057, + "src": "20136:9:0", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -15947,12 +15833,12 @@ }, { "argumentTypes": null, - "id": 1150, + "id": 1138, "name": "timeoutHours", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1070, - "src": "20105:12:0", + "referencedDeclaration": 1059, + "src": "20173:12:0", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -15960,12 +15846,12 @@ }, { "argumentTypes": null, - "id": 1151, + "id": 1139, "name": "transactionType", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1078, - "src": "20147:15:0", + "referencedDeclaration": 1067, + "src": "20215:15:0", "typeDescriptions": { "typeIdentifier": "t_enum$_TransactionType_$12", "typeString": "enum Escrow_v1_0.TransactionType" @@ -15973,12 +15859,12 @@ }, { "argumentTypes": null, - "id": 1152, + "id": 1140, "name": "tokenAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1080, - "src": "20189:12:0", + "referencedDeclaration": 1069, + "src": "20257:12:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -15987,18 +15873,18 @@ ], "expression": { "argumentTypes": null, - "id": 1139, + "id": 1128, "name": "Transaction", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 73, - "src": "19803:11:0", + "referencedDeclaration": 71, + "src": "19907:11:0", "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_Transaction_$73_storage_ptr_$", + "typeIdentifier": "t_type$_t_struct$_Transaction_$71_storage_ptr_$", "typeString": "type(struct Escrow_v1_0.Transaction storage pointer)" } }, - "id": 1153, + "id": 1141, "isConstant": false, "isLValue": false, "isPure": false, @@ -16011,33 +15897,32 @@ "value", "status", "lastModified", - "scriptHash", "threshold", "timeoutHours", "transactionType", "tokenAddress" ], "nodeType": "FunctionCall", - "src": "19803:409:0", + "src": "19907:373:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Transaction_$73_memory", + "typeIdentifier": "t_struct$_Transaction_$71_memory", "typeString": "struct Escrow_v1_0.Transaction memory" } }, - "src": "19776:436:0", + "src": "19880:400:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Transaction_$73_storage", + "typeIdentifier": "t_struct$_Transaction_$71_storage", "typeString": "struct Escrow_v1_0.Transaction storage ref" } }, - "id": 1155, + "id": 1143, "nodeType": "ExpressionStatement", - "src": "19776:436:0" + "src": "19880:400:0" }, { "expression": { "argumentTypes": null, - "id": 1163, + "id": 1151, "isConstant": false, "isLValue": false, "isPure": false, @@ -16050,26 +15935,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1156, + "id": 1144, "name": "transactions", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 77, - "src": "20223:12:0", + "referencedDeclaration": 75, + "src": "20291:12:0", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Transaction_$73_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Transaction_$71_storage_$", "typeString": "mapping(bytes32 => struct Escrow_v1_0.Transaction storage ref)" } }, - "id": 1158, + "id": 1146, "indexExpression": { "argumentTypes": null, - "id": 1157, + "id": 1145, "name": "scriptHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1072, - "src": "20236:10:0", + "referencedDeclaration": 1061, + "src": "20304:10:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -16080,35 +15965,35 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "20223:24:0", + "src": "20291:24:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Transaction_$73_storage", + "typeIdentifier": "t_struct$_Transaction_$71_storage", "typeString": "struct Escrow_v1_0.Transaction storage ref" } }, - "id": 1159, + "id": 1147, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "isOwner", "nodeType": "MemberAccess", - "referencedDeclaration": 64, - "src": "20223:32:0", + "referencedDeclaration": 62, + "src": "20291:32:0", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, - "id": 1161, + "id": 1149, "indexExpression": { "argumentTypes": null, - "id": 1160, + "id": 1148, "name": "seller", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1064, - "src": "20256:6:0", + "referencedDeclaration": 1053, + "src": "20324:6:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -16119,7 +16004,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "20223:40:0", + "src": "20291:40:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -16130,14 +16015,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "74727565", - "id": 1162, + "id": 1150, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "20266:4:0", + "src": "20334:4:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -16145,20 +16030,20 @@ }, "value": "true" }, - "src": "20223:47:0", + "src": "20291:47:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 1164, + "id": 1152, "nodeType": "ExpressionStatement", - "src": "20223:47:0" + "src": "20291:47:0" }, { "expression": { "argumentTypes": null, - "id": 1172, + "id": 1160, "isConstant": false, "isLValue": false, "isPure": false, @@ -16171,26 +16056,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1165, + "id": 1153, "name": "transactions", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 77, - "src": "20280:12:0", + "referencedDeclaration": 75, + "src": "20348:12:0", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Transaction_$73_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Transaction_$71_storage_$", "typeString": "mapping(bytes32 => struct Escrow_v1_0.Transaction storage ref)" } }, - "id": 1167, + "id": 1155, "indexExpression": { "argumentTypes": null, - "id": 1166, + "id": 1154, "name": "scriptHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1072, - "src": "20293:10:0", + "referencedDeclaration": 1061, + "src": "20361:10:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -16201,35 +16086,35 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "20280:24:0", + "src": "20348:24:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Transaction_$73_storage", + "typeIdentifier": "t_struct$_Transaction_$71_storage", "typeString": "struct Escrow_v1_0.Transaction storage ref" } }, - "id": 1168, + "id": 1156, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "isOwner", "nodeType": "MemberAccess", - "referencedDeclaration": 64, - "src": "20280:32:0", + "referencedDeclaration": 62, + "src": "20348:32:0", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, - "id": 1170, + "id": 1158, "indexExpression": { "argumentTypes": null, - "id": 1169, + "id": 1157, "name": "buyer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1062, - "src": "20313:5:0", + "referencedDeclaration": 1051, + "src": "20381:5:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -16240,7 +16125,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "20280:39:0", + "src": "20348:39:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -16251,14 +16136,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "74727565", - "id": 1171, + "id": 1159, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "20322:4:0", + "src": "20390:4:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -16266,15 +16151,15 @@ }, "value": "true" }, - "src": "20280:46:0", + "src": "20348:46:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 1173, + "id": 1161, "nodeType": "ExpressionStatement", - "src": "20280:46:0" + "src": "20348:46:0" }, { "expression": { @@ -16282,7 +16167,7 @@ "arguments": [ { "argumentTypes": null, - "id": 1181, + "id": 1169, "isConstant": false, "isLValue": false, "isPure": false, @@ -16290,7 +16175,7 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "20433:44:0", + "src": "20501:44:0", "subExpression": { "argumentTypes": null, "baseExpression": { @@ -16299,26 +16184,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1175, + "id": 1163, "name": "transactions", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 77, - "src": "20434:12:0", + "referencedDeclaration": 75, + "src": "20502:12:0", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Transaction_$73_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Transaction_$71_storage_$", "typeString": "mapping(bytes32 => struct Escrow_v1_0.Transaction storage ref)" } }, - "id": 1177, + "id": 1165, "indexExpression": { "argumentTypes": null, - "id": 1176, + "id": 1164, "name": "scriptHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1072, - "src": "20447:10:0", + "referencedDeclaration": 1061, + "src": "20515:10:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -16329,35 +16214,35 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "20434:24:0", + "src": "20502:24:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Transaction_$73_storage", + "typeIdentifier": "t_struct$_Transaction_$71_storage", "typeString": "struct Escrow_v1_0.Transaction storage ref" } }, - "id": 1178, + "id": 1166, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "isOwner", "nodeType": "MemberAccess", - "referencedDeclaration": 64, - "src": "20434:32:0", + "referencedDeclaration": 62, + "src": "20502:32:0", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, - "id": 1180, + "id": 1168, "indexExpression": { "argumentTypes": null, - "id": 1179, + "id": 1167, "name": "moderator", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1066, - "src": "20467:9:0", + "referencedDeclaration": 1055, + "src": "20535:9:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -16368,7 +16253,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "20434:43:0", + "src": "20502:43:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -16382,14 +16267,14 @@ { "argumentTypes": null, "hexValue": "456974686572206275796572206f722073656c6c657220697320706173736564206173206d6f64657261746f72", - "id": 1182, + "id": 1170, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "20492:47:0", + "src": "20560:47:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_313b391557427937e7bdb85c7561d47c5b9c985755a448dd33a92026ffb38f8d", @@ -16409,21 +16294,21 @@ "typeString": "literal_string \"Either buyer or seller is passed as moderator\"" } ], - "id": 1174, + "id": 1162, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1389, - 1390 + 1382, + 1383 ], - "referencedDeclaration": 1390, - "src": "20412:7:0", + "referencedDeclaration": 1383, + "src": "20480:7:0", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1183, + "id": 1171, "isConstant": false, "isLValue": false, "isPure": false, @@ -16431,221 +16316,284 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "20412:137:0", + "src": "20480:137:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1184, + "id": 1172, "nodeType": "ExpressionStatement", - "src": "20412:137:0" + "src": "20480:137:0" }, { - "expression": { + "condition": { "argumentTypes": null, - "id": 1192, + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 1175, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "leftHandSide": { + "leftExpression": { "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1185, - "name": "transactions", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 77, - "src": "20560:12:0", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Transaction_$73_storage_$", - "typeString": "mapping(bytes32 => struct Escrow_v1_0.Transaction storage ref)" - } - }, - "id": 1187, - "indexExpression": { - "argumentTypes": null, - "id": 1186, - "name": "scriptHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1072, - "src": "20573:10:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "20560:24:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Transaction_$73_storage", - "typeString": "struct Escrow_v1_0.Transaction storage ref" - } - }, - "id": 1188, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "isOwner", - "nodeType": "MemberAccess", - "referencedDeclaration": 64, - "src": "20560:32:0", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - } - }, - "id": 1190, - "indexExpression": { - "argumentTypes": null, - "id": 1189, - "name": "moderator", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1066, - "src": "20593:9:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "20560:43:0", + "id": 1173, + "name": "threshold", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1057, + "src": "20777:9:0", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_uint8", + "typeString": "uint8" } }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { "argumentTypes": null, - "hexValue": "74727565", - "id": 1191, + "hexValue": "31", + "id": 1174, "isConstant": false, "isLValue": false, "isPure": true, - "kind": "bool", + "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "20606:4:0", + "src": "20789:1:0", "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" }, - "value": "true" + "value": "1" }, - "src": "20560:50:0", + "src": "20777:13:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 1193, - "nodeType": "ExpressionStatement", - "src": "20560:50:0" - }, - { - "expression": { - "argumentTypes": null, - "id": 1195, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "20629:18:0", - "subExpression": { - "argumentTypes": null, - "id": 1194, - "name": "transactionCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 80, - "src": "20629:16:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1196, - "nodeType": "ExpressionStatement", - "src": "20629:18:0" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ + "falseBody": null, + "id": 1186, + "nodeType": "IfStatement", + "src": "20773:94:0", + "trueBody": { + "id": 1185, + "nodeType": "Block", + "src": "20792:75:0", + "statements": [ { - "argumentTypes": null, - "id": 1201, - "name": "scriptHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1072, - "src": "20689:10:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1197, - "name": "partyVsTransaction", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 85, - "src": "20658:18:0", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_bytes32_$dyn_storage_$", - "typeString": "mapping(address => bytes32[] storage ref)" - } - }, - "id": 1199, - "indexExpression": { + "expression": { "argumentTypes": null, - "id": 1198, - "name": "buyer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1062, - "src": "20677:5:0", - "typeDescriptions": { + "id": 1183, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1176, + "name": "transactions", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 75, + "src": "20806:12:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Transaction_$71_storage_$", + "typeString": "mapping(bytes32 => struct Escrow_v1_0.Transaction storage ref)" + } + }, + "id": 1178, + "indexExpression": { + "argumentTypes": null, + "id": 1177, + "name": "scriptHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1061, + "src": "20819:10:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "20806:24:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Transaction_$71_storage", + "typeString": "struct Escrow_v1_0.Transaction storage ref" + } + }, + "id": 1179, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "isOwner", + "nodeType": "MemberAccess", + "referencedDeclaration": 62, + "src": "20806:32:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 1181, + "indexExpression": { + "argumentTypes": null, + "id": 1180, + "name": "moderator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1055, + "src": "20839:9:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "20806:43:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 1182, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20852:4:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "20806:50:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1184, + "nodeType": "ExpressionStatement", + "src": "20806:50:0" + } + ] + } + }, + { + "expression": { + "argumentTypes": null, + "id": 1188, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "20885:18:0", + "subExpression": { + "argumentTypes": null, + "id": 1187, + "name": "transactionCount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 78, + "src": "20885:16:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1189, + "nodeType": "ExpressionStatement", + "src": "20885:18:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1194, + "name": "scriptHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1061, + "src": "20945:10:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1190, + "name": "partyVsTransaction", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 83, + "src": "20914:18:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_bytes32_$dyn_storage_$", + "typeString": "mapping(address => bytes32[] storage ref)" + } + }, + "id": 1192, + "indexExpression": { + "argumentTypes": null, + "id": 1191, + "name": "buyer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1051, + "src": "20933:5:0", + "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } @@ -16655,13 +16603,13 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "20658:25:0", + "src": "20914:25:0", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", "typeString": "bytes32[] storage ref" } }, - "id": 1200, + "id": 1193, "isConstant": false, "isLValue": false, "isPure": false, @@ -16669,13 +16617,13 @@ "memberName": "push", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "20658:30:0", + "src": "20914:30:0", "typeDescriptions": { "typeIdentifier": "t_function_arraypush_nonpayable$_t_bytes32_$returns$_t_uint256_$", "typeString": "function (bytes32) returns (uint256)" } }, - "id": 1202, + "id": 1195, "isConstant": false, "isLValue": false, "isPure": false, @@ -16683,15 +16631,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "20658:42:0", + "src": "20914:42:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1203, + "id": 1196, "nodeType": "ExpressionStatement", - "src": "20658:42:0" + "src": "20914:42:0" }, { "expression": { @@ -16699,12 +16647,12 @@ "arguments": [ { "argumentTypes": null, - "id": 1208, + "id": 1201, "name": "scriptHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1072, - "src": "20742:10:0", + "referencedDeclaration": 1061, + "src": "20998:10:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -16722,26 +16670,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1204, + "id": 1197, "name": "partyVsTransaction", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 85, - "src": "20710:18:0", + "referencedDeclaration": 83, + "src": "20966:18:0", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_bytes32_$dyn_storage_$", "typeString": "mapping(address => bytes32[] storage ref)" } }, - "id": 1206, + "id": 1199, "indexExpression": { "argumentTypes": null, - "id": 1205, + "id": 1198, "name": "seller", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1064, - "src": "20729:6:0", + "referencedDeclaration": 1053, + "src": "20985:6:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -16752,13 +16700,13 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "20710:26:0", + "src": "20966:26:0", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", "typeString": "bytes32[] storage ref" } }, - "id": 1207, + "id": 1200, "isConstant": false, "isLValue": false, "isPure": false, @@ -16766,13 +16714,13 @@ "memberName": "push", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "20710:31:0", + "src": "20966:31:0", "typeDescriptions": { "typeIdentifier": "t_function_arraypush_nonpayable$_t_bytes32_$returns$_t_uint256_$", "typeString": "function (bytes32) returns (uint256)" } }, - "id": 1209, + "id": 1202, "isConstant": false, "isLValue": false, "isPure": false, @@ -16780,20 +16728,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "20710:43:0", + "src": "20966:43:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1210, + "id": 1203, "nodeType": "ExpressionStatement", - "src": "20710:43:0" + "src": "20966:43:0" } ] }, "documentation": "Private method to add transaction to reduce code redundancy", - "id": 1212, + "id": 1205, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -16801,16 +16749,16 @@ "name": "_addTransaction", "nodeType": "FunctionDefinition", "parameters": { - "id": 1081, + "id": 1070, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1062, + "id": 1051, "name": "buyer", "nodeType": "VariableDeclaration", - "scope": 1212, - "src": "18548:13:0", + "scope": 1205, + "src": "18409:13:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -16818,10 +16766,10 @@ "typeString": "address" }, "typeName": { - "id": 1061, + "id": 1050, "name": "address", "nodeType": "ElementaryTypeName", - "src": "18548:7:0", + "src": "18409:7:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -16832,11 +16780,11 @@ }, { "constant": false, - "id": 1064, + "id": 1053, "name": "seller", "nodeType": "VariableDeclaration", - "scope": 1212, - "src": "18571:14:0", + "scope": 1205, + "src": "18432:14:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -16844,10 +16792,10 @@ "typeString": "address" }, "typeName": { - "id": 1063, + "id": 1052, "name": "address", "nodeType": "ElementaryTypeName", - "src": "18571:7:0", + "src": "18432:7:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -16858,11 +16806,11 @@ }, { "constant": false, - "id": 1066, + "id": 1055, "name": "moderator", "nodeType": "VariableDeclaration", - "scope": 1212, - "src": "18595:17:0", + "scope": 1205, + "src": "18456:17:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -16870,10 +16818,10 @@ "typeString": "address" }, "typeName": { - "id": 1065, + "id": 1054, "name": "address", "nodeType": "ElementaryTypeName", - "src": "18595:7:0", + "src": "18456:7:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -16884,11 +16832,11 @@ }, { "constant": false, - "id": 1068, + "id": 1057, "name": "threshold", "nodeType": "VariableDeclaration", - "scope": 1212, - "src": "18622:15:0", + "scope": 1205, + "src": "18483:15:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -16896,10 +16844,10 @@ "typeString": "uint8" }, "typeName": { - "id": 1067, + "id": 1056, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "18622:5:0", + "src": "18483:5:0", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -16910,11 +16858,11 @@ }, { "constant": false, - "id": 1070, + "id": 1059, "name": "timeoutHours", "nodeType": "VariableDeclaration", - "scope": 1212, - "src": "18647:19:0", + "scope": 1205, + "src": "18508:19:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -16922,10 +16870,10 @@ "typeString": "uint32" }, "typeName": { - "id": 1069, + "id": 1058, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "18647:6:0", + "src": "18508:6:0", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -16936,11 +16884,11 @@ }, { "constant": false, - "id": 1072, + "id": 1061, "name": "scriptHash", "nodeType": "VariableDeclaration", - "scope": 1212, - "src": "18676:18:0", + "scope": 1205, + "src": "18537:18:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -16948,10 +16896,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 1071, + "id": 1060, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "18676:7:0", + "src": "18537:7:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -16962,11 +16910,11 @@ }, { "constant": false, - "id": 1074, + "id": 1063, "name": "value", "nodeType": "VariableDeclaration", - "scope": 1212, - "src": "18704:13:0", + "scope": 1205, + "src": "18565:13:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -16974,10 +16922,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1073, + "id": 1062, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "18704:7:0", + "src": "18565:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -16988,11 +16936,11 @@ }, { "constant": false, - "id": 1076, + "id": 1065, "name": "uniqueId", "nodeType": "VariableDeclaration", - "scope": 1212, - "src": "18727:16:0", + "scope": 1205, + "src": "18588:16:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -17000,10 +16948,10 @@ "typeString": "bytes20" }, "typeName": { - "id": 1075, + "id": 1064, "name": "bytes20", "nodeType": "ElementaryTypeName", - "src": "18727:7:0", + "src": "18588:7:0", "typeDescriptions": { "typeIdentifier": "t_bytes20", "typeString": "bytes20" @@ -17014,11 +16962,11 @@ }, { "constant": false, - "id": 1078, + "id": 1067, "name": "transactionType", "nodeType": "VariableDeclaration", - "scope": 1212, - "src": "18753:31:0", + "scope": 1205, + "src": "18614:31:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -17027,11 +16975,11 @@ }, "typeName": { "contractScope": null, - "id": 1077, + "id": 1066, "name": "TransactionType", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 12, - "src": "18753:15:0", + "src": "18614:15:0", "typeDescriptions": { "typeIdentifier": "t_enum$_TransactionType_$12", "typeString": "enum Escrow_v1_0.TransactionType" @@ -17042,11 +16990,11 @@ }, { "constant": false, - "id": 1080, + "id": 1069, "name": "tokenAddress", "nodeType": "VariableDeclaration", - "scope": 1212, - "src": "18794:20:0", + "scope": 1205, + "src": "18655:20:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -17054,10 +17002,10 @@ "typeString": "address" }, "typeName": { - "id": 1079, + "id": 1068, "name": "address", "nodeType": "ElementaryTypeName", - "src": "18794:7:0", + "src": "18655:7:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -17067,36 +17015,36 @@ "visibility": "internal" } ], - "src": "18538:282:0" + "src": "18399:282:0" }, "payable": false, "returnParameters": { - "id": 1082, + "id": 1071, "nodeType": "ParameterList", "parameters": [], - "src": "18841:0:0" + "src": "18702:0:0" }, - "scope": 1213, - "src": "18514:2246:0", + "scope": 1206, + "src": "18375:2641:0", "stateMutability": "nonpayable", "superFunction": null, "visibility": "private" } ], - "scope": 1214, - "src": "460:20302:0" + "scope": 1207, + "src": "605:20413:0" } ], - "src": "0:20763:0" + "src": "0:21019:0" }, "legacyAST": { "absolutePath": "/home/sameep/freelancing-projects/toptal/open baazar/publicRepo/smart-contracts/contracts/escrow/Escrow_v1_0.sol", "exportedSymbols": { "Escrow_v1_0": [ - 1213 + 1206 ] }, - "id": 1214, + "id": 1207, "nodeType": "SourceUnit", "nodes": [ { @@ -17114,8 +17062,8 @@ "file": "openzeppelin-solidity/contracts/math/SafeMath.sol", "id": 2, "nodeType": "ImportDirective", - "scope": 1214, - "sourceUnit": 1372, + "scope": 1207, + "sourceUnit": 1365, "src": "25:59:0", "symbolAliases": [], "unitAlias": "" @@ -17125,8 +17073,8 @@ "file": "../token/ITokenContract.sol", "id": 3, "nodeType": "ImportDirective", - "scope": 1214, - "sourceUnit": 1244, + "scope": 1207, + "sourceUnit": 1237, "src": "86:37:0", "symbolAliases": [], "unitAlias": "" @@ -17135,11 +17083,11 @@ "baseContracts": [], "contractDependencies": [], "contractKind": "contract", - "documentation": "@dev Supports ERC20 tokens\nThe escrow smart contract for the open bazaar trades in Ethereum\nThe smart contract is desgined keeping in mind the current wallet interface of the OB-core\nhttps://github.com/OpenBazaar/wallet-interface/blob/master/wallet.go\nCurrent wallet interface strictly adheres to UTXO(bitcoin) model", + "documentation": "@dev Supports ERC20 tokens\nThe escrow smart contract for the open bazaar trades in Ethereum\nThe smart contract is designed keeping in mind the current wallet interface of the OB-core\nhttps://github.com/OpenBazaar/wallet-interface/blob/master/wallet.go\nCurrent wallet interface strictly adheres to UTXO(bitcoin) model\nPlease read below mentioned link for detailed specs\nhttps://github.com/OpenBazaar/smart-contracts/blob/master/contracts/escrow/EscrowSpec.md", "fullyImplemented": true, - "id": 1213, + "id": 1206, "linearizedBaseContracts": [ - 1213 + 1206 ], "name": "Escrow_v1_0", "nodeType": "ContractDefinition", @@ -17151,20 +17099,20 @@ "id": 4, "name": "SafeMath", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1371, - "src": "494:8:0", + "referencedDeclaration": 1364, + "src": "639:8:0", "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$1371", + "typeIdentifier": "t_contract$_SafeMath_$1364", "typeString": "library SafeMath" } }, "nodeType": "UsingForDirective", - "src": "488:27:0", + "src": "633:27:0", "typeName": { "id": 5, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "507:7:0", + "src": "652:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -17179,18 +17127,18 @@ "id": 7, "name": "FUNDED", "nodeType": "EnumValue", - "src": "534:6:0" + "src": "679:6:0" }, { "id": 8, "name": "RELEASED", "nodeType": "EnumValue", - "src": "542:8:0" + "src": "687:8:0" } ], "name": "Status", "nodeType": "EnumDefinition", - "src": "521:30:0" + "src": "666:30:0" }, { "canonicalName": "Escrow_v1_0.TransactionType", @@ -17200,18 +17148,18 @@ "id": 10, "name": "ETHER", "nodeType": "EnumValue", - "src": "579:5:0" + "src": "724:5:0" }, { "id": 11, "name": "TOKEN", "nodeType": "EnumValue", - "src": "586:5:0" + "src": "731:5:0" } ], "name": "TransactionType", "nodeType": "EnumDefinition", - "src": "557:35:0" + "src": "702:35:0" }, { "anonymous": false, @@ -17226,11 +17174,11 @@ { "constant": false, "id": 14, - "indexed": false, + "indexed": true, "name": "scriptHash", "nodeType": "VariableDeclaration", "scope": 22, - "src": "622:18:0", + "src": "767:26:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -17241,7 +17189,7 @@ "id": 13, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "622:7:0", + "src": "767:7:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -17257,7 +17205,7 @@ "name": "destinations", "nodeType": "VariableDeclaration", "scope": 22, - "src": "650:22:0", + "src": "803:22:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -17269,7 +17217,7 @@ "id": 15, "name": "address", "nodeType": "ElementaryTypeName", - "src": "650:7:0", + "src": "803:7:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -17278,7 +17226,7 @@ "id": 16, "length": null, "nodeType": "ArrayTypeName", - "src": "650:9:0", + "src": "803:9:0", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]" @@ -17294,7 +17242,7 @@ "name": "amounts", "nodeType": "VariableDeclaration", "scope": 22, - "src": "682:17:0", + "src": "835:17:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -17306,7 +17254,7 @@ "id": 18, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "682:7:0", + "src": "835:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -17315,7 +17263,7 @@ "id": 19, "length": null, "nodeType": "ArrayTypeName", - "src": "682:9:0", + "src": "835:9:0", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", "typeString": "uint256[]" @@ -17325,9 +17273,9 @@ "visibility": "internal" } ], - "src": "612:93:0" + "src": "757:101:0" }, - "src": "598:108:0" + "src": "743:116:0" }, { "anonymous": false, @@ -17342,11 +17290,11 @@ { "constant": false, "id": 24, - "indexed": false, + "indexed": true, "name": "scriptHash", "nodeType": "VariableDeclaration", "scope": 30, - "src": "737:18:0", + "src": "890:26:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -17357,7 +17305,7 @@ "id": 23, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "737:7:0", + "src": "890:7:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -17373,7 +17321,7 @@ "name": "from", "nodeType": "VariableDeclaration", "scope": 30, - "src": "765:20:0", + "src": "926:20:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -17384,7 +17332,7 @@ "id": 25, "name": "address", "nodeType": "ElementaryTypeName", - "src": "765:7:0", + "src": "926:7:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -17400,7 +17348,7 @@ "name": "valueAdded", "nodeType": "VariableDeclaration", "scope": 30, - "src": "795:18:0", + "src": "956:18:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -17411,7 +17359,7 @@ "id": 27, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "795:7:0", + "src": "956:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -17421,9 +17369,9 @@ "visibility": "internal" } ], - "src": "727:92:0" + "src": "880:100:0" }, - "src": "712:108:0" + "src": "865:116:0" }, { "anonymous": false, @@ -17438,11 +17386,11 @@ { "constant": false, "id": 32, - "indexed": false, + "indexed": true, "name": "scriptHash", "nodeType": "VariableDeclaration", "scope": 38, - "src": "839:18:0", + "src": "1009:26:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -17453,7 +17401,7 @@ "id": 31, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "839:7:0", + "src": "1009:7:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -17469,7 +17417,7 @@ "name": "from", "nodeType": "VariableDeclaration", "scope": 38, - "src": "859:20:0", + "src": "1046:20:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -17480,7 +17428,7 @@ "id": 33, "name": "address", "nodeType": "ElementaryTypeName", - "src": "859:7:0", + "src": "1046:7:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -17496,7 +17444,7 @@ "name": "value", "nodeType": "VariableDeclaration", "scope": 38, - "src": "881:13:0", + "src": "1077:13:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -17507,7 +17455,7 @@ "id": 35, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "881:7:0", + "src": "1077:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -17517,47 +17465,21 @@ "visibility": "internal" } ], - "src": "838:57:0" + "src": "999:97:0" }, - "src": "826:70:0" + "src": "987:110:0" }, { "canonicalName": "Escrow_v1_0.Transaction", - "id": 73, + "id": 71, "members": [ { "constant": false, "id": 40, - "name": "scriptHash", - "nodeType": "VariableDeclaration", - "scope": 73, - "src": "931:18:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 39, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "931:7:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 42, "name": "value", "nodeType": "VariableDeclaration", - "scope": 73, - "src": "1005:13:0", + "scope": 71, + "src": "1132:13:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -17565,10 +17487,10 @@ "typeString": "uint256" }, "typeName": { - "id": 41, + "id": 39, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1005:7:0", + "src": "1132:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -17579,11 +17501,11 @@ }, { "constant": false, - "id": 44, + "id": 42, "name": "lastModified", "nodeType": "VariableDeclaration", - "scope": 73, - "src": "1028:20:0", + "scope": 71, + "src": "1155:20:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -17591,10 +17513,10 @@ "typeString": "uint256" }, "typeName": { - "id": 43, + "id": 41, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1028:7:0", + "src": "1155:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -17605,11 +17527,11 @@ }, { "constant": false, - "id": 46, + "id": 44, "name": "status", "nodeType": "VariableDeclaration", - "scope": 73, - "src": "1103:13:0", + "scope": 71, + "src": "1232:13:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -17618,11 +17540,11 @@ }, "typeName": { "contractScope": null, - "id": 45, + "id": 43, "name": "Status", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 9, - "src": "1103:6:0", + "src": "1232:6:0", "typeDescriptions": { "typeIdentifier": "t_enum$_Status_$9", "typeString": "enum Escrow_v1_0.Status" @@ -17633,11 +17555,11 @@ }, { "constant": false, - "id": 48, + "id": 46, "name": "transactionType", "nodeType": "VariableDeclaration", - "scope": 73, - "src": "1126:31:0", + "scope": 71, + "src": "1255:31:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -17646,11 +17568,11 @@ }, "typeName": { "contractScope": null, - "id": 47, + "id": 45, "name": "TransactionType", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 12, - "src": "1126:15:0", + "src": "1255:15:0", "typeDescriptions": { "typeIdentifier": "t_enum$_TransactionType_$12", "typeString": "enum Escrow_v1_0.TransactionType" @@ -17661,11 +17583,11 @@ }, { "constant": false, - "id": 50, + "id": 48, "name": "threshold", "nodeType": "VariableDeclaration", - "scope": 73, - "src": "1167:15:0", + "scope": 71, + "src": "1296:15:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -17673,10 +17595,10 @@ "typeString": "uint8" }, "typeName": { - "id": 49, + "id": 47, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "1167:5:0", + "src": "1296:5:0", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -17687,11 +17609,11 @@ }, { "constant": false, - "id": 52, + "id": 50, "name": "timeoutHours", "nodeType": "VariableDeclaration", - "scope": 73, - "src": "1192:19:0", + "scope": 71, + "src": "1321:19:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -17699,10 +17621,10 @@ "typeString": "uint32" }, "typeName": { - "id": 51, + "id": 49, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "1192:6:0", + "src": "1321:6:0", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -17713,11 +17635,11 @@ }, { "constant": false, - "id": 54, + "id": 52, "name": "buyer", "nodeType": "VariableDeclaration", - "scope": 73, - "src": "1221:13:0", + "scope": 71, + "src": "1350:13:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -17725,10 +17647,10 @@ "typeString": "address" }, "typeName": { - "id": 53, + "id": 51, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1221:7:0", + "src": "1350:7:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -17739,11 +17661,11 @@ }, { "constant": false, - "id": 56, + "id": 54, "name": "seller", "nodeType": "VariableDeclaration", - "scope": 73, - "src": "1244:14:0", + "scope": 71, + "src": "1373:14:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -17751,10 +17673,10 @@ "typeString": "address" }, "typeName": { - "id": 55, + "id": 53, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1244:7:0", + "src": "1373:7:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -17765,11 +17687,11 @@ }, { "constant": false, - "id": 58, + "id": 56, "name": "tokenAddress", "nodeType": "VariableDeclaration", - "scope": 73, - "src": "1268:20:0", + "scope": 71, + "src": "1397:20:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -17777,10 +17699,10 @@ "typeString": "address" }, "typeName": { - "id": 57, + "id": 55, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1268:7:0", + "src": "1397:7:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -17791,11 +17713,11 @@ }, { "constant": false, - "id": 60, + "id": 58, "name": "moderator", "nodeType": "VariableDeclaration", - "scope": 73, - "src": "1340:17:0", + "scope": 71, + "src": "1468:17:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -17803,10 +17725,10 @@ "typeString": "address" }, "typeName": { - "id": 59, + "id": 57, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1340:7:0", + "src": "1468:7:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -17817,11 +17739,11 @@ }, { "constant": false, - "id": 64, + "id": 62, "name": "isOwner", "nodeType": "VariableDeclaration", - "scope": 73, - "src": "1367:30:0", + "scope": 71, + "src": "1495:30:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -17829,28 +17751,28 @@ "typeString": "mapping(address => bool)" }, "typeName": { - "id": 63, + "id": 61, "keyType": { - "id": 61, + "id": 59, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1375:7:0", + "src": "1503:7:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", - "src": "1367:22:0", + "src": "1495:22:0", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" }, "valueType": { - "id": 62, + "id": 60, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "1384:4:0", + "src": "1512:4:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -17862,11 +17784,11 @@ }, { "constant": false, - "id": 68, + "id": 66, "name": "voted", "nodeType": "VariableDeclaration", - "scope": 73, - "src": "1441:28:0", + "scope": 71, + "src": "1561:28:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -17874,28 +17796,28 @@ "typeString": "mapping(address => bool)" }, "typeName": { - "id": 67, + "id": 65, "keyType": { - "id": 65, + "id": 63, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1449:7:0", + "src": "1569:7:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", - "src": "1441:22:0", + "src": "1561:22:0", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" }, "valueType": { - "id": 66, + "id": 64, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "1458:4:0", + "src": "1578:4:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -17907,11 +17829,11 @@ }, { "constant": false, - "id": 72, + "id": 70, "name": "beneficiaries", "nodeType": "VariableDeclaration", - "scope": 73, - "src": "1511:36:0", + "scope": 71, + "src": "1631:36:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -17919,28 +17841,28 @@ "typeString": "mapping(address => bool)" }, "typeName": { - "id": 71, + "id": 69, "keyType": { - "id": 69, + "id": 67, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1519:7:0", + "src": "1639:7:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", - "src": "1511:22:0", + "src": "1631:22:0", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" }, "valueType": { - "id": 70, + "id": 68, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "1528:4:0", + "src": "1648:4:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -17953,50 +17875,50 @@ ], "name": "Transaction", "nodeType": "StructDefinition", - "scope": 1213, - "src": "902:680:0", + "scope": 1206, + "src": "1103:599:0", "visibility": "public" }, { "constant": false, - "id": 77, + "id": 75, "name": "transactions", "nodeType": "VariableDeclaration", - "scope": 1213, - "src": "1588:51:0", + "scope": 1206, + "src": "1708:51:0", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Transaction_$73_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Transaction_$71_storage_$", "typeString": "mapping(bytes32 => struct Escrow_v1_0.Transaction)" }, "typeName": { - "id": 76, + "id": 74, "keyType": { - "id": 74, + "id": 72, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "1596:7:0", + "src": "1716:7:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "nodeType": "Mapping", - "src": "1588:31:0", + "src": "1708:31:0", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Transaction_$73_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Transaction_$71_storage_$", "typeString": "mapping(bytes32 => struct Escrow_v1_0.Transaction)" }, "valueType": { "contractScope": null, - "id": 75, + "id": 73, "name": "Transaction", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 73, - "src": "1607:11:0", + "referencedDeclaration": 71, + "src": "1727:11:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Transaction_$73_storage_ptr", + "typeIdentifier": "t_struct$_Transaction_$71_storage_ptr", "typeString": "struct Escrow_v1_0.Transaction" } } @@ -18006,11 +17928,11 @@ }, { "constant": false, - "id": 80, + "id": 78, "name": "transactionCount", "nodeType": "VariableDeclaration", - "scope": 1213, - "src": "1646:35:0", + "scope": 1206, + "src": "1766:35:0", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -18018,10 +17940,10 @@ "typeString": "uint256" }, "typeName": { - "id": 78, + "id": 76, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1646:7:0", + "src": "1766:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -18030,14 +17952,14 @@ "value": { "argumentTypes": null, "hexValue": "30", - "id": 79, + "id": 77, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1680:1:0", + "src": "1800:1:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -18049,11 +17971,11 @@ }, { "constant": false, - "id": 85, + "id": 83, "name": "partyVsTransaction", "nodeType": "VariableDeclaration", - "scope": 1213, - "src": "1758:54:0", + "scope": 1206, + "src": "1880:56:0", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -18061,38 +17983,38 @@ "typeString": "mapping(address => bytes32[])" }, "typeName": { - "id": 84, + "id": 82, "keyType": { - "id": 81, + "id": 79, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1766:7:0", + "src": "1888:7:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", - "src": "1758:29:0", + "src": "1880:29:0", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_bytes32_$dyn_storage_$", "typeString": "mapping(address => bytes32[])" }, "valueType": { "baseType": { - "id": 82, + "id": 80, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "1777:7:0", + "src": "1899:7:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "id": 83, + "id": 81, "length": null, "nodeType": "ArrayTypeName", - "src": "1777:9:0", + "src": "1899:9:0", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", "typeString": "bytes32[]" @@ -18100,13 +18022,13 @@ } }, "value": null, - "visibility": "public" + "visibility": "private" }, { "body": { - "id": 100, + "id": 98, "nodeType": "Block", - "src": "1866:125:0", + "src": "1989:124:0", "statements": [ { "expression": { @@ -18118,7 +18040,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 95, + "id": 93, "isConstant": false, "isLValue": false, "isPure": false, @@ -18129,26 +18051,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 90, + "id": 88, "name": "transactions", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 77, - "src": "1897:12:0", + "referencedDeclaration": 75, + "src": "2020:12:0", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Transaction_$73_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Transaction_$71_storage_$", "typeString": "mapping(bytes32 => struct Escrow_v1_0.Transaction storage ref)" } }, - "id": 92, + "id": 90, "indexExpression": { "argumentTypes": null, - "id": 91, + "id": 89, "name": "scriptHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 87, - "src": "1910:10:0", + "referencedDeclaration": 85, + "src": "2033:10:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -18159,21 +18081,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1897:24:0", + "src": "2020:24:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Transaction_$73_storage", + "typeIdentifier": "t_struct$_Transaction_$71_storage", "typeString": "struct Escrow_v1_0.Transaction storage ref" } }, - "id": 93, + "id": 91, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "value", "nodeType": "MemberAccess", - "referencedDeclaration": 42, - "src": "1897:30:0", + "referencedDeclaration": 40, + "src": "2020:30:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -18184,14 +18106,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 94, + "id": 92, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1931:1:0", + "src": "2054:1:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -18199,7 +18121,7 @@ }, "value": "0" }, - "src": "1897:35:0", + "src": "2020:35:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -18207,21 +18129,21 @@ }, { "argumentTypes": null, - "hexValue": "5472616e73616374696f6e20646f6573206e6f7420657869737473", - "id": 96, + "hexValue": "5472616e73616374696f6e20646f6573206e6f74206578697374", + "id": 94, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "1934:29:0", + "src": "2057:28:0", "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_stringliteral_e6218ab6010d379e919c5d8d62438c20b22e478fd60139b985d89cb57bc71538", - "typeString": "literal_string \"Transaction does not exists\"" + "typeIdentifier": "t_stringliteral_cb323e46bbcca91e157c2b50ad4ce2acbe1153338b838c84372d5723b8995ef0", + "typeString": "literal_string \"Transaction does not exist\"" }, - "value": "Transaction does not exists" + "value": "Transaction does not exist" } ], "expression": { @@ -18231,25 +18153,25 @@ "typeString": "bool" }, { - "typeIdentifier": "t_stringliteral_e6218ab6010d379e919c5d8d62438c20b22e478fd60139b985d89cb57bc71538", - "typeString": "literal_string \"Transaction does not exists\"" + "typeIdentifier": "t_stringliteral_cb323e46bbcca91e157c2b50ad4ce2acbe1153338b838c84372d5723b8995ef0", + "typeString": "literal_string \"Transaction does not exist\"" } ], - "id": 89, + "id": 87, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1389, - 1390 + 1382, + 1383 ], - "referencedDeclaration": 1390, - "src": "1876:7:0", + "referencedDeclaration": 1383, + "src": "1999:7:0", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 97, + "id": 95, "isConstant": false, "isLValue": false, "isPure": false, @@ -18257,38 +18179,38 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1876:97:0", + "src": "1999:96:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 98, + "id": 96, "nodeType": "ExpressionStatement", - "src": "1876:97:0" + "src": "1999:96:0" }, { - "id": 99, + "id": 97, "nodeType": "PlaceholderStatement", - "src": "1983:1:0" + "src": "2105:1:0" } ] }, "documentation": null, - "id": 101, - "name": "transactionExists", + "id": 99, + "name": "transactionExist", "nodeType": "ModifierDefinition", "parameters": { - "id": 88, + "id": 86, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 87, + "id": 85, "name": "scriptHash", "nodeType": "VariableDeclaration", - "scope": 101, - "src": "1846:18:0", + "scope": 99, + "src": "1969:18:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -18296,10 +18218,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 86, + "id": 84, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "1846:7:0", + "src": "1969:7:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -18309,16 +18231,16 @@ "visibility": "internal" } ], - "src": "1845:20:0" + "src": "1968:20:0" }, - "src": "1819:172:0", + "src": "1943:170:0", "visibility": "internal" }, { "body": { - "id": 116, + "id": 114, "nodeType": "Block", - "src": "2052:94:0", + "src": "2172:93:0", "statements": [ { "expression": { @@ -18330,7 +18252,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 111, + "id": 109, "isConstant": false, "isLValue": false, "isPure": false, @@ -18341,26 +18263,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 106, + "id": 104, "name": "transactions", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 77, - "src": "2070:12:0", + "referencedDeclaration": 75, + "src": "2190:12:0", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Transaction_$73_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Transaction_$71_storage_$", "typeString": "mapping(bytes32 => struct Escrow_v1_0.Transaction storage ref)" } }, - "id": 108, + "id": 106, "indexExpression": { "argumentTypes": null, - "id": 107, + "id": 105, "name": "scriptHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 103, - "src": "2083:10:0", + "referencedDeclaration": 101, + "src": "2203:10:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -18371,21 +18293,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "2070:24:0", + "src": "2190:24:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Transaction_$73_storage", + "typeIdentifier": "t_struct$_Transaction_$71_storage", "typeString": "struct Escrow_v1_0.Transaction storage ref" } }, - "id": 109, + "id": 107, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "value", "nodeType": "MemberAccess", - "referencedDeclaration": 42, - "src": "2070:30:0", + "referencedDeclaration": 40, + "src": "2190:30:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -18396,14 +18318,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 110, + "id": 108, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2104:1:0", + "src": "2224:1:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -18411,7 +18333,7 @@ }, "value": "0" }, - "src": "2070:35:0", + "src": "2190:35:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -18419,21 +18341,21 @@ }, { "argumentTypes": null, - "hexValue": "5472616e73616374696f6e20657869737473", - "id": 112, + "hexValue": "5472616e73616374696f6e206578697374", + "id": 110, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "2107:20:0", + "src": "2227:19:0", "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_stringliteral_64ff8d63c933e41af18e90354a9e9e0a94a0877b0dd96b73b67df48f68d00e8a", - "typeString": "literal_string \"Transaction exists\"" + "typeIdentifier": "t_stringliteral_4f41f109da323167d042f4559ebd6e2dc42fdbc2be1a2cea9ff6130572900782", + "typeString": "literal_string \"Transaction exist\"" }, - "value": "Transaction exists" + "value": "Transaction exist" } ], "expression": { @@ -18443,25 +18365,25 @@ "typeString": "bool" }, { - "typeIdentifier": "t_stringliteral_64ff8d63c933e41af18e90354a9e9e0a94a0877b0dd96b73b67df48f68d00e8a", - "typeString": "literal_string \"Transaction exists\"" + "typeIdentifier": "t_stringliteral_4f41f109da323167d042f4559ebd6e2dc42fdbc2be1a2cea9ff6130572900782", + "typeString": "literal_string \"Transaction exist\"" } ], - "id": 105, + "id": 103, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1389, - 1390 + 1382, + 1383 ], - "referencedDeclaration": 1390, - "src": "2062:7:0", + "referencedDeclaration": 1383, + "src": "2182:7:0", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 113, + "id": 111, "isConstant": false, "isLValue": false, "isPure": false, @@ -18469,38 +18391,38 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2062:66:0", + "src": "2182:65:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 114, + "id": 112, "nodeType": "ExpressionStatement", - "src": "2062:66:0" + "src": "2182:65:0" }, { - "id": 115, + "id": 113, "nodeType": "PlaceholderStatement", - "src": "2138:1:0" + "src": "2257:1:0" } ] }, "documentation": null, - "id": 117, - "name": "transactionDoesNotExists", + "id": 115, + "name": "transactionDoesNotExist", "nodeType": "ModifierDefinition", "parameters": { - "id": 104, + "id": 102, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 103, + "id": 101, "name": "scriptHash", "nodeType": "VariableDeclaration", - "scope": 117, - "src": "2032:18:0", + "scope": 115, + "src": "2152:18:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -18508,10 +18430,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 102, + "id": 100, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "2032:7:0", + "src": "2152:7:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -18521,16 +18443,16 @@ "visibility": "internal" } ], - "src": "2031:20:0" + "src": "2151:20:0" }, - "src": "1997:149:0", + "src": "2119:146:0", "visibility": "internal" }, { "body": { - "id": 133, + "id": 131, "nodeType": "Block", - "src": "2195:161:0", + "src": "2314:145:0", "statements": [ { "expression": { @@ -18542,7 +18464,7 @@ "typeIdentifier": "t_enum$_Status_$9", "typeString": "enum Escrow_v1_0.Status" }, - "id": 128, + "id": 126, "isConstant": false, "isLValue": false, "isPure": false, @@ -18553,26 +18475,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 122, + "id": 120, "name": "transactions", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 77, - "src": "2226:12:0", + "referencedDeclaration": 75, + "src": "2345:12:0", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Transaction_$73_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Transaction_$71_storage_$", "typeString": "mapping(bytes32 => struct Escrow_v1_0.Transaction storage ref)" } }, - "id": 124, + "id": 122, "indexExpression": { "argumentTypes": null, - "id": 123, + "id": 121, "name": "scriptHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 119, - "src": "2239:10:0", + "referencedDeclaration": 117, + "src": "2358:10:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -18583,21 +18505,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "2226:24:0", + "src": "2345:24:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Transaction_$73_storage", + "typeIdentifier": "t_struct$_Transaction_$71_storage", "typeString": "struct Escrow_v1_0.Transaction storage ref" } }, - "id": 125, + "id": 123, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "status", "nodeType": "MemberAccess", - "referencedDeclaration": 46, - "src": "2226:31:0", + "referencedDeclaration": 44, + "src": "2345:31:0", "typeDescriptions": { "typeIdentifier": "t_enum$_Status_$9", "typeString": "enum Escrow_v1_0.Status" @@ -18609,18 +18531,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 126, + "id": 124, "name": "Status", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9, - "src": "2261:6:0", + "src": "2380:6:0", "typeDescriptions": { "typeIdentifier": "t_type$_t_enum$_Status_$9_$", "typeString": "type(enum Escrow_v1_0.Status)" } }, - "id": 127, + "id": 125, "isConstant": false, "isLValue": false, "isPure": true, @@ -18628,13 +18550,13 @@ "memberName": "FUNDED", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "2261:13:0", + "src": "2380:13:0", "typeDescriptions": { "typeIdentifier": "t_enum$_Status_$9", "typeString": "enum Escrow_v1_0.Status" } }, - "src": "2226:48:0", + "src": "2345:48:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -18642,21 +18564,21 @@ }, { "argumentTypes": null, - "hexValue": "5472616e73616374696f6e2069732065697468657220696e2064697370757465206f722072656c6561736564207374617465", - "id": 129, + "hexValue": "5472616e73616374696f6e206973206e6f7420696e2046554e444544207374617465", + "id": 127, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "2276:52:0", + "src": "2395:36:0", "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_stringliteral_0cc8916d65fa11e0e6538cf603067141ec9685ba71ec1b5e50c6b5b71a8ab654", - "typeString": "literal_string \"Transaction is either in dispute or released state\"" + "typeIdentifier": "t_stringliteral_5244efce1630cfae7257c0817c921ae75135c1043344a4cf9a1988c03337f39d", + "typeString": "literal_string \"Transaction is not in FUNDED state\"" }, - "value": "Transaction is either in dispute or released state" + "value": "Transaction is not in FUNDED state" } ], "expression": { @@ -18666,25 +18588,25 @@ "typeString": "bool" }, { - "typeIdentifier": "t_stringliteral_0cc8916d65fa11e0e6538cf603067141ec9685ba71ec1b5e50c6b5b71a8ab654", - "typeString": "literal_string \"Transaction is either in dispute or released state\"" + "typeIdentifier": "t_stringliteral_5244efce1630cfae7257c0817c921ae75135c1043344a4cf9a1988c03337f39d", + "typeString": "literal_string \"Transaction is not in FUNDED state\"" } ], - "id": 121, + "id": 119, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1389, - 1390 + 1382, + 1383 ], - "referencedDeclaration": 1390, - "src": "2205:7:0", + "referencedDeclaration": 1383, + "src": "2324:7:0", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 130, + "id": 128, "isConstant": false, "isLValue": false, "isPure": false, @@ -18692,38 +18614,38 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2205:133:0", + "src": "2324:117:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 131, + "id": 129, "nodeType": "ExpressionStatement", - "src": "2205:133:0" + "src": "2324:117:0" }, { - "id": 132, + "id": 130, "nodeType": "PlaceholderStatement", - "src": "2348:1:0" + "src": "2451:1:0" } ] }, "documentation": null, - "id": 134, + "id": 132, "name": "inFundedState", "nodeType": "ModifierDefinition", "parameters": { - "id": 120, + "id": 118, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 119, + "id": 117, "name": "scriptHash", "nodeType": "VariableDeclaration", - "scope": 134, - "src": "2175:18:0", + "scope": 132, + "src": "2294:18:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -18731,10 +18653,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 118, + "id": 116, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "2175:7:0", + "src": "2294:7:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -18744,16 +18666,16 @@ "visibility": "internal" } ], - "src": "2174:20:0" + "src": "2293:20:0" }, - "src": "2152:204:0", + "src": "2271:188:0", "visibility": "internal" }, { "body": { - "id": 148, + "id": 146, "nodeType": "Block", - "src": "2410:88:0", + "src": "2513:88:0", "statements": [ { "expression": { @@ -18765,19 +18687,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 143, + "id": 141, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 139, + "id": 137, "name": "addressToCheck", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 136, - "src": "2428:14:0", + "referencedDeclaration": 134, + "src": "2531:14:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -18791,14 +18713,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 141, + "id": 139, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2454:1:0", + "src": "2557:1:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -18814,20 +18736,20 @@ "typeString": "int_const 0" } ], - "id": 140, + "id": 138, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "2446:7:0", + "src": "2549:7:0", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 142, + "id": 140, "isConstant": false, "isLValue": false, "isPure": true, @@ -18835,13 +18757,13 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2446:10:0", + "src": "2549:10:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "2428:28:0", + "src": "2531:28:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -18850,14 +18772,14 @@ { "argumentTypes": null, "hexValue": "5a65726f206164647265737320706173736564", - "id": 144, + "id": 142, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "2458:21:0", + "src": "2561:21:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_93e85f37f73cf8e1b855512ab7e00aab2b791117712ecb476daeb6c2c0a27a67", @@ -18877,21 +18799,21 @@ "typeString": "literal_string \"Zero address passed\"" } ], - "id": 138, + "id": 136, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1389, - 1390 + 1382, + 1383 ], - "referencedDeclaration": 1390, - "src": "2420:7:0", + "referencedDeclaration": 1383, + "src": "2523:7:0", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 145, + "id": 143, "isConstant": false, "isLValue": false, "isPure": false, @@ -18899,38 +18821,38 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2420:60:0", + "src": "2523:60:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 146, + "id": 144, "nodeType": "ExpressionStatement", - "src": "2420:60:0" + "src": "2523:60:0" }, { - "id": 147, + "id": 145, "nodeType": "PlaceholderStatement", - "src": "2490:1:0" + "src": "2593:1:0" } ] }, "documentation": null, - "id": 149, + "id": 147, "name": "nonZeroAddress", "nodeType": "ModifierDefinition", "parameters": { - "id": 137, + "id": 135, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 136, + "id": 134, "name": "addressToCheck", "nodeType": "VariableDeclaration", - "scope": 149, - "src": "2386:22:0", + "scope": 147, + "src": "2489:22:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -18938,10 +18860,10 @@ "typeString": "address" }, "typeName": { - "id": 135, + "id": 133, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2386:7:0", + "src": "2489:7:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -18951,16 +18873,16 @@ "visibility": "internal" } ], - "src": "2385:24:0" + "src": "2488:24:0" }, - "src": "2362:136:0", + "src": "2465:136:0", "visibility": "internal" }, { "body": { - "id": 166, + "id": 164, "nodeType": "Block", - "src": "2613:153:0", + "src": "2716:153:0", "statements": [ { "expression": { @@ -18972,7 +18894,7 @@ "typeIdentifier": "t_enum$_TransactionType_$12", "typeString": "enum Escrow_v1_0.TransactionType" }, - "id": 161, + "id": 159, "isConstant": false, "isLValue": false, "isPure": false, @@ -18983,26 +18905,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 156, + "id": 154, "name": "transactions", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 77, - "src": "2644:12:0", + "referencedDeclaration": 75, + "src": "2747:12:0", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Transaction_$73_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Transaction_$71_storage_$", "typeString": "mapping(bytes32 => struct Escrow_v1_0.Transaction storage ref)" } }, - "id": 158, + "id": 156, "indexExpression": { "argumentTypes": null, - "id": 157, + "id": 155, "name": "scriptHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 151, - "src": "2657:10:0", + "referencedDeclaration": 149, + "src": "2760:10:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -19013,21 +18935,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "2644:24:0", + "src": "2747:24:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Transaction_$73_storage", + "typeIdentifier": "t_struct$_Transaction_$71_storage", "typeString": "struct Escrow_v1_0.Transaction storage ref" } }, - "id": 159, + "id": 157, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "transactionType", "nodeType": "MemberAccess", - "referencedDeclaration": 48, - "src": "2644:40:0", + "referencedDeclaration": 46, + "src": "2747:40:0", "typeDescriptions": { "typeIdentifier": "t_enum$_TransactionType_$12", "typeString": "enum Escrow_v1_0.TransactionType" @@ -19037,18 +18959,18 @@ "operator": "==", "rightExpression": { "argumentTypes": null, - "id": 160, + "id": 158, "name": "transactionType", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 153, - "src": "2688:15:0", + "referencedDeclaration": 151, + "src": "2791:15:0", "typeDescriptions": { "typeIdentifier": "t_enum$_TransactionType_$12", "typeString": "enum Escrow_v1_0.TransactionType" } }, - "src": "2644:59:0", + "src": "2747:59:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -19057,14 +18979,14 @@ { "argumentTypes": null, "hexValue": "5472616e73616374696f6e207479706520646f6573206e6f74206d61746368", - "id": 162, + "id": 160, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "2705:33:0", + "src": "2808:33:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_c798eb33a8bd5d4c22212d5c8611219bb87da2d82aefe8e88b1f970a0f133cc3", @@ -19084,21 +19006,21 @@ "typeString": "literal_string \"Transaction type does not match\"" } ], - "id": 155, + "id": 153, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1389, - 1390 + 1382, + 1383 ], - "referencedDeclaration": 1390, - "src": "2623:7:0", + "referencedDeclaration": 1383, + "src": "2726:7:0", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 163, + "id": 161, "isConstant": false, "isLValue": false, "isPure": false, @@ -19106,38 +19028,38 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2623:125:0", + "src": "2726:125:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 164, + "id": 162, "nodeType": "ExpressionStatement", - "src": "2623:125:0" + "src": "2726:125:0" }, { - "id": 165, + "id": 163, "nodeType": "PlaceholderStatement", - "src": "2758:1:0" + "src": "2861:1:0" } ] }, "documentation": null, - "id": 167, + "id": 165, "name": "checkTransactionType", "nodeType": "ModifierDefinition", "parameters": { - "id": 154, + "id": 152, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 151, + "id": 149, "name": "scriptHash", "nodeType": "VariableDeclaration", - "scope": 167, - "src": "2543:18:0", + "scope": 165, + "src": "2646:18:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -19145,10 +19067,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 150, + "id": 148, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "2543:7:0", + "src": "2646:7:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -19159,11 +19081,11 @@ }, { "constant": false, - "id": 153, + "id": 151, "name": "transactionType", "nodeType": "VariableDeclaration", - "scope": 167, - "src": "2571:31:0", + "scope": 165, + "src": "2674:31:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -19172,11 +19094,11 @@ }, "typeName": { "contractScope": null, - "id": 152, + "id": 150, "name": "TransactionType", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 12, - "src": "2571:15:0", + "src": "2674:15:0", "typeDescriptions": { "typeIdentifier": "t_enum$_TransactionType_$12", "typeString": "enum Escrow_v1_0.TransactionType" @@ -19186,16 +19108,16 @@ "visibility": "internal" } ], - "src": "2533:75:0" + "src": "2636:75:0" }, - "src": "2504:262:0", + "src": "2607:262:0", "visibility": "internal" }, { "body": { - "id": 183, + "id": 181, "nodeType": "Block", - "src": "2811:152:0", + "src": "2914:152:0", "statements": [ { "expression": { @@ -19207,7 +19129,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 178, + "id": 176, "isConstant": false, "isLValue": false, "isPure": false, @@ -19216,18 +19138,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 172, + "id": 170, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1386, - "src": "2842:3:0", + "referencedDeclaration": 1379, + "src": "2945:3:0", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 173, + "id": 171, "isConstant": false, "isLValue": false, "isPure": false, @@ -19235,7 +19157,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "2842:10:0", + "src": "2945:10:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -19249,26 +19171,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 174, + "id": 172, "name": "transactions", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 77, - "src": "2856:12:0", + "referencedDeclaration": 75, + "src": "2959:12:0", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Transaction_$73_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Transaction_$71_storage_$", "typeString": "mapping(bytes32 => struct Escrow_v1_0.Transaction storage ref)" } }, - "id": 176, + "id": 174, "indexExpression": { "argumentTypes": null, - "id": 175, + "id": 173, "name": "scriptHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 169, - "src": "2869:10:0", + "referencedDeclaration": 167, + "src": "2972:10:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -19279,27 +19201,27 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "2856:24:0", + "src": "2959:24:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Transaction_$73_storage", + "typeIdentifier": "t_struct$_Transaction_$71_storage", "typeString": "struct Escrow_v1_0.Transaction storage ref" } }, - "id": 177, + "id": 175, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "buyer", "nodeType": "MemberAccess", - "referencedDeclaration": 54, - "src": "2856:30:0", + "referencedDeclaration": 52, + "src": "2959:30:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "2842:44:0", + "src": "2945:44:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -19308,14 +19230,14 @@ { "argumentTypes": null, "hexValue": "54686520696e69746961746f72206f6620746865207472616e73616374696f6e206973206e6f74206275796572", - "id": 179, + "id": 177, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "2888:47:0", + "src": "2991:47:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_b4fc72d2373e6fc668b2bc10a6c84713d84de5f4dc58bb69053e1a18ae67c2f9", @@ -19335,21 +19257,21 @@ "typeString": "literal_string \"The initiator of the transaction is not buyer\"" } ], - "id": 171, + "id": 169, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1389, - 1390 + 1382, + 1383 ], - "referencedDeclaration": 1390, - "src": "2821:7:0", + "referencedDeclaration": 1383, + "src": "2924:7:0", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 180, + "id": 178, "isConstant": false, "isLValue": false, "isPure": false, @@ -19357,38 +19279,38 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2821:124:0", + "src": "2924:124:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 181, + "id": 179, "nodeType": "ExpressionStatement", - "src": "2821:124:0" + "src": "2924:124:0" }, { - "id": 182, + "id": 180, "nodeType": "PlaceholderStatement", - "src": "2955:1:0" + "src": "3058:1:0" } ] }, "documentation": null, - "id": 184, + "id": 182, "name": "onlyBuyer", "nodeType": "ModifierDefinition", "parameters": { - "id": 170, + "id": 168, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 169, + "id": 167, "name": "scriptHash", "nodeType": "VariableDeclaration", - "scope": 184, - "src": "2791:18:0", + "scope": 182, + "src": "2894:18:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -19396,10 +19318,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 168, + "id": 166, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "2791:7:0", + "src": "2894:7:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -19409,16 +19331,16 @@ "visibility": "internal" } ], - "src": "2790:20:0" + "src": "2893:20:0" }, - "src": "2772:191:0", + "src": "2875:191:0", "visibility": "internal" }, { "body": { - "id": 235, + "id": 233, "nodeType": "Block", - "src": "4257:347:0", + "src": "4215:347:0", "statements": [ { "expression": { @@ -19426,12 +19348,12 @@ "arguments": [ { "argumentTypes": null, - "id": 211, + "id": 209, "name": "buyer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 186, - "src": "4296:5:0", + "referencedDeclaration": 184, + "src": "4254:5:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -19439,12 +19361,12 @@ }, { "argumentTypes": null, - "id": 212, + "id": 210, "name": "seller", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 188, - "src": "4315:6:0", + "referencedDeclaration": 186, + "src": "4273:6:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -19452,12 +19374,12 @@ }, { "argumentTypes": null, - "id": 213, + "id": 211, "name": "moderator", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 190, - "src": "4335:9:0", + "referencedDeclaration": 188, + "src": "4293:9:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -19465,12 +19387,12 @@ }, { "argumentTypes": null, - "id": 214, + "id": 212, "name": "threshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 192, - "src": "4358:9:0", + "referencedDeclaration": 190, + "src": "4316:9:0", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -19478,12 +19400,12 @@ }, { "argumentTypes": null, - "id": 215, + "id": 213, "name": "timeoutHours", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 194, - "src": "4381:12:0", + "referencedDeclaration": 192, + "src": "4339:12:0", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -19491,12 +19413,12 @@ }, { "argumentTypes": null, - "id": 216, + "id": 214, "name": "scriptHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 196, - "src": "4407:10:0", + "referencedDeclaration": 194, + "src": "4365:10:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -19506,18 +19428,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 217, + "id": 215, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1386, - "src": "4431:3:0", + "referencedDeclaration": 1379, + "src": "4389:3:0", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 218, + "id": 216, "isConstant": false, "isLValue": false, "isPure": false, @@ -19525,7 +19447,7 @@ "memberName": "value", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "4431:9:0", + "src": "4389:9:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -19533,12 +19455,12 @@ }, { "argumentTypes": null, - "id": 219, + "id": 217, "name": "uniqueId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 198, - "src": "4454:8:0", + "referencedDeclaration": 196, + "src": "4412:8:0", "typeDescriptions": { "typeIdentifier": "t_bytes20", "typeString": "bytes20" @@ -19548,18 +19470,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 220, + "id": 218, "name": "TransactionType", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12, - "src": "4476:15:0", + "src": "4434:15:0", "typeDescriptions": { "typeIdentifier": "t_type$_t_enum$_TransactionType_$12_$", "typeString": "type(enum Escrow_v1_0.TransactionType)" } }, - "id": 221, + "id": 219, "isConstant": false, "isLValue": false, "isPure": true, @@ -19567,7 +19489,7 @@ "memberName": "ETHER", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "4476:21:0", + "src": "4434:21:0", "typeDescriptions": { "typeIdentifier": "t_enum$_TransactionType_$12", "typeString": "enum Escrow_v1_0.TransactionType" @@ -19579,14 +19501,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 223, + "id": 221, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4519:1:0", + "src": "4477:1:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -19602,20 +19524,20 @@ "typeString": "int_const 0" } ], - "id": 222, + "id": 220, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "4511:7:0", + "src": "4469:7:0", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 224, + "id": 222, "isConstant": false, "isLValue": false, "isPure": true, @@ -19623,7 +19545,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4511:10:0", + "src": "4469:10:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -19673,18 +19595,18 @@ "typeString": "address" } ], - "id": 210, + "id": 208, "name": "_addTransaction", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1212, - "src": "4267:15:0", + "referencedDeclaration": 1205, + "src": "4225:15:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_address_$_t_uint8_$_t_uint32_$_t_bytes32_$_t_uint256_$_t_bytes20_$_t_enum$_TransactionType_$12_$_t_address_$returns$__$", "typeString": "function (address,address,address,uint8,uint32,bytes32,uint256,bytes20,enum Escrow_v1_0.TransactionType,address)" } }, - "id": 225, + "id": 223, "isConstant": false, "isLValue": false, "isPure": false, @@ -19692,15 +19614,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4267:264:0", + "src": "4225:264:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 226, + "id": 224, "nodeType": "ExpressionStatement", - "src": "4267:264:0" + "src": "4225:264:0" }, { "eventCall": { @@ -19708,12 +19630,12 @@ "arguments": [ { "argumentTypes": null, - "id": 228, + "id": 226, "name": "scriptHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 196, - "src": "4562:10:0", + "referencedDeclaration": 194, + "src": "4520:10:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -19723,18 +19645,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 229, + "id": 227, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1386, - "src": "4574:3:0", + "referencedDeclaration": 1379, + "src": "4532:3:0", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 230, + "id": 228, "isConstant": false, "isLValue": false, "isPure": false, @@ -19742,7 +19664,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "4574:10:0", + "src": "4532:10:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -19752,18 +19674,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 231, + "id": 229, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1386, - "src": "4586:3:0", + "referencedDeclaration": 1379, + "src": "4544:3:0", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 232, + "id": 230, "isConstant": false, "isLValue": false, "isPure": false, @@ -19771,7 +19693,7 @@ "memberName": "value", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "4586:9:0", + "src": "4544:9:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -19793,18 +19715,18 @@ "typeString": "uint256" } ], - "id": 227, + "id": 225, "name": "Funded", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 38, - "src": "4555:6:0", + "src": "4513:6:0", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (bytes32,address,uint256)" } }, - "id": 233, + "id": 231, "isConstant": false, "isLValue": false, "isPure": false, @@ -19812,20 +19734,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4555:41:0", + "src": "4513:41:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 234, + "id": 232, "nodeType": "EmitStatement", - "src": "4550:46:0" + "src": "4508:46:0" } ] }, - "documentation": "dev Add new transaction in the contract\nparam buyer The buyer of the transaction\nparam seller The seller of the listing associated with the transaction\nparam moderator Moderator for this transaction\nparam scriptHash keccak256 hash of the redeem script\nparam threshold Minimum number of singatures required to released funds\nparam timeoutHours Hours after which seller can release funds into his favour by signing transaction\nparam uniqueId bytes20 unique id for the transaction, generated by ETH wallet\nedeem Script format will be following\n\nscripthash-> keccak256(uniqueId, threshold, timeoutHours, buyer, seller, moderator)\nass amount of the ethers to be put in escrow\nlease keep in mind you will have to add moderator fees also in the value", - "id": 236, + "documentation": "@dev Add new transaction in the contract\n@param buyer The buyer of the transaction\n@param seller The seller of the listing associated with the transaction\n@param moderator Moderator for this transaction\n@param threshold Minimum number of signatures required to released funds\n@param timeoutHours Hours after which seller can release funds into his favour by signing transaction unilaterally\n@param scriptHash keccak256 hash of the redeem script\n@param uniqueId bytes20 unique id for the transaction, generated by ETH wallet\nRedeem Script format will be following\n\nPass amount of the ethers to be put in escrow", + "id": 234, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -19834,115 +19756,115 @@ "arguments": [ { "argumentTypes": null, - "id": 201, + "id": 199, "name": "scriptHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 196, - "src": "4180:10:0", + "referencedDeclaration": 194, + "src": "4138:10:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } } ], - "id": 202, + "id": 200, "modifierName": { "argumentTypes": null, - "id": 200, - "name": "transactionDoesNotExists", + "id": 198, + "name": "transactionDoesNotExist", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 117, - "src": "4155:24:0", + "referencedDeclaration": 115, + "src": "4114:23:0", "typeDescriptions": { "typeIdentifier": "t_modifier$_t_bytes32_$", "typeString": "modifier (bytes32)" } }, "nodeType": "ModifierInvocation", - "src": "4155:36:0" + "src": "4114:35:0" }, { "arguments": [ { "argumentTypes": null, - "id": 204, + "id": 202, "name": "buyer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 186, - "src": "4215:5:0", + "referencedDeclaration": 184, + "src": "4173:5:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], - "id": 205, + "id": 203, "modifierName": { "argumentTypes": null, - "id": 203, + "id": 201, "name": "nonZeroAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 149, - "src": "4200:14:0", + "referencedDeclaration": 147, + "src": "4158:14:0", "typeDescriptions": { "typeIdentifier": "t_modifier$_t_address_$", "typeString": "modifier (address)" } }, "nodeType": "ModifierInvocation", - "src": "4200:21:0" + "src": "4158:21:0" }, { "arguments": [ { "argumentTypes": null, - "id": 207, + "id": 205, "name": "seller", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 188, - "src": "4245:6:0", + "referencedDeclaration": 186, + "src": "4203:6:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], - "id": 208, + "id": 206, "modifierName": { "argumentTypes": null, - "id": 206, + "id": 204, "name": "nonZeroAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 149, - "src": "4230:14:0", + "referencedDeclaration": 147, + "src": "4188:14:0", "typeDescriptions": { "typeIdentifier": "t_modifier$_t_address_$", "typeString": "modifier (address)" } }, "nodeType": "ModifierInvocation", - "src": "4230:22:0" + "src": "4188:22:0" } ], "name": "addTransaction", "nodeType": "FunctionDefinition", "parameters": { - "id": 199, + "id": 197, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 186, + "id": 184, "name": "buyer", "nodeType": "VariableDeclaration", - "scope": 236, - "src": "3935:13:0", + "scope": 234, + "src": "3894:13:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -19950,10 +19872,10 @@ "typeString": "address" }, "typeName": { - "id": 185, + "id": 183, "name": "address", "nodeType": "ElementaryTypeName", - "src": "3935:7:0", + "src": "3894:7:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -19964,11 +19886,11 @@ }, { "constant": false, - "id": 188, + "id": 186, "name": "seller", "nodeType": "VariableDeclaration", - "scope": 236, - "src": "3958:14:0", + "scope": 234, + "src": "3917:14:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -19976,10 +19898,10 @@ "typeString": "address" }, "typeName": { - "id": 187, + "id": 185, "name": "address", "nodeType": "ElementaryTypeName", - "src": "3958:7:0", + "src": "3917:7:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -19990,11 +19912,11 @@ }, { "constant": false, - "id": 190, + "id": 188, "name": "moderator", "nodeType": "VariableDeclaration", - "scope": 236, - "src": "3982:17:0", + "scope": 234, + "src": "3941:17:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -20002,10 +19924,10 @@ "typeString": "address" }, "typeName": { - "id": 189, + "id": 187, "name": "address", "nodeType": "ElementaryTypeName", - "src": "3982:7:0", + "src": "3941:7:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -20016,11 +19938,11 @@ }, { "constant": false, - "id": 192, + "id": 190, "name": "threshold", "nodeType": "VariableDeclaration", - "scope": 236, - "src": "4009:15:0", + "scope": 234, + "src": "3968:15:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -20028,10 +19950,10 @@ "typeString": "uint8" }, "typeName": { - "id": 191, + "id": 189, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "4009:5:0", + "src": "3968:5:0", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -20042,11 +19964,11 @@ }, { "constant": false, - "id": 194, + "id": 192, "name": "timeoutHours", "nodeType": "VariableDeclaration", - "scope": 236, - "src": "4034:19:0", + "scope": 234, + "src": "3993:19:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -20054,10 +19976,10 @@ "typeString": "uint32" }, "typeName": { - "id": 193, + "id": 191, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "4034:6:0", + "src": "3993:6:0", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -20068,11 +19990,11 @@ }, { "constant": false, - "id": 196, + "id": 194, "name": "scriptHash", "nodeType": "VariableDeclaration", - "scope": 236, - "src": "4063:18:0", + "scope": 234, + "src": "4022:18:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -20080,10 +20002,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 195, + "id": 193, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "4063:7:0", + "src": "4022:7:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -20094,11 +20016,11 @@ }, { "constant": false, - "id": 198, + "id": 196, "name": "uniqueId", "nodeType": "VariableDeclaration", - "scope": 236, - "src": "4091:16:0", + "scope": 234, + "src": "4050:16:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -20106,10 +20028,10 @@ "typeString": "bytes20" }, "typeName": { - "id": 197, + "id": 195, "name": "bytes20", "nodeType": "ElementaryTypeName", - "src": "4091:7:0", + "src": "4050:7:0", "typeDescriptions": { "typeIdentifier": "t_bytes20", "typeString": "bytes20" @@ -20119,17 +20041,17 @@ "visibility": "internal" } ], - "src": "3925:188:0" + "src": "3884:188:0" }, "payable": true, "returnParameters": { - "id": 209, + "id": 207, "nodeType": "ParameterList", "parameters": [], - "src": "4257:0:0" + "src": "4215:0:0" }, - "scope": 1213, - "src": "3902:702:0", + "scope": 1206, + "src": "3861:701:0", "stateMutability": "payable", "superFunction": null, "visibility": "external" @@ -20138,7 +20060,7 @@ "body": { "id": 307, "nodeType": "Block", - "src": "6138:587:0", + "src": "5943:597:0", "statements": [ { "expression": { @@ -20146,12 +20068,12 @@ "arguments": [ { "argumentTypes": null, - "id": 270, + "id": 268, "name": "buyer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 238, - "src": "6178:5:0", + "referencedDeclaration": 236, + "src": "5983:5:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -20159,12 +20081,12 @@ }, { "argumentTypes": null, - "id": 271, + "id": 269, "name": "seller", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 240, - "src": "6197:6:0", + "referencedDeclaration": 238, + "src": "6002:6:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -20172,12 +20094,12 @@ }, { "argumentTypes": null, - "id": 272, + "id": 270, "name": "moderator", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 242, - "src": "6217:9:0", + "referencedDeclaration": 240, + "src": "6022:9:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -20185,12 +20107,12 @@ }, { "argumentTypes": null, - "id": 273, + "id": 271, "name": "threshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 244, - "src": "6240:9:0", + "referencedDeclaration": 242, + "src": "6045:9:0", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -20198,12 +20120,12 @@ }, { "argumentTypes": null, - "id": 274, + "id": 272, "name": "timeoutHours", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 246, - "src": "6263:12:0", + "referencedDeclaration": 244, + "src": "6068:12:0", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -20211,12 +20133,12 @@ }, { "argumentTypes": null, - "id": 275, + "id": 273, "name": "scriptHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 248, - "src": "6289:10:0", + "referencedDeclaration": 246, + "src": "6094:10:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -20224,12 +20146,12 @@ }, { "argumentTypes": null, - "id": 276, + "id": 274, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 250, - "src": "6313:5:0", + "referencedDeclaration": 248, + "src": "6118:5:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -20237,12 +20159,12 @@ }, { "argumentTypes": null, - "id": 277, + "id": 275, "name": "uniqueId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 252, - "src": "6332:8:0", + "referencedDeclaration": 250, + "src": "6137:8:0", "typeDescriptions": { "typeIdentifier": "t_bytes20", "typeString": "bytes20" @@ -20252,18 +20174,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 278, + "id": 276, "name": "TransactionType", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12, - "src": "6354:15:0", + "src": "6159:15:0", "typeDescriptions": { "typeIdentifier": "t_type$_t_enum$_TransactionType_$12_$", "typeString": "type(enum Escrow_v1_0.TransactionType)" } }, - "id": 279, + "id": 277, "isConstant": false, "isLValue": false, "isPure": true, @@ -20271,7 +20193,7 @@ "memberName": "TOKEN", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "6354:21:0", + "src": "6159:21:0", "typeDescriptions": { "typeIdentifier": "t_enum$_TransactionType_$12", "typeString": "enum Escrow_v1_0.TransactionType" @@ -20279,12 +20201,12 @@ }, { "argumentTypes": null, - "id": 280, + "id": 278, "name": "tokenAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 254, - "src": "6389:12:0", + "referencedDeclaration": 252, + "src": "6194:12:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -20334,18 +20256,18 @@ "typeString": "address" } ], - "id": 269, + "id": 267, "name": "_addTransaction", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1212, - "src": "6149:15:0", + "referencedDeclaration": 1205, + "src": "5954:15:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_address_$_t_uint8_$_t_uint32_$_t_bytes32_$_t_uint256_$_t_bytes20_$_t_enum$_TransactionType_$12_$_t_address_$returns$__$", "typeString": "function (address,address,address,uint8,uint32,bytes32,uint256,bytes20,enum Escrow_v1_0.TransactionType,address)" } }, - "id": 281, + "id": 279, "isConstant": false, "isLValue": false, "isPure": false, @@ -20353,43 +20275,43 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6149:262:0", + "src": "5954:262:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 282, + "id": 280, "nodeType": "ExpressionStatement", - "src": "6149:262:0" + "src": "5954:262:0" }, { "assignments": [ - 284 + 282 ], "declarations": [ { "constant": false, - "id": 284, + "id": 282, "name": "token", "nodeType": "VariableDeclaration", "scope": 308, - "src": "6422:20:0", + "src": "6227:20:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_ITokenContract_$1243", + "typeIdentifier": "t_contract$_ITokenContract_$1236", "typeString": "contract ITokenContract" }, "typeName": { "contractScope": null, - "id": 283, + "id": 281, "name": "ITokenContract", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1243, - "src": "6422:14:0", + "referencedDeclaration": 1236, + "src": "6227:14:0", "typeDescriptions": { - "typeIdentifier": "t_contract$_ITokenContract_$1243", + "typeIdentifier": "t_contract$_ITokenContract_$1236", "typeString": "contract ITokenContract" } }, @@ -20397,18 +20319,18 @@ "visibility": "internal" } ], - "id": 288, + "id": 286, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 286, + "id": 284, "name": "tokenAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 254, - "src": "6460:12:0", + "referencedDeclaration": 252, + "src": "6265:12:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -20422,18 +20344,18 @@ "typeString": "address" } ], - "id": 285, + "id": 283, "name": "ITokenContract", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1243, - "src": "6445:14:0", + "referencedDeclaration": 1236, + "src": "6250:14:0", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ITokenContract_$1243_$", + "typeIdentifier": "t_type$_t_contract$_ITokenContract_$1236_$", "typeString": "type(contract ITokenContract)" } }, - "id": 287, + "id": 285, "isConstant": false, "isLValue": false, "isPure": false, @@ -20441,14 +20363,14 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6445:28:0", + "src": "6250:28:0", "typeDescriptions": { - "typeIdentifier": "t_contract$_ITokenContract_$1243", + "typeIdentifier": "t_contract$_ITokenContract_$1236", "typeString": "contract ITokenContract" } }, "nodeType": "VariableDeclarationStatement", - "src": "6422:51:0" + "src": "6227:51:0" }, { "expression": { @@ -20461,18 +20383,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 292, + "id": 290, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1386, - "src": "6524:3:0", + "referencedDeclaration": 1379, + "src": "6329:3:0", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 293, + "id": 291, "isConstant": false, "isLValue": false, "isPure": false, @@ -20480,7 +20402,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "6524:10:0", + "src": "6329:10:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -20488,15 +20410,53 @@ }, { "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 293, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1396, + "src": "6349:4:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Escrow_v1_0_$1206", + "typeString": "contract Escrow_v1_0" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Escrow_v1_0_$1206", + "typeString": "contract Escrow_v1_0" + } + ], + "id": 292, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "6341:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, "id": 294, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1403, - "src": "6536:4:0", + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6341:13:0", "typeDescriptions": { - "typeIdentifier": "t_contract$_Escrow_v1_0_$1213", - "typeString": "contract Escrow_v1_0" + "typeIdentifier": "t_address", + "typeString": "address" } }, { @@ -20505,8 +20465,8 @@ "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 250, - "src": "6542:5:0", + "referencedDeclaration": 248, + "src": "6356:5:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -20520,8 +20480,8 @@ "typeString": "address" }, { - "typeIdentifier": "t_contract$_Escrow_v1_0_$1213", - "typeString": "contract Escrow_v1_0" + "typeIdentifier": "t_address", + "typeString": "address" }, { "typeIdentifier": "t_uint256", @@ -20530,26 +20490,26 @@ ], "expression": { "argumentTypes": null, - "id": 290, + "id": 288, "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 284, - "src": "6505:5:0", + "referencedDeclaration": 282, + "src": "6310:5:0", "typeDescriptions": { - "typeIdentifier": "t_contract$_ITokenContract_$1243", + "typeIdentifier": "t_contract$_ITokenContract_$1236", "typeString": "contract ITokenContract" } }, - "id": 291, + "id": 289, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "transferFrom", "nodeType": "MemberAccess", - "referencedDeclaration": 1242, - "src": "6505:18:0", + "referencedDeclaration": 1235, + "src": "6310:18:0", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$", "typeString": "function (address,address,uint256) external returns (bool)" @@ -20563,7 +20523,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6505:43:0", + "src": "6310:52:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -20571,7 +20531,7 @@ }, { "argumentTypes": null, - "hexValue": "546f6b656e207472616e73666572206661696c65642c206d6179626520796f7520646964206e6f7420617070726f766520657363726f7720636f6e747261637420746f207370656e64206f6e20626568616c66206f66206275796572", + "hexValue": "546f6b656e207472616e73666572206661696c65642c206d6179626520796f7520646964206e6f7420617070726f766520657363726f7720636f6e747261637420746f207370656e64206f6e20626568616c66206f662073656e646572", "id": 297, "isConstant": false, "isLValue": false, @@ -20579,13 +20539,13 @@ "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "6562:94:0", + "src": "6376:95:0", "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_stringliteral_d9d07068d589bc4adc53018a3c57c159ec128fdfb62732a5fa9410e76cf03318", - "typeString": "literal_string \"Token transfer failed, maybe you did not approve escrow contract to spend on behalf of buyer\"" + "typeIdentifier": "t_stringliteral_d81b627ac67759234197a5bdf4d9f7d33298e824ce7bd47e08ce9919cd96c696", + "typeString": "literal_string \"Token transfer failed, maybe you did not approve escrow contract to spend on behalf of sender\"" }, - "value": "Token transfer failed, maybe you did not approve escrow contract to spend on behalf of buyer" + "value": "Token transfer failed, maybe you did not approve escrow contract to spend on behalf of sender" } ], "expression": { @@ -20595,19 +20555,19 @@ "typeString": "bool" }, { - "typeIdentifier": "t_stringliteral_d9d07068d589bc4adc53018a3c57c159ec128fdfb62732a5fa9410e76cf03318", - "typeString": "literal_string \"Token transfer failed, maybe you did not approve escrow contract to spend on behalf of buyer\"" + "typeIdentifier": "t_stringliteral_d81b627ac67759234197a5bdf4d9f7d33298e824ce7bd47e08ce9919cd96c696", + "typeString": "literal_string \"Token transfer failed, maybe you did not approve escrow contract to spend on behalf of sender\"" } ], - "id": 289, + "id": 287, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1389, - 1390 + 1382, + 1383 ], - "referencedDeclaration": 1390, - "src": "6484:7:0", + "referencedDeclaration": 1383, + "src": "6289:7:0", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" @@ -20621,7 +20581,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6484:182:0", + "src": "6289:192:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" @@ -20629,7 +20589,7 @@ }, "id": 299, "nodeType": "ExpressionStatement", - "src": "6484:182:0" + "src": "6289:192:0" }, { "eventCall": { @@ -20641,8 +20601,8 @@ "name": "scriptHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 248, - "src": "6688:10:0", + "referencedDeclaration": 246, + "src": "6503:10:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -20656,8 +20616,8 @@ "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1386, - "src": "6700:3:0", + "referencedDeclaration": 1379, + "src": "6515:3:0", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" @@ -20671,7 +20631,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "6700:10:0", + "src": "6515:10:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -20683,8 +20643,8 @@ "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 250, - "src": "6712:5:0", + "referencedDeclaration": 248, + "src": "6527:5:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -20711,7 +20671,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 38, - "src": "6681:6:0", + "src": "6496:6:0", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (bytes32,address,uint256)" @@ -20725,7 +20685,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6681:37:0", + "src": "6496:37:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" @@ -20733,11 +20693,11 @@ }, "id": 306, "nodeType": "EmitStatement", - "src": "6676:42:0" + "src": "6491:42:0" } ] }, - "documentation": "dev Add new transaction in the contract\nparam buyer The buyer of the transaction\nparam seller The seller of the listing associated with the transaction\nparam moderator Moderator for this transaction\nparam scriptHash keccak256 hash of the redeem script\nparam threshold Minimum number of singatures required to released funds\nparam timeoutHours Hours after which seller can release funds into his favour by signing transaction\nparam value Amount of tokens to be put in escrow\nparam uniqueId bytes20 unique id for the transaction, generated by ETH wallet\nparam tokenAddress Address of the token to be used\nedeem Script format will be following\n\nscripthash-> keccak256(uniqueId, threshold, timeoutHours, buyer, seller, moderator, tokenAddress)\npprove escrow contract to spend amount of token on your behalf\nlease keep in mind you will have to add moderator fees also in the value", + "documentation": "@dev Add new transaction in the contract\n@param buyer The buyer of the transaction\n@param seller The seller of the listing associated with the transaction\n@param moderator Moderator for this transaction\n@param threshold Minimum number of signatures required to released funds\n@param timeoutHours Hours after which seller can release funds into his favour by signing transaction unilaterally\n@param scriptHash keccak256 hash of the redeem script\n@param value Amount of tokens to be put in escrow\n@param uniqueId bytes20 unique id for the transaction, generated by ETH wallet\n@param tokenAddress Address of the token to be used\nRedeem Script format will be following\n\nApprove escrow contract to spend amount of token on sender's behalf", "id": 308, "implemented": true, "isConstructor": false, @@ -20747,148 +20707,148 @@ "arguments": [ { "argumentTypes": null, - "id": 257, + "id": 255, "name": "scriptHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 248, - "src": "6024:10:0", + "referencedDeclaration": 246, + "src": "5829:10:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } } ], - "id": 258, + "id": 256, "modifierName": { "argumentTypes": null, - "id": 256, - "name": "transactionDoesNotExists", + "id": 254, + "name": "transactionDoesNotExist", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 117, - "src": "5999:24:0", + "referencedDeclaration": 115, + "src": "5805:23:0", "typeDescriptions": { "typeIdentifier": "t_modifier$_t_bytes32_$", "typeString": "modifier (bytes32)" } }, "nodeType": "ModifierInvocation", - "src": "5999:36:0" + "src": "5805:35:0" }, { "arguments": [ { "argumentTypes": null, - "id": 260, + "id": 258, "name": "buyer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 238, - "src": "6059:5:0", + "referencedDeclaration": 236, + "src": "5864:5:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], - "id": 261, + "id": 259, "modifierName": { "argumentTypes": null, - "id": 259, + "id": 257, "name": "nonZeroAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 149, - "src": "6044:14:0", + "referencedDeclaration": 147, + "src": "5849:14:0", "typeDescriptions": { "typeIdentifier": "t_modifier$_t_address_$", "typeString": "modifier (address)" } }, "nodeType": "ModifierInvocation", - "src": "6044:21:0" + "src": "5849:21:0" }, { "arguments": [ { "argumentTypes": null, - "id": 263, + "id": 261, "name": "seller", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 240, - "src": "6089:6:0", + "referencedDeclaration": 238, + "src": "5894:6:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], - "id": 264, + "id": 262, "modifierName": { "argumentTypes": null, - "id": 262, + "id": 260, "name": "nonZeroAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 149, - "src": "6074:14:0", + "referencedDeclaration": 147, + "src": "5879:14:0", "typeDescriptions": { "typeIdentifier": "t_modifier$_t_address_$", "typeString": "modifier (address)" } }, "nodeType": "ModifierInvocation", - "src": "6074:22:0" + "src": "5879:22:0" }, { "arguments": [ { "argumentTypes": null, - "id": 266, + "id": 264, "name": "tokenAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 254, - "src": "6120:12:0", + "referencedDeclaration": 252, + "src": "5925:12:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], - "id": 267, + "id": 265, "modifierName": { "argumentTypes": null, - "id": 265, + "id": 263, "name": "nonZeroAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 149, - "src": "6105:14:0", + "referencedDeclaration": 147, + "src": "5910:14:0", "typeDescriptions": { "typeIdentifier": "t_modifier$_t_address_$", "typeString": "modifier (address)" } }, "nodeType": "ModifierInvocation", - "src": "6105:28:0" + "src": "5910:28:0" } ], "name": "addTokenTransaction", "nodeType": "FunctionDefinition", "parameters": { - "id": 255, + "id": 253, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 238, + "id": 236, "name": "buyer", "nodeType": "VariableDeclaration", "scope": 308, - "src": "5742:13:0", + "src": "5548:13:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -20896,10 +20856,10 @@ "typeString": "address" }, "typeName": { - "id": 237, + "id": 235, "name": "address", "nodeType": "ElementaryTypeName", - "src": "5742:7:0", + "src": "5548:7:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -20910,11 +20870,11 @@ }, { "constant": false, - "id": 240, + "id": 238, "name": "seller", "nodeType": "VariableDeclaration", "scope": 308, - "src": "5765:14:0", + "src": "5571:14:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -20922,10 +20882,10 @@ "typeString": "address" }, "typeName": { - "id": 239, + "id": 237, "name": "address", "nodeType": "ElementaryTypeName", - "src": "5765:7:0", + "src": "5571:7:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -20936,11 +20896,11 @@ }, { "constant": false, - "id": 242, + "id": 240, "name": "moderator", "nodeType": "VariableDeclaration", "scope": 308, - "src": "5789:17:0", + "src": "5595:17:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -20948,10 +20908,10 @@ "typeString": "address" }, "typeName": { - "id": 241, + "id": 239, "name": "address", "nodeType": "ElementaryTypeName", - "src": "5789:7:0", + "src": "5595:7:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -20962,11 +20922,11 @@ }, { "constant": false, - "id": 244, + "id": 242, "name": "threshold", "nodeType": "VariableDeclaration", "scope": 308, - "src": "5816:15:0", + "src": "5622:15:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -20974,10 +20934,10 @@ "typeString": "uint8" }, "typeName": { - "id": 243, + "id": 241, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "5816:5:0", + "src": "5622:5:0", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -20988,11 +20948,11 @@ }, { "constant": false, - "id": 246, + "id": 244, "name": "timeoutHours", "nodeType": "VariableDeclaration", "scope": 308, - "src": "5841:19:0", + "src": "5647:19:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -21000,10 +20960,10 @@ "typeString": "uint32" }, "typeName": { - "id": 245, + "id": 243, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "5841:6:0", + "src": "5647:6:0", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -21014,11 +20974,11 @@ }, { "constant": false, - "id": 248, + "id": 246, "name": "scriptHash", "nodeType": "VariableDeclaration", "scope": 308, - "src": "5870:18:0", + "src": "5676:18:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -21026,10 +20986,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 247, + "id": 245, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "5870:7:0", + "src": "5676:7:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -21040,11 +21000,11 @@ }, { "constant": false, - "id": 250, + "id": 248, "name": "value", "nodeType": "VariableDeclaration", "scope": 308, - "src": "5898:13:0", + "src": "5704:13:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -21052,10 +21012,10 @@ "typeString": "uint256" }, "typeName": { - "id": 249, + "id": 247, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "5898:7:0", + "src": "5704:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -21066,11 +21026,11 @@ }, { "constant": false, - "id": 252, + "id": 250, "name": "uniqueId", "nodeType": "VariableDeclaration", "scope": 308, - "src": "5921:16:0", + "src": "5727:16:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -21078,10 +21038,10 @@ "typeString": "bytes20" }, "typeName": { - "id": 251, + "id": 249, "name": "bytes20", "nodeType": "ElementaryTypeName", - "src": "5921:7:0", + "src": "5727:7:0", "typeDescriptions": { "typeIdentifier": "t_bytes20", "typeString": "bytes20" @@ -21092,11 +21052,11 @@ }, { "constant": false, - "id": 254, + "id": 252, "name": "tokenAddress", "nodeType": "VariableDeclaration", "scope": 308, - "src": "5947:20:0", + "src": "5753:20:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -21104,10 +21064,10 @@ "typeString": "address" }, "typeName": { - "id": 253, + "id": 251, "name": "address", "nodeType": "ElementaryTypeName", - "src": "5947:7:0", + "src": "5753:7:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -21117,147 +21077,120 @@ "visibility": "internal" } ], - "src": "5732:241:0" + "src": "5538:241:0" }, "payable": false, "returnParameters": { - "id": 268, + "id": 266, "nodeType": "ParameterList", "parameters": [], - "src": "6138:0:0" + "src": "5943:0:0" }, - "scope": 1213, - "src": "5704:1021:0", + "scope": 1206, + "src": "5510:1030:0", "stateMutability": "nonpayable", "superFunction": null, "visibility": "external" }, { "body": { - "id": 326, + "id": 324, "nodeType": "Block", - "src": "7101:76:0", + "src": "6927:75:0", "statements": [ { "expression": { "argumentTypes": null, - "id": 324, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 317, - "name": "check", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 315, - "src": "7111:5:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { + "baseExpression": { "argumentTypes": null, - "baseExpression": { + "expression": { "argumentTypes": null, - "expression": { + "baseExpression": { "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 318, - "name": "transactions", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 77, - "src": "7119:12:0", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Transaction_$73_storage_$", - "typeString": "mapping(bytes32 => struct Escrow_v1_0.Transaction storage ref)" - } - }, - "id": 320, - "indexExpression": { - "argumentTypes": null, - "id": 319, - "name": "scriptHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 310, - "src": "7132:10:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7119:24:0", + "id": 317, + "name": "transactions", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 75, + "src": "6944:12:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Transaction_$73_storage", - "typeString": "struct Escrow_v1_0.Transaction storage ref" + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Transaction_$71_storage_$", + "typeString": "mapping(bytes32 => struct Escrow_v1_0.Transaction storage ref)" + } + }, + "id": 319, + "indexExpression": { + "argumentTypes": null, + "id": 318, + "name": "scriptHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 310, + "src": "6957:10:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" } }, - "id": 321, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberName": "beneficiaries", - "nodeType": "MemberAccess", - "referencedDeclaration": 72, - "src": "7119:38:0", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - } - }, - "id": 323, - "indexExpression": { - "argumentTypes": null, - "id": 322, - "name": "beneficiary", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 312, - "src": "7158:11:0", + "nodeType": "IndexAccess", + "src": "6944:24:0", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_struct$_Transaction_$71_storage", + "typeString": "struct Escrow_v1_0.Transaction storage ref" } }, + "id": 320, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7119:51:0", + "memberName": "beneficiaries", + "nodeType": "MemberAccess", + "referencedDeclaration": 70, + "src": "6944:38:0", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 322, + "indexExpression": { + "argumentTypes": null, + "id": 321, + "name": "beneficiary", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 312, + "src": "6983:11:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" } }, - "src": "7111:59:0", + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6944:51:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 325, - "nodeType": "ExpressionStatement", - "src": "7111:59:0" + "functionReturnParameters": 316, + "id": 323, + "nodeType": "Return", + "src": "6937:58:0" } ] }, - "documentation": "@dev Check whether given address was a beneficiary of transaction execution or not\n@param scriptHash script hash of the transaction\n@param beneficiary Beneficiary address to be checked", - "id": 327, + "documentation": "@dev This method will check whether given address was a beneficiary of transaction execution or not\n@param scriptHash script hash of the transaction\n@param beneficiary Beneficiary address to be checked", + "id": 325, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -21273,8 +21206,8 @@ "id": 310, "name": "scriptHash", "nodeType": "VariableDeclaration", - "scope": 327, - "src": "6984:18:0", + "scope": 325, + "src": "6816:18:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -21285,7 +21218,7 @@ "id": 309, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "6984:7:0", + "src": "6816:7:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -21299,8 +21232,8 @@ "id": 312, "name": "beneficiary", "nodeType": "VariableDeclaration", - "scope": 327, - "src": "7012:19:0", + "scope": 325, + "src": "6844:19:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -21311,7 +21244,7 @@ "id": 311, "name": "address", "nodeType": "ElementaryTypeName", - "src": "7012:7:0", + "src": "6844:7:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -21321,7 +21254,7 @@ "visibility": "internal" } ], - "src": "6974:63:0" + "src": "6806:63:0" }, "payable": false, "returnParameters": { @@ -21331,10 +21264,10 @@ { "constant": false, "id": 315, - "name": "check", + "name": "", "nodeType": "VariableDeclaration", - "scope": 327, - "src": "7085:10:0", + "scope": 325, + "src": "6917:4:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -21345,7 +21278,7 @@ "id": 314, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "7085:4:0", + "src": "6917:4:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -21355,140 +21288,113 @@ "visibility": "internal" } ], - "src": "7084:12:0" + "src": "6916:6:0" }, - "scope": 1213, - "src": "6949:228:0", + "scope": 1206, + "src": "6781:221:0", "stateMutability": "view", "superFunction": null, "visibility": "external" }, { "body": { - "id": 345, + "id": 341, "nodeType": "Block", - "src": "7538:61:0", + "src": "7375:61:0", "statements": [ { "expression": { "argumentTypes": null, - "id": 343, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 336, - "name": "vote", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 334, - "src": "7548:4:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { + "baseExpression": { "argumentTypes": null, - "baseExpression": { + "expression": { "argumentTypes": null, - "expression": { + "baseExpression": { "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 337, - "name": "transactions", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 77, - "src": "7555:12:0", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Transaction_$73_storage_$", - "typeString": "mapping(bytes32 => struct Escrow_v1_0.Transaction storage ref)" - } - }, - "id": 339, - "indexExpression": { - "argumentTypes": null, - "id": 338, - "name": "scriptHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 329, - "src": "7568:10:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7555:24:0", + "id": 334, + "name": "transactions", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 75, + "src": "7392:12:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Transaction_$73_storage", - "typeString": "struct Escrow_v1_0.Transaction storage ref" + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Transaction_$71_storage_$", + "typeString": "mapping(bytes32 => struct Escrow_v1_0.Transaction storage ref)" + } + }, + "id": 336, + "indexExpression": { + "argumentTypes": null, + "id": 335, + "name": "scriptHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 327, + "src": "7405:10:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" } }, - "id": 340, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberName": "voted", - "nodeType": "MemberAccess", - "referencedDeclaration": 68, - "src": "7555:30:0", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - } - }, - "id": 342, - "indexExpression": { - "argumentTypes": null, - "id": 341, - "name": "party", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 331, - "src": "7586:5:0", + "nodeType": "IndexAccess", + "src": "7392:24:0", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_struct$_Transaction_$71_storage", + "typeString": "struct Escrow_v1_0.Transaction storage ref" } }, + "id": 337, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7555:37:0", + "memberName": "voted", + "nodeType": "MemberAccess", + "referencedDeclaration": 66, + "src": "7392:30:0", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 339, + "indexExpression": { + "argumentTypes": null, + "id": 338, + "name": "party", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 329, + "src": "7423:5:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" } }, - "src": "7548:44:0", + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "7392:37:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 344, - "nodeType": "ExpressionStatement", - "src": "7548:44:0" + "functionReturnParameters": 333, + "id": 340, + "nodeType": "Return", + "src": "7385:44:0" } ] }, - "documentation": "@dev Check whether given party has voted or not\n@param scriptHash script hash of the transaction\n@param party Address of the party whose vote has to be checked\n@return bool vote", - "id": 346, + "documentation": "@dev This method will check whether given party has voted or not\n@param scriptHash script hash of the transaction\n@param party Address of the party whose vote has to be checked\n@return bool vote", + "id": 342, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -21496,16 +21402,16 @@ "name": "checkVote", "nodeType": "FunctionDefinition", "parameters": { - "id": 332, + "id": 330, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 329, + "id": 327, "name": "scriptHash", "nodeType": "VariableDeclaration", - "scope": 346, - "src": "7428:18:0", + "scope": 342, + "src": "7270:18:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -21513,10 +21419,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 328, + "id": 326, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "7428:7:0", + "src": "7270:7:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -21527,11 +21433,11 @@ }, { "constant": false, - "id": 331, + "id": 329, "name": "party", "nodeType": "VariableDeclaration", - "scope": 346, - "src": "7456:13:0", + "scope": 342, + "src": "7298:13:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -21539,10 +21445,10 @@ "typeString": "address" }, "typeName": { - "id": 330, + "id": 328, "name": "address", "nodeType": "ElementaryTypeName", - "src": "7456:7:0", + "src": "7298:7:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -21552,20 +21458,20 @@ "visibility": "internal" } ], - "src": "7418:57:0" + "src": "7260:57:0" }, "payable": false, "returnParameters": { - "id": 335, + "id": 333, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 334, - "name": "vote", + "id": 332, + "name": "", "nodeType": "VariableDeclaration", - "scope": 346, - "src": "7523:9:0", + "scope": 342, + "src": "7365:4:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -21573,10 +21479,10 @@ "typeString": "bool" }, "typeName": { - "id": 333, + "id": 331, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "7523:4:0", + "src": "7365:4:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -21586,85 +21492,20 @@ "visibility": "internal" } ], - "src": "7522:11:0" + "src": "7364:6:0" }, - "scope": 1213, - "src": "7400:199:0", + "scope": 1206, + "src": "7242:194:0", "stateMutability": "view", "superFunction": null, "visibility": "external" }, { "body": { - "id": 405, + "id": 391, "nodeType": "Block", - "src": "8185:330:0", + "src": "8039:238:0", "statements": [ - { - "assignments": [ - 366 - ], - "declarations": [ - { - "constant": false, - "id": 366, - "name": "_value", - "nodeType": "VariableDeclaration", - "scope": 406, - "src": "8195:14:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 365, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "8195:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 369, - "initialValue": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 367, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1386, - "src": "8212:3:0", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 368, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "value", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "8212:9:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "8195:26:0" - }, { "expression": { "argumentTypes": null, @@ -21675,19 +21516,35 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 373, + "id": 365, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 371, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 366, - "src": "8240:6:0", + "expression": { + "argumentTypes": null, + "id": 362, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1379, + "src": "8058:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 363, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "value", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "8058:9:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -21698,14 +21555,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 372, + "id": 364, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "8249:1:0", + "src": "8070:1:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -21713,7 +21570,7 @@ }, "value": "0" }, - "src": "8240:10:0", + "src": "8058:13:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -21722,14 +21579,14 @@ { "argumentTypes": null, "hexValue": "56616c7565206d7573742062652067726561746572207468616e207a65726f2e", - "id": 374, + "id": 366, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "8252:34:0", + "src": "8073:34:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_21fbec2be6560b9ccffc4980d43c0d147770168e7aaf24999b418b9010085622", @@ -21749,21 +21606,21 @@ "typeString": "literal_string \"Value must be greater than zero.\"" } ], - "id": 370, + "id": 361, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1389, - 1390 + 1382, + 1383 ], - "referencedDeclaration": 1390, - "src": "8232:7:0", + "referencedDeclaration": 1383, + "src": "8050:7:0", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 375, + "id": 367, "isConstant": false, "isLValue": false, "isPure": false, @@ -21771,20 +21628,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8232:55:0", + "src": "8050:58:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 376, + "id": 368, "nodeType": "ExpressionStatement", - "src": "8232:55:0" + "src": "8050:58:0" }, { "expression": { "argumentTypes": null, - "id": 388, + "id": 381, "isConstant": false, "isLValue": false, "isPure": false, @@ -21795,26 +21652,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 377, + "id": 369, "name": "transactions", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 77, - "src": "8298:12:0", + "referencedDeclaration": 75, + "src": "8119:12:0", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Transaction_$73_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Transaction_$71_storage_$", "typeString": "mapping(bytes32 => struct Escrow_v1_0.Transaction storage ref)" } }, - "id": 379, + "id": 371, "indexExpression": { "argumentTypes": null, - "id": 378, + "id": 370, "name": "scriptHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 348, - "src": "8311:10:0", + "referencedDeclaration": 344, + "src": "8132:10:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -21825,21 +21682,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "8298:24:0", + "src": "8119:24:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Transaction_$73_storage", + "typeIdentifier": "t_struct$_Transaction_$71_storage", "typeString": "struct Escrow_v1_0.Transaction storage ref" } }, - "id": 380, + "id": 372, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberName": "value", "nodeType": "MemberAccess", - "referencedDeclaration": 42, - "src": "8298:30:0", + "referencedDeclaration": 40, + "src": "8119:30:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -21852,12 +21709,28 @@ "arguments": [ { "argumentTypes": null, - "id": 386, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 366, - "src": "8379:6:0", + "expression": { + "argumentTypes": null, + "id": 378, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1379, + "src": "8200:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 379, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "value", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "8200:9:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -21877,26 +21750,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 381, + "id": 373, "name": "transactions", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 77, - "src": "8331:12:0", + "referencedDeclaration": 75, + "src": "8152:12:0", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Transaction_$73_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Transaction_$71_storage_$", "typeString": "mapping(bytes32 => struct Escrow_v1_0.Transaction storage ref)" } }, - "id": 383, + "id": 375, "indexExpression": { "argumentTypes": null, - "id": 382, + "id": 374, "name": "scriptHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 348, - "src": "8344:10:0", + "referencedDeclaration": 344, + "src": "8165:10:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -21907,41 +21780,41 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "8331:24:0", + "src": "8152:24:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Transaction_$73_storage", + "typeIdentifier": "t_struct$_Transaction_$71_storage", "typeString": "struct Escrow_v1_0.Transaction storage ref" } }, - "id": 384, + "id": 376, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "value", "nodeType": "MemberAccess", - "referencedDeclaration": 42, - "src": "8331:30:0", + "referencedDeclaration": 40, + "src": "8152:30:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 385, + "id": 377, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", - "referencedDeclaration": 1350, - "src": "8331:47:0", + "referencedDeclaration": 1343, + "src": "8152:47:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 387, + "id": 380, "isConstant": false, "isLValue": false, "isPure": false, @@ -21949,181 +21822,92 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8331:55:0", + "src": "8152:58:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "8298:88:0", + "src": "8119:91:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 389, + "id": 382, "nodeType": "ExpressionStatement", - "src": "8298:88:0" + "src": "8119:91:0" }, { - "expression": { + "eventCall": { "argumentTypes": null, - "id": 396, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { + "arguments": [ + { "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 390, - "name": "transactions", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 77, - "src": "8396:12:0", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Transaction_$73_storage_$", - "typeString": "mapping(bytes32 => struct Escrow_v1_0.Transaction storage ref)" - } - }, - "id": 392, - "indexExpression": { + "id": 384, + "name": "scriptHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 344, + "src": "8236:10:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "expression": { "argumentTypes": null, - "id": 391, - "name": "scriptHash", + "id": 385, + "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 348, - "src": "8409:10:0", + "referencedDeclaration": 1379, + "src": "8248:3:0", "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" + "typeIdentifier": "t_magic_message", + "typeString": "msg" } }, + "id": 386, "isConstant": false, - "isLValue": true, + "isLValue": false, "isPure": false, "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "8396:24:0", + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "8248:10:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Transaction_$73_storage", - "typeString": "struct Escrow_v1_0.Transaction storage ref" - } - }, - "id": 393, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "lastModified", - "nodeType": "MemberAccess", - "referencedDeclaration": 44, - "src": "8396:37:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 394, - "name": "block", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1376, - "src": "8436:5:0", - "typeDescriptions": { - "typeIdentifier": "t_magic_block", - "typeString": "block" - } - }, - "id": 395, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "timestamp", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "8436:15:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "8396:55:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 397, - "nodeType": "ExpressionStatement", - "src": "8396:55:0" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 399, - "name": "scriptHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 348, - "src": "8477:10:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" + "typeIdentifier": "t_address", + "typeString": "address" } }, { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 400, + "id": 387, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1386, - "src": "8489:3:0", + "referencedDeclaration": 1379, + "src": "8260:3:0", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 401, + "id": 388, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberName": "sender", + "memberName": "value", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "8489:10:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 402, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 366, - "src": "8501:6:0", + "src": "8260:9:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -22145,18 +21929,18 @@ "typeString": "uint256" } ], - "id": 398, + "id": 383, "name": "FundAdded", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 30, - "src": "8467:9:0", + "src": "8226:9:0", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (bytes32,address,uint256)" } }, - "id": 403, + "id": 389, "isConstant": false, "isLValue": false, "isPure": false, @@ -22164,20 +21948,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8467:41:0", + "src": "8226:44:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 404, + "id": 390, "nodeType": "EmitStatement", - "src": "8462:46:0" + "src": "8221:49:0" } ] }, - "documentation": "dev Allows buyer of the transaction to add more funds(ether) in the transaction. This will help to cater scenarios wherein initially buyer missed to fund transaction as required\nparam scriptHash script hash of the transaction\nOnly buyer of the transaction can invoke this method", - "id": 406, + "documentation": "@dev Allows buyer of the transaction to add more funds(ether) in the transaction. \nThis will help to cater scenarios wherein initially buyer missed to fund transaction as required\n@param scriptHash script hash of the transaction\nOnly buyer of the transaction can invoke this method", + "id": 392, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -22186,78 +21970,78 @@ "arguments": [ { "argumentTypes": null, - "id": 351, + "id": 347, "name": "scriptHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 348, - "src": "8025:10:0", + "referencedDeclaration": 344, + "src": "7886:10:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } } ], - "id": 352, + "id": 348, "modifierName": { "argumentTypes": null, - "id": 350, - "name": "transactionExists", + "id": 346, + "name": "transactionExist", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 101, - "src": "8007:17:0", + "referencedDeclaration": 99, + "src": "7869:16:0", "typeDescriptions": { "typeIdentifier": "t_modifier$_t_bytes32_$", "typeString": "modifier (bytes32)" } }, "nodeType": "ModifierInvocation", - "src": "8007:29:0" + "src": "7869:28:0" }, { "arguments": [ { "argumentTypes": null, - "id": 354, + "id": 350, "name": "scriptHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 348, - "src": "8059:10:0", + "referencedDeclaration": 344, + "src": "7920:10:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } } ], - "id": 355, + "id": 351, "modifierName": { "argumentTypes": null, - "id": 353, + "id": 349, "name": "inFundedState", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 134, - "src": "8045:13:0", + "referencedDeclaration": 132, + "src": "7906:13:0", "typeDescriptions": { "typeIdentifier": "t_modifier$_t_bytes32_$", "typeString": "modifier (bytes32)" } }, "nodeType": "ModifierInvocation", - "src": "8045:25:0" + "src": "7906:25:0" }, { "arguments": [ { "argumentTypes": null, - "id": 357, + "id": 353, "name": "scriptHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 348, - "src": "8100:10:0", + "referencedDeclaration": 344, + "src": "7961:10:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -22267,18 +22051,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 358, + "id": 354, "name": "TransactionType", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12, - "src": "8112:15:0", + "src": "7973:15:0", "typeDescriptions": { "typeIdentifier": "t_type$_t_enum$_TransactionType_$12_$", "typeString": "type(enum Escrow_v1_0.TransactionType)" } }, - "id": 359, + "id": 355, "isConstant": false, "isLValue": false, "isPure": true, @@ -22286,77 +22070,77 @@ "memberName": "ETHER", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "8112:21:0", + "src": "7973:21:0", "typeDescriptions": { "typeIdentifier": "t_enum$_TransactionType_$12", "typeString": "enum Escrow_v1_0.TransactionType" } } ], - "id": 360, + "id": 356, "modifierName": { "argumentTypes": null, - "id": 356, + "id": 352, "name": "checkTransactionType", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 167, - "src": "8079:20:0", + "referencedDeclaration": 165, + "src": "7940:20:0", "typeDescriptions": { "typeIdentifier": "t_modifier$_t_bytes32_$_t_enum$_TransactionType_$12_$", "typeString": "modifier (bytes32,enum Escrow_v1_0.TransactionType)" } }, "nodeType": "ModifierInvocation", - "src": "8079:55:0" + "src": "7940:55:0" }, { "arguments": [ { "argumentTypes": null, - "id": 362, + "id": 358, "name": "scriptHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 348, - "src": "8153:10:0", + "referencedDeclaration": 344, + "src": "8014:10:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } } ], - "id": 363, + "id": 359, "modifierName": { "argumentTypes": null, - "id": 361, + "id": 357, "name": "onlyBuyer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 184, - "src": "8143:9:0", + "referencedDeclaration": 182, + "src": "8004:9:0", "typeDescriptions": { "typeIdentifier": "t_modifier$_t_bytes32_$", "typeString": "modifier (bytes32)" } }, "nodeType": "ModifierInvocation", - "src": "8143:21:0" + "src": "8004:21:0" } ], "name": "addFundsToTransaction", "nodeType": "FunctionDefinition", "parameters": { - "id": 349, + "id": 345, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 348, + "id": 344, "name": "scriptHash", "nodeType": "VariableDeclaration", - "scope": 406, - "src": "7957:18:0", + "scope": 392, + "src": "7803:18:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -22364,10 +22148,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 347, + "id": 343, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "7957:7:0", + "src": "7803:7:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -22377,76 +22161,27 @@ "visibility": "internal" } ], - "src": "7947:34:0" + "src": "7793:34:0" }, "payable": true, "returnParameters": { - "id": 364, + "id": 360, "nodeType": "ParameterList", "parameters": [], - "src": "8185:0:0" + "src": "8039:0:0" }, - "scope": 1213, - "src": "7917:598:0", + "scope": 1206, + "src": "7763:514:0", "stateMutability": "payable", "superFunction": null, "visibility": "external" }, { "body": { - "id": 488, + "id": 462, "nodeType": "Block", - "src": "9051:648:0", + "src": "8880:537:0", "statements": [ - { - "assignments": [ - 428 - ], - "declarations": [ - { - "constant": false, - "id": 428, - "name": "_value", - "nodeType": "VariableDeclaration", - "scope": 489, - "src": "9061:14:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 427, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "9061:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 430, - "initialValue": { - "argumentTypes": null, - "id": 429, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 410, - "src": "9078:5:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "9061:22:0" - }, { "expression": { "argumentTypes": null, @@ -22457,19 +22192,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 434, + "id": 416, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 432, - "name": "_value", + "id": 414, + "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 428, - "src": "9102:6:0", + "referencedDeclaration": 396, + "src": "8899:5:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -22480,14 +22215,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 433, + "id": 415, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "9111:1:0", + "src": "8907:1:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -22495,7 +22230,7 @@ }, "value": "0" }, - "src": "9102:10:0", + "src": "8899:9:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -22504,14 +22239,14 @@ { "argumentTypes": null, "hexValue": "56616c7565206d7573742062652067726561746572207468616e207a65726f2e", - "id": 435, + "id": 417, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "9114:34:0", + "src": "8910:34:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_21fbec2be6560b9ccffc4980d43c0d147770168e7aaf24999b418b9010085622", @@ -22531,21 +22266,21 @@ "typeString": "literal_string \"Value must be greater than zero.\"" } ], - "id": 431, + "id": 413, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1389, - 1390 + 1382, + 1383 ], - "referencedDeclaration": 1390, - "src": "9094:7:0", + "referencedDeclaration": 1383, + "src": "8891:7:0", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 436, + "id": 418, "isConstant": false, "isLValue": false, "isPure": false, @@ -22553,43 +22288,43 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "9094:55:0", + "src": "8891:54:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 437, + "id": 419, "nodeType": "ExpressionStatement", - "src": "9094:55:0" + "src": "8891:54:0" }, { "assignments": [ - 439 + 421 ], "declarations": [ { "constant": false, - "id": 439, + "id": 421, "name": "token", "nodeType": "VariableDeclaration", - "scope": 489, - "src": "9160:20:0", + "scope": 463, + "src": "8956:20:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_ITokenContract_$1243", + "typeIdentifier": "t_contract$_ITokenContract_$1236", "typeString": "contract ITokenContract" }, "typeName": { "contractScope": null, - "id": 438, + "id": 420, "name": "ITokenContract", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1243, - "src": "9160:14:0", + "referencedDeclaration": 1236, + "src": "8956:14:0", "typeDescriptions": { - "typeIdentifier": "t_contract$_ITokenContract_$1243", + "typeIdentifier": "t_contract$_ITokenContract_$1236", "typeString": "contract ITokenContract" } }, @@ -22597,7 +22332,7 @@ "visibility": "internal" } ], - "id": 446, + "id": 428, "initialValue": { "argumentTypes": null, "arguments": [ @@ -22607,26 +22342,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 441, + "id": 423, "name": "transactions", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 77, - "src": "9211:12:0", + "referencedDeclaration": 75, + "src": "9007:12:0", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Transaction_$73_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Transaction_$71_storage_$", "typeString": "mapping(bytes32 => struct Escrow_v1_0.Transaction storage ref)" } }, - "id": 443, + "id": 425, "indexExpression": { "argumentTypes": null, - "id": 442, + "id": 424, "name": "scriptHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 408, - "src": "9224:10:0", + "referencedDeclaration": 394, + "src": "9020:10:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -22637,21 +22372,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "9211:24:0", + "src": "9007:24:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Transaction_$73_storage", + "typeIdentifier": "t_struct$_Transaction_$71_storage", "typeString": "struct Escrow_v1_0.Transaction storage ref" } }, - "id": 444, + "id": 426, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "tokenAddress", "nodeType": "MemberAccess", - "referencedDeclaration": 58, - "src": "9211:37:0", + "referencedDeclaration": 56, + "src": "9007:37:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -22665,18 +22400,18 @@ "typeString": "address" } ], - "id": 440, + "id": 422, "name": "ITokenContract", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1243, - "src": "9183:14:0", + "referencedDeclaration": 1236, + "src": "8979:14:0", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ITokenContract_$1243_$", + "typeIdentifier": "t_type$_t_contract$_ITokenContract_$1236_$", "typeString": "type(contract ITokenContract)" } }, - "id": 445, + "id": 427, "isConstant": false, "isLValue": false, "isPure": false, @@ -22684,14 +22419,14 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "9183:75:0", + "src": "8979:75:0", "typeDescriptions": { - "typeIdentifier": "t_contract$_ITokenContract_$1243", + "typeIdentifier": "t_contract$_ITokenContract_$1236", "typeString": "contract ITokenContract" } }, "nodeType": "VariableDeclarationStatement", - "src": "9160:98:0" + "src": "8956:98:0" }, { "expression": { @@ -22704,53 +22439,77 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "baseExpression": { + "id": 432, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1379, + "src": "9105:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 433, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "9105:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "arguments": [ + { "argumentTypes": null, - "id": 450, - "name": "transactions", + "id": 435, + "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 77, - "src": "9309:12:0", + "referencedDeclaration": 1396, + "src": "9125:4:0", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Transaction_$73_storage_$", - "typeString": "mapping(bytes32 => struct Escrow_v1_0.Transaction storage ref)" + "typeIdentifier": "t_contract$_Escrow_v1_0_$1206", + "typeString": "contract Escrow_v1_0" } - }, - "id": 452, - "indexExpression": { - "argumentTypes": null, - "id": 451, - "name": "scriptHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 408, - "src": "9322:10:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Escrow_v1_0_$1206", + "typeString": "contract Escrow_v1_0" } - }, + ], + "id": 434, "isConstant": false, - "isLValue": true, - "isPure": false, + "isLValue": false, + "isPure": true, "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "9309:24:0", + "nodeType": "ElementaryTypeNameExpression", + "src": "9117:7:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Transaction_$73_storage", - "typeString": "struct Escrow_v1_0.Transaction storage ref" - } + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" }, - "id": 453, + "id": 436, "isConstant": false, - "isLValue": true, + "isLValue": false, "isPure": false, + "kind": "typeConversion", "lValueRequested": false, - "memberName": "buyer", - "nodeType": "MemberAccess", - "referencedDeclaration": 54, - "src": "9309:30:0", + "names": [], + "nodeType": "FunctionCall", + "src": "9117:13:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -22758,25 +22517,12 @@ }, { "argumentTypes": null, - "id": 454, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1403, - "src": "9341:4:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Escrow_v1_0_$1213", - "typeString": "contract Escrow_v1_0" - } - }, - { - "argumentTypes": null, - "id": 455, + "id": 437, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 410, - "src": "9347:5:0", + "referencedDeclaration": 396, + "src": "9132:5:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -22790,8 +22536,8 @@ "typeString": "address" }, { - "typeIdentifier": "t_contract$_Escrow_v1_0_$1213", - "typeString": "contract Escrow_v1_0" + "typeIdentifier": "t_address", + "typeString": "address" }, { "typeIdentifier": "t_uint256", @@ -22800,32 +22546,32 @@ ], "expression": { "argumentTypes": null, - "id": 448, + "id": 430, "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 439, - "src": "9290:5:0", + "referencedDeclaration": 421, + "src": "9086:5:0", "typeDescriptions": { - "typeIdentifier": "t_contract$_ITokenContract_$1243", + "typeIdentifier": "t_contract$_ITokenContract_$1236", "typeString": "contract ITokenContract" } }, - "id": 449, + "id": 431, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "transferFrom", "nodeType": "MemberAccess", - "referencedDeclaration": 1242, - "src": "9290:18:0", + "referencedDeclaration": 1235, + "src": "9086:18:0", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$", "typeString": "function (address,address,uint256) external returns (bool)" } }, - "id": 456, + "id": 438, "isConstant": false, "isLValue": false, "isPure": false, @@ -22833,7 +22579,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "9290:63:0", + "src": "9086:52:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -22842,14 +22588,14 @@ { "argumentTypes": null, "hexValue": "546f6b656e207472616e73666572206661696c65642c206d6179626520796f7520646964206e6f7420617070726f766520657363726f7720636f6e747261637420746f207370656e64206f6e20626568616c66206f66206275796572", - "id": 457, + "id": 439, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "9367:94:0", + "src": "9152:94:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_d9d07068d589bc4adc53018a3c57c159ec128fdfb62732a5fa9410e76cf03318", @@ -22869,21 +22615,21 @@ "typeString": "literal_string \"Token transfer failed, maybe you did not approve escrow contract to spend on behalf of buyer\"" } ], - "id": 447, + "id": 429, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1389, - 1390 + 1382, + 1383 ], - "referencedDeclaration": 1390, - "src": "9269:7:0", + "referencedDeclaration": 1383, + "src": "9065:7:0", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 458, + "id": 440, "isConstant": false, "isLValue": false, "isPure": false, @@ -22891,20 +22637,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "9269:202:0", + "src": "9065:191:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 459, + "id": 441, "nodeType": "ExpressionStatement", - "src": "9269:202:0" + "src": "9065:191:0" }, { "expression": { "argumentTypes": null, - "id": 471, + "id": 453, "isConstant": false, "isLValue": false, "isPure": false, @@ -22915,26 +22661,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 460, + "id": 442, "name": "transactions", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 77, - "src": "9482:12:0", + "referencedDeclaration": 75, + "src": "9267:12:0", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Transaction_$73_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Transaction_$71_storage_$", "typeString": "mapping(bytes32 => struct Escrow_v1_0.Transaction storage ref)" } }, - "id": 462, + "id": 444, "indexExpression": { "argumentTypes": null, - "id": 461, + "id": 443, "name": "scriptHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 408, - "src": "9495:10:0", + "referencedDeclaration": 394, + "src": "9280:10:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -22945,21 +22691,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "9482:24:0", + "src": "9267:24:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Transaction_$73_storage", + "typeIdentifier": "t_struct$_Transaction_$71_storage", "typeString": "struct Escrow_v1_0.Transaction storage ref" } }, - "id": 463, + "id": 445, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberName": "value", "nodeType": "MemberAccess", - "referencedDeclaration": 42, - "src": "9482:30:0", + "referencedDeclaration": 40, + "src": "9267:30:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -22972,12 +22718,12 @@ "arguments": [ { "argumentTypes": null, - "id": 469, - "name": "_value", + "id": 451, + "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 428, - "src": "9563:6:0", + "referencedDeclaration": 396, + "src": "9348:5:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -22997,26 +22743,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 464, + "id": 446, "name": "transactions", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 77, - "src": "9515:12:0", + "referencedDeclaration": 75, + "src": "9300:12:0", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Transaction_$73_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Transaction_$71_storage_$", "typeString": "mapping(bytes32 => struct Escrow_v1_0.Transaction storage ref)" } }, - "id": 466, + "id": 448, "indexExpression": { "argumentTypes": null, - "id": 465, + "id": 447, "name": "scriptHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 408, - "src": "9528:10:0", + "referencedDeclaration": 394, + "src": "9313:10:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -23027,41 +22773,41 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "9515:24:0", + "src": "9300:24:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Transaction_$73_storage", + "typeIdentifier": "t_struct$_Transaction_$71_storage", "typeString": "struct Escrow_v1_0.Transaction storage ref" } }, - "id": 467, + "id": 449, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "value", "nodeType": "MemberAccess", - "referencedDeclaration": 42, - "src": "9515:30:0", + "referencedDeclaration": 40, + "src": "9300:30:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 468, + "id": 450, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", - "referencedDeclaration": 1350, - "src": "9515:47:0", + "referencedDeclaration": 1343, + "src": "9300:47:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 470, + "id": 452, "isConstant": false, "isLValue": false, "isPure": false, @@ -23069,181 +22815,76 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "9515:55:0", + "src": "9300:54:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "9482:88:0", + "src": "9267:87:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 472, + "id": 454, "nodeType": "ExpressionStatement", - "src": "9482:88:0" + "src": "9267:87:0" }, { - "expression": { + "eventCall": { "argumentTypes": null, - "id": 479, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { + "arguments": [ + { "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 473, - "name": "transactions", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 77, - "src": "9580:12:0", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Transaction_$73_storage_$", - "typeString": "mapping(bytes32 => struct Escrow_v1_0.Transaction storage ref)" - } - }, - "id": 475, - "indexExpression": { + "id": 456, + "name": "scriptHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 394, + "src": "9380:10:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "expression": { "argumentTypes": null, - "id": 474, - "name": "scriptHash", + "id": 457, + "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 408, - "src": "9593:10:0", + "referencedDeclaration": 1379, + "src": "9392:3:0", "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" + "typeIdentifier": "t_magic_message", + "typeString": "msg" } }, + "id": 458, "isConstant": false, - "isLValue": true, + "isLValue": false, "isPure": false, "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "9580:24:0", + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "9392:10:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Transaction_$73_storage", - "typeString": "struct Escrow_v1_0.Transaction storage ref" - } - }, - "id": 476, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "lastModified", - "nodeType": "MemberAccess", - "referencedDeclaration": 44, - "src": "9580:37:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 477, - "name": "block", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1376, - "src": "9620:5:0", - "typeDescriptions": { - "typeIdentifier": "t_magic_block", - "typeString": "block" - } - }, - "id": 478, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "timestamp", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "9620:15:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "9580:55:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 480, - "nodeType": "ExpressionStatement", - "src": "9580:55:0" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 482, - "name": "scriptHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 408, - "src": "9661:10:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 483, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1386, - "src": "9673:3:0", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 484, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "9673:10:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_address", + "typeString": "address" } }, { "argumentTypes": null, - "id": 485, - "name": "_value", + "id": 459, + "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 428, - "src": "9685:6:0", + "referencedDeclaration": 396, + "src": "9404:5:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -23265,18 +22906,18 @@ "typeString": "uint256" } ], - "id": 481, + "id": 455, "name": "FundAdded", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 30, - "src": "9651:9:0", + "src": "9370:9:0", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (bytes32,address,uint256)" } }, - "id": 486, + "id": 460, "isConstant": false, "isLValue": false, "isPure": false, @@ -23284,20 +22925,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "9651:41:0", + "src": "9370:40:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 487, + "id": 461, "nodeType": "EmitStatement", - "src": "9646:46:0" + "src": "9365:45:0" } ] }, - "documentation": "dev Allows buyer of the transaction to add more funds(Tokens) in the transaction. This will help to cater scenarios wherein initially buyer missed to fund transaction as required\nparam scriptHash script hash of the transaction", - "id": 489, + "documentation": "@dev Allows buyer of the transaction to add more funds(Tokens) in the transaction. \nThis will help to cater scenarios wherein initially buyer missed to fund transaction as required\n@param scriptHash script hash of the transaction\nOnly buyer of the transaction can invoke this method", + "id": 463, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -23306,78 +22947,78 @@ "arguments": [ { "argumentTypes": null, - "id": 413, + "id": 399, "name": "scriptHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 408, - "src": "8907:10:0", + "referencedDeclaration": 394, + "src": "8736:10:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } } ], - "id": 414, + "id": 400, "modifierName": { "argumentTypes": null, - "id": 412, - "name": "transactionExists", + "id": 398, + "name": "transactionExist", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 101, - "src": "8889:17:0", + "referencedDeclaration": 99, + "src": "8719:16:0", "typeDescriptions": { "typeIdentifier": "t_modifier$_t_bytes32_$", "typeString": "modifier (bytes32)" } }, "nodeType": "ModifierInvocation", - "src": "8889:29:0" + "src": "8719:28:0" }, { "arguments": [ { "argumentTypes": null, - "id": 416, + "id": 402, "name": "scriptHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 408, - "src": "8941:10:0", + "referencedDeclaration": 394, + "src": "8770:10:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } } ], - "id": 417, + "id": 403, "modifierName": { "argumentTypes": null, - "id": 415, + "id": 401, "name": "inFundedState", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 134, - "src": "8927:13:0", + "referencedDeclaration": 132, + "src": "8756:13:0", "typeDescriptions": { "typeIdentifier": "t_modifier$_t_bytes32_$", "typeString": "modifier (bytes32)" } }, "nodeType": "ModifierInvocation", - "src": "8927:25:0" + "src": "8756:25:0" }, { "arguments": [ { "argumentTypes": null, - "id": 419, + "id": 405, "name": "scriptHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 408, - "src": "8982:10:0", + "referencedDeclaration": 394, + "src": "8811:10:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -23387,18 +23028,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 420, + "id": 406, "name": "TransactionType", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12, - "src": "8994:15:0", + "src": "8823:15:0", "typeDescriptions": { "typeIdentifier": "t_type$_t_enum$_TransactionType_$12_$", "typeString": "type(enum Escrow_v1_0.TransactionType)" } }, - "id": 421, + "id": 407, "isConstant": false, "isLValue": false, "isPure": true, @@ -23406,77 +23047,77 @@ "memberName": "TOKEN", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "8994:21:0", + "src": "8823:21:0", "typeDescriptions": { "typeIdentifier": "t_enum$_TransactionType_$12", "typeString": "enum Escrow_v1_0.TransactionType" } } ], - "id": 422, + "id": 408, "modifierName": { "argumentTypes": null, - "id": 418, + "id": 404, "name": "checkTransactionType", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 167, - "src": "8961:20:0", + "referencedDeclaration": 165, + "src": "8790:20:0", "typeDescriptions": { "typeIdentifier": "t_modifier$_t_bytes32_$_t_enum$_TransactionType_$12_$", "typeString": "modifier (bytes32,enum Escrow_v1_0.TransactionType)" } }, "nodeType": "ModifierInvocation", - "src": "8961:55:0" + "src": "8790:55:0" }, { "arguments": [ { "argumentTypes": null, - "id": 424, + "id": 410, "name": "scriptHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 408, - "src": "9035:10:0", + "referencedDeclaration": 394, + "src": "8864:10:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } } ], - "id": 425, + "id": 411, "modifierName": { "argumentTypes": null, - "id": 423, + "id": 409, "name": "onlyBuyer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 184, - "src": "9025:9:0", + "referencedDeclaration": 182, + "src": "8854:9:0", "typeDescriptions": { "typeIdentifier": "t_modifier$_t_bytes32_$", "typeString": "modifier (bytes32)" } }, "nodeType": "ModifierInvocation", - "src": "9025:21:0" + "src": "8854:21:0" } ], "name": "addTokensToTransaction", "nodeType": "FunctionDefinition", "parameters": { - "id": 411, + "id": 397, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 408, + "id": 394, "name": "scriptHash", "nodeType": "VariableDeclaration", - "scope": 489, - "src": "8816:18:0", + "scope": 463, + "src": "8646:18:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -23484,10 +23125,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 407, + "id": 393, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "8816:7:0", + "src": "8646:7:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -23498,11 +23139,11 @@ }, { "constant": false, - "id": 410, + "id": 396, "name": "value", "nodeType": "VariableDeclaration", - "scope": 489, - "src": "8844:13:0", + "scope": 463, + "src": "8674:13:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -23510,10 +23151,10 @@ "typeString": "uint256" }, "typeName": { - "id": 409, + "id": 395, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "8844:7:0", + "src": "8674:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -23523,52 +23164,52 @@ "visibility": "internal" } ], - "src": "8806:57:0" + "src": "8636:57:0" }, "payable": false, "returnParameters": { - "id": 426, + "id": 412, "nodeType": "ParameterList", "parameters": [], - "src": "9051:0:0" + "src": "8880:0:0" }, - "scope": 1213, - "src": "8775:924:0", + "scope": 1206, + "src": "8605:812:0", "stateMutability": "nonpayable", "superFunction": null, "visibility": "external" }, { "body": { - "id": 501, + "id": 475, "nodeType": "Block", - "src": "9967:56:0", + "src": "9672:56:0", "statements": [ { "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 497, + "id": 471, "name": "partyVsTransaction", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 85, - "src": "9984:18:0", + "referencedDeclaration": 83, + "src": "9689:18:0", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_bytes32_$dyn_storage_$", "typeString": "mapping(address => bytes32[] storage ref)" } }, - "id": 499, + "id": 473, "indexExpression": { "argumentTypes": null, - "id": 498, + "id": 472, "name": "partyAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 491, - "src": "10003:12:0", + "referencedDeclaration": 465, + "src": "9708:12:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -23579,21 +23220,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "9984:32:0", + "src": "9689:32:0", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", "typeString": "bytes32[] storage ref" } }, - "functionReturnParameters": 496, - "id": 500, + "functionReturnParameters": 470, + "id": 474, "nodeType": "Return", - "src": "9977:39:0" + "src": "9682:39:0" } ] }, "documentation": "dev Returns all transaction ids for a party\nparam partyAddress Address of the party", - "id": 502, + "id": 476, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -23601,16 +23242,16 @@ "name": "getAllTransactionsForParty", "nodeType": "FunctionDefinition", "parameters": { - "id": 492, + "id": 466, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 491, + "id": 465, "name": "partyAddress", "nodeType": "VariableDeclaration", - "scope": 502, - "src": "9861:20:0", + "scope": 476, + "src": "9579:20:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -23618,10 +23259,10 @@ "typeString": "address" }, "typeName": { - "id": 490, + "id": 464, "name": "address", "nodeType": "ElementaryTypeName", - "src": "9861:7:0", + "src": "9579:7:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -23631,20 +23272,20 @@ "visibility": "internal" } ], - "src": "9851:36:0" + "src": "9569:36:0" }, "payable": false, "returnParameters": { - "id": 496, + "id": 470, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 495, - "name": "scriptHashes", + "id": 469, + "name": "", "nodeType": "VariableDeclaration", - "scope": 502, - "src": "9938:22:0", + "scope": 476, + "src": "9656:9:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -23653,19 +23294,19 @@ }, "typeName": { "baseType": { - "id": 493, + "id": 467, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "9938:7:0", + "src": "9656:7:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "id": 494, + "id": 468, "length": null, "nodeType": "ArrayTypeName", - "src": "9938:9:0", + "src": "9656:9:0", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", "typeString": "bytes32[]" @@ -23675,19 +23316,19 @@ "visibility": "internal" } ], - "src": "9937:24:0" + "src": "9655:11:0" }, - "scope": 1213, - "src": "9816:207:0", + "scope": 1206, + "src": "9534:194:0", "stateMutability": "view", "superFunction": null, "visibility": "external" }, { "body": { - "id": 587, + "id": 564, "nodeType": "Block", - "src": "11053:790:0", + "src": "10598:932:0", "statements": [ { "expression": { @@ -23696,160 +23337,64 @@ { "argumentTypes": null, "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_uint256", + "typeString": "uint256" }, - "id": 538, + "id": 506, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "expression": { + "argumentTypes": null, + "id": 503, + "name": "destinations", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 490, + "src": "10632:12:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[] calldata" + } }, - "id": 532, + "id": 504, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 529, - "name": "destinations", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 516, - "src": "11084:12:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[] calldata" - } - }, - "id": 530, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "11084:19:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 531, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11104:1:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "11084:21:0", + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "10632:19:0", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, "nodeType": "BinaryOperation", - "operator": "&&", + "operator": ">", "rightExpression": { "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 537, + "hexValue": "30", + "id": 505, "isConstant": false, "isLValue": false, - "isPure": false, + "isPure": true, + "kind": "number", "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 533, - "name": "destinations", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 516, - "src": "11109:12:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[] calldata" - } - }, - "id": 534, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "11109:19:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 535, - "name": "amounts", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 519, - "src": "11132:7:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", - "typeString": "uint256[] calldata" - } - }, - "id": 536, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "11132:14:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "11109:37:0", + "nodeType": "Literal", + "src": "10652:1:0", + "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" }, - "src": "11084:62:0", + "src": "10632:21:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -23857,21 +23402,21 @@ }, { "argumentTypes": null, - "hexValue": "4c656e677468206f662064657374696e6174696f6e7320697320696e636f72726563742e", - "id": 539, + "hexValue": "4e756d626572206f662064657374696e6174696f6e73206d7573742062652067726561746572207468616e2030", + "id": 507, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "11148:38:0", + "src": "10668:47:0", "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_stringliteral_53e979b0c355ea1eeda44a80ca73370fdb2abe922711b459aa4ee43d1558782b", - "typeString": "literal_string \"Length of destinations is incorrect.\"" + "typeIdentifier": "t_stringliteral_fbeb58246a6e3ff255a1d618f14d1cced67ffd4784fbc3e1cfbdf71d1f7fbdf9", + "typeString": "literal_string \"Number of destinations must be greater than 0\"" }, - "value": "Length of destinations is incorrect." + "value": "Number of destinations must be greater than 0" } ], "expression": { @@ -23881,25 +23426,25 @@ "typeString": "bool" }, { - "typeIdentifier": "t_stringliteral_53e979b0c355ea1eeda44a80ca73370fdb2abe922711b459aa4ee43d1558782b", - "typeString": "literal_string \"Length of destinations is incorrect.\"" + "typeIdentifier": "t_stringliteral_fbeb58246a6e3ff255a1d618f14d1cced67ffd4784fbc3e1cfbdf71d1f7fbdf9", + "typeString": "literal_string \"Number of destinations must be greater than 0\"" } ], - "id": 528, + "id": 502, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1389, - 1390 + 1382, + 1383 ], - "referencedDeclaration": 1390, - "src": "11063:7:0", + "referencedDeclaration": 1383, + "src": "10611:7:0", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 540, + "id": 508, "isConstant": false, "isLValue": false, "isPure": false, @@ -23907,15 +23452,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "11063:133:0", + "src": "10611:114:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 541, + "id": 509, "nodeType": "ExpressionStatement", - "src": "11063:133:0" + "src": "10611:114:0" }, { "expression": { @@ -23923,64 +23468,207 @@ "arguments": [ { "argumentTypes": null, - "id": 543, - "name": "sigV", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 505, - "src": "11238:4:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint8_$dyn_calldata_ptr", - "typeString": "uint8[] calldata" - } - }, - { - "argumentTypes": null, - "id": 544, - "name": "sigR", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 508, - "src": "11256:4:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr", - "typeString": "bytes32[] calldata" - } - }, - { - "argumentTypes": null, - "id": 545, - "name": "sigS", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 511, - "src": "11274:4:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr", - "typeString": "bytes32[] calldata" - } - }, - { - "argumentTypes": null, - "id": 546, - "name": "scriptHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 513, - "src": "11292:10:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 547, - "name": "destinations", - "nodeType": "Identifier", + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 515, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 511, + "name": "destinations", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 490, + "src": "10756:12:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[] calldata" + } + }, + "id": 512, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "10756:19:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 513, + "name": "amounts", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 493, + "src": "10779:7:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", + "typeString": "uint256[] calldata" + } + }, + "id": 514, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "10779:14:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10756:37:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "4e756d626572206f662064657374696e6174696f6e73206d757374206d61746368206e756d626572206f662076616c7565732073656e74", + "id": 516, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10807:57:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_e70a315a5939ff57e3400503291dbc0af19d18c32f15c80c7c6f5b7c54a6cd3c", + "typeString": "literal_string \"Number of destinations must match number of values sent\"" + }, + "value": "Number of destinations must match number of values sent" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_e70a315a5939ff57e3400503291dbc0af19d18c32f15c80c7c6f5b7c54a6cd3c", + "typeString": "literal_string \"Number of destinations must match number of values sent\"" + } + ], + "id": 510, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1382, + 1383 + ], + "referencedDeclaration": 1383, + "src": "10735:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 517, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10735:139:0", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 518, + "nodeType": "ExpressionStatement", + "src": "10735:139:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 520, + "name": "sigV", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 479, + "src": "10924:4:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint8_$dyn_calldata_ptr", + "typeString": "uint8[] calldata" + } + }, + { + "argumentTypes": null, + "id": 521, + "name": "sigR", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 482, + "src": "10942:4:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr", + "typeString": "bytes32[] calldata" + } + }, + { + "argumentTypes": null, + "id": 522, + "name": "sigS", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 485, + "src": "10960:4:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr", + "typeString": "bytes32[] calldata" + } + }, + { + "argumentTypes": null, + "id": 523, + "name": "scriptHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 487, + "src": "10978:10:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "id": 524, + "name": "destinations", + "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 516, - "src": "11316:12:0", + "referencedDeclaration": 490, + "src": "11002:12:0", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", "typeString": "address[] calldata" @@ -23988,12 +23676,12 @@ }, { "argumentTypes": null, - "id": 548, + "id": 525, "name": "amounts", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 519, - "src": "11342:7:0", + "referencedDeclaration": 493, + "src": "11028:7:0", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", "typeString": "uint256[] calldata" @@ -24027,18 +23715,18 @@ "typeString": "uint256[] calldata" } ], - "id": 542, - "name": "verifyTransaction", + "id": 519, + "name": "_verifyTransaction", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 716, - "src": "11207:17:0", + "referencedDeclaration": 693, + "src": "10892:18:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_array$_t_uint8_$dyn_memory_ptr_$_t_array$_t_bytes32_$dyn_memory_ptr_$_t_array$_t_bytes32_$dyn_memory_ptr_$_t_bytes32_$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$returns$__$", "typeString": "function (uint8[] memory,bytes32[] memory,bytes32[] memory,bytes32,address[] memory,uint256[] memory)" } }, - "id": 549, + "id": 526, "isConstant": false, "isLValue": false, "isPure": false, @@ -24046,20 +23734,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "11207:152:0", + "src": "10892:153:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 550, + "id": 527, "nodeType": "ExpressionStatement", - "src": "11207:152:0" + "src": "10892:153:0" }, { "expression": { "argumentTypes": null, - "id": 557, + "id": 534, "isConstant": false, "isLValue": false, "isPure": false, @@ -24070,26 +23758,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 551, + "id": 528, "name": "transactions", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 77, - "src": "11370:12:0", + "referencedDeclaration": 75, + "src": "11056:12:0", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Transaction_$73_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Transaction_$71_storage_$", "typeString": "mapping(bytes32 => struct Escrow_v1_0.Transaction storage ref)" } }, - "id": 553, + "id": 530, "indexExpression": { "argumentTypes": null, - "id": 552, + "id": 529, "name": "scriptHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 513, - "src": "11383:10:0", + "referencedDeclaration": 487, + "src": "11069:10:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -24100,21 +23788,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "11370:24:0", + "src": "11056:24:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Transaction_$73_storage", + "typeIdentifier": "t_struct$_Transaction_$71_storage", "typeString": "struct Escrow_v1_0.Transaction storage ref" } }, - "id": 554, + "id": 531, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberName": "status", "nodeType": "MemberAccess", - "referencedDeclaration": 46, - "src": "11370:31:0", + "referencedDeclaration": 44, + "src": "11056:31:0", "typeDescriptions": { "typeIdentifier": "t_enum$_Status_$9", "typeString": "enum Escrow_v1_0.Status" @@ -24126,18 +23814,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 555, + "id": 532, "name": "Status", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9, - "src": "11404:6:0", + "src": "11090:6:0", "typeDescriptions": { "typeIdentifier": "t_type$_t_enum$_Status_$9_$", "typeString": "type(enum Escrow_v1_0.Status)" } }, - "id": 556, + "id": 533, "isConstant": false, "isLValue": false, "isPure": true, @@ -24145,26 +23833,26 @@ "memberName": "RELEASED", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "11404:15:0", + "src": "11090:15:0", "typeDescriptions": { "typeIdentifier": "t_enum$_Status_$9", "typeString": "enum Escrow_v1_0.Status" } }, - "src": "11370:49:0", + "src": "11056:49:0", "typeDescriptions": { "typeIdentifier": "t_enum$_Status_$9", "typeString": "enum Escrow_v1_0.Status" } }, - "id": 558, + "id": 535, "nodeType": "ExpressionStatement", - "src": "11370:49:0" + "src": "11056:49:0" }, { "expression": { "argumentTypes": null, - "id": 565, + "id": 542, "isConstant": false, "isLValue": false, "isPure": false, @@ -24175,26 +23863,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 559, + "id": 536, "name": "transactions", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 77, - "src": "11503:12:0", + "referencedDeclaration": 75, + "src": "11189:12:0", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Transaction_$73_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Transaction_$71_storage_$", "typeString": "mapping(bytes32 => struct Escrow_v1_0.Transaction storage ref)" } }, - "id": 561, + "id": 538, "indexExpression": { "argumentTypes": null, - "id": 560, + "id": 537, "name": "scriptHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 513, - "src": "11516:10:0", + "referencedDeclaration": 487, + "src": "11202:10:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -24205,21 +23893,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "11503:24:0", + "src": "11189:24:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Transaction_$73_storage", + "typeIdentifier": "t_struct$_Transaction_$71_storage", "typeString": "struct Escrow_v1_0.Transaction storage ref" } }, - "id": 562, + "id": 539, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberName": "lastModified", "nodeType": "MemberAccess", - "referencedDeclaration": 44, - "src": "11503:37:0", + "referencedDeclaration": 42, + "src": "11189:37:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -24231,18 +23919,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 563, + "id": 540, "name": "block", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1376, - "src": "11543:5:0", + "referencedDeclaration": 1369, + "src": "11229:5:0", "typeDescriptions": { "typeIdentifier": "t_magic_block", "typeString": "block" } }, - "id": 564, + "id": 541, "isConstant": false, "isLValue": false, "isPure": false, @@ -24250,21 +23938,21 @@ "memberName": "timestamp", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "11543:15:0", + "src": "11229:15:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "11503:55:0", + "src": "11189:55:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 566, + "id": 543, "nodeType": "ExpressionStatement", - "src": "11503:55:0" + "src": "11189:55:0" }, { "expression": { @@ -24276,7 +23964,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 577, + "id": 554, "isConstant": false, "isLValue": false, "isPure": false, @@ -24286,12 +23974,12 @@ "arguments": [ { "argumentTypes": null, - "id": 569, + "id": 546, "name": "scriptHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 513, - "src": "11603:10:0", + "referencedDeclaration": 487, + "src": "11290:10:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -24299,12 +23987,12 @@ }, { "argumentTypes": null, - "id": 570, + "id": 547, "name": "destinations", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 516, - "src": "11615:12:0", + "referencedDeclaration": 490, + "src": "11302:12:0", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", "typeString": "address[] calldata" @@ -24312,12 +24000,12 @@ }, { "argumentTypes": null, - "id": 571, + "id": 548, "name": "amounts", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 519, - "src": "11629:7:0", + "referencedDeclaration": 493, + "src": "11316:7:0", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", "typeString": "uint256[] calldata" @@ -24339,18 +24027,18 @@ "typeString": "uint256[] calldata" } ], - "id": 568, - "name": "transferFunds", + "id": 545, + "name": "_transferFunds", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 902, - "src": "11589:13:0", + "referencedDeclaration": 886, + "src": "11275:14:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$returns$_t_uint256_$", "typeString": "function (bytes32,address[] memory,uint256[] memory) returns (uint256)" } }, - "id": 572, + "id": 549, "isConstant": false, "isLValue": false, "isPure": false, @@ -24358,7 +24046,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "11589:48:0", + "src": "11275:49:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -24372,26 +24060,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 573, + "id": 550, "name": "transactions", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 77, - "src": "11641:12:0", + "referencedDeclaration": 75, + "src": "11328:12:0", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Transaction_$73_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Transaction_$71_storage_$", "typeString": "mapping(bytes32 => struct Escrow_v1_0.Transaction storage ref)" } }, - "id": 575, + "id": 552, "indexExpression": { "argumentTypes": null, - "id": 574, + "id": 551, "name": "scriptHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 513, - "src": "11654:10:0", + "referencedDeclaration": 487, + "src": "11341:10:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -24402,27 +24090,27 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "11641:24:0", + "src": "11328:24:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Transaction_$73_storage", + "typeIdentifier": "t_struct$_Transaction_$71_storage", "typeString": "struct Escrow_v1_0.Transaction storage ref" } }, - "id": 576, + "id": 553, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "value", "nodeType": "MemberAccess", - "referencedDeclaration": 42, - "src": "11641:30:0", + "referencedDeclaration": 40, + "src": "11328:30:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "11589:82:0", + "src": "11275:83:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -24431,14 +24119,14 @@ { "argumentTypes": null, "hexValue": "546f74616c2076616c756520746f2062652072656c6561736564206d75737420626520657175616c20746f20746865207472616e73616374696f6e20657363726f772076616c7565", - "id": 578, + "id": 555, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "11685:74:0", + "src": "11372:74:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_9e0bdb14e2e0d5e118fd1f547268c6a1fdb5e8facacd614066d4b60bc2c9941d", @@ -24458,21 +24146,21 @@ "typeString": "literal_string \"Total value to be released must be equal to the transaction escrow value\"" } ], - "id": 567, + "id": 544, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1389, - 1390 + 1382, + 1383 ], - "referencedDeclaration": 1390, - "src": "11568:7:0", + "referencedDeclaration": 1383, + "src": "11254:7:0", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 579, + "id": 556, "isConstant": false, "isLValue": false, "isPure": false, @@ -24480,15 +24168,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "11568:201:0", + "src": "11254:202:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 580, + "id": 557, "nodeType": "ExpressionStatement", - "src": "11568:201:0" + "src": "11254:202:0" }, { "eventCall": { @@ -24496,12 +24184,12 @@ "arguments": [ { "argumentTypes": null, - "id": 582, + "id": 559, "name": "scriptHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 513, - "src": "11802:10:0", + "referencedDeclaration": 487, + "src": "11489:10:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -24509,12 +24197,12 @@ }, { "argumentTypes": null, - "id": 583, + "id": 560, "name": "destinations", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 516, - "src": "11814:12:0", + "referencedDeclaration": 490, + "src": "11501:12:0", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", "typeString": "address[] calldata" @@ -24522,12 +24210,12 @@ }, { "argumentTypes": null, - "id": 584, + "id": 561, "name": "amounts", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 519, - "src": "11828:7:0", + "referencedDeclaration": 493, + "src": "11515:7:0", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", "typeString": "uint256[] calldata" @@ -24549,18 +24237,18 @@ "typeString": "uint256[] calldata" } ], - "id": 581, + "id": 558, "name": "Executed", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 22, - "src": "11793:8:0", + "src": "11480:8:0", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$returns$__$", "typeString": "function (bytes32,address[] memory,uint256[] memory)" } }, - "id": 585, + "id": 562, "isConstant": false, "isLValue": false, "isPure": false, @@ -24568,20 +24256,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "11793:43:0", + "src": "11480:43:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 586, + "id": 563, "nodeType": "EmitStatement", - "src": "11788:48:0" + "src": "11475:48:0" } ] }, - "documentation": "dev Allows one of the moderator to collect all the signature to solve dispute and submit it to this method.\nIf all the required signatures are collected and consensus has been reached than funds will be released to the voted party\nparam sigV Array containing V component of all the signatures\nparam sigR Array containing R component of all the signatures\nparam signS Array containing S component of all the signatures\nparam scriptHash script hash of the transaction\nparam destinations address of the destination in whose favour dispute resolution is taking place. In case of split payments it will be address of the split payments contract\nparam amounts value to send to each destination", - "id": 588, + "documentation": "dev This method will be used to release funds associated with the transaction\nPlease see specs https://github.com/OpenBazaar/smart-contracts/blob/master/contracts/escrow/EscrowSpec.md\nparam sigV Array containing V component of all the signatures\nparam sigR Array containing R component of all the signatures\nparam signS Array containing S component of all the signatures\nparam scriptHash script hash of the transaction\nparam destinations List of addresses who will receive funds\nparam amounts amount released to each destination", + "id": 565, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -24590,82 +24278,82 @@ "arguments": [ { "argumentTypes": null, - "id": 522, + "id": 496, "name": "scriptHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 513, - "src": "11003:10:0", + "referencedDeclaration": 487, + "src": "10548:10:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } } ], - "id": 523, + "id": 497, "modifierName": { "argumentTypes": null, - "id": 521, - "name": "transactionExists", + "id": 495, + "name": "transactionExist", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 101, - "src": "10985:17:0", + "referencedDeclaration": 99, + "src": "10531:16:0", "typeDescriptions": { "typeIdentifier": "t_modifier$_t_bytes32_$", "typeString": "modifier (bytes32)" } }, "nodeType": "ModifierInvocation", - "src": "10985:29:0" + "src": "10531:28:0" }, { "arguments": [ { "argumentTypes": null, - "id": 525, + "id": 499, "name": "scriptHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 513, - "src": "11037:10:0", + "referencedDeclaration": 487, + "src": "10582:10:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } } ], - "id": 526, + "id": 500, "modifierName": { "argumentTypes": null, - "id": 524, + "id": 498, "name": "inFundedState", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 134, - "src": "11023:13:0", + "referencedDeclaration": 132, + "src": "10568:13:0", "typeDescriptions": { "typeIdentifier": "t_modifier$_t_bytes32_$", "typeString": "modifier (bytes32)" } }, "nodeType": "ModifierInvocation", - "src": "11023:25:0" + "src": "10568:25:0" } ], "name": "execute", "nodeType": "FunctionDefinition", "parameters": { - "id": 520, + "id": 494, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 505, + "id": 479, "name": "sigV", "nodeType": "VariableDeclaration", - "scope": 588, - "src": "10806:12:0", + "scope": 565, + "src": "10352:12:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -24674,19 +24362,19 @@ }, "typeName": { "baseType": { - "id": 503, + "id": 477, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "10806:5:0", + "src": "10352:5:0", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, - "id": 504, + "id": 478, "length": null, "nodeType": "ArrayTypeName", - "src": "10806:7:0", + "src": "10352:7:0", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint8_$dyn_storage_ptr", "typeString": "uint8[]" @@ -24697,11 +24385,11 @@ }, { "constant": false, - "id": 508, + "id": 482, "name": "sigR", "nodeType": "VariableDeclaration", - "scope": 588, - "src": "10828:14:0", + "scope": 565, + "src": "10374:14:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -24710,19 +24398,19 @@ }, "typeName": { "baseType": { - "id": 506, + "id": 480, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "10828:7:0", + "src": "10374:7:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "id": 507, + "id": 481, "length": null, "nodeType": "ArrayTypeName", - "src": "10828:9:0", + "src": "10374:9:0", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", "typeString": "bytes32[]" @@ -24733,11 +24421,11 @@ }, { "constant": false, - "id": 511, + "id": 485, "name": "sigS", "nodeType": "VariableDeclaration", - "scope": 588, - "src": "10852:14:0", + "scope": 565, + "src": "10398:14:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -24746,19 +24434,19 @@ }, "typeName": { "baseType": { - "id": 509, + "id": 483, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "10852:7:0", + "src": "10398:7:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "id": 510, + "id": 484, "length": null, "nodeType": "ArrayTypeName", - "src": "10852:9:0", + "src": "10398:9:0", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", "typeString": "bytes32[]" @@ -24769,11 +24457,11 @@ }, { "constant": false, - "id": 513, + "id": 487, "name": "scriptHash", "nodeType": "VariableDeclaration", - "scope": 588, - "src": "10876:18:0", + "scope": 565, + "src": "10422:18:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -24781,10 +24469,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 512, + "id": 486, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "10876:7:0", + "src": "10422:7:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -24795,11 +24483,11 @@ }, { "constant": false, - "id": 516, + "id": 490, "name": "destinations", "nodeType": "VariableDeclaration", - "scope": 588, - "src": "10904:22:0", + "scope": 565, + "src": "10450:22:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -24808,19 +24496,19 @@ }, "typeName": { "baseType": { - "id": 514, + "id": 488, "name": "address", "nodeType": "ElementaryTypeName", - "src": "10904:7:0", + "src": "10450:7:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 515, + "id": 489, "length": null, "nodeType": "ArrayTypeName", - "src": "10904:9:0", + "src": "10450:9:0", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]" @@ -24831,11 +24519,11 @@ }, { "constant": false, - "id": 519, + "id": 493, "name": "amounts", "nodeType": "VariableDeclaration", - "scope": 588, - "src": "10936:17:0", + "scope": 565, + "src": "10482:17:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -24844,19 +24532,19 @@ }, "typeName": { "baseType": { - "id": 517, + "id": 491, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "10936:7:0", + "src": "10482:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 518, + "id": 492, "length": null, "nodeType": "ArrayTypeName", - "src": "10936:9:0", + "src": "10482:9:0", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", "typeString": "uint256[]" @@ -24866,26 +24554,26 @@ "visibility": "internal" } ], - "src": "10796:163:0" + "src": "10342:163:0" }, "payable": false, "returnParameters": { - "id": 527, + "id": 501, "nodeType": "ParameterList", "parameters": [], - "src": "11053:0:0" + "src": "10598:0:0" }, - "scope": 1213, - "src": "10780:1063:0", + "scope": 1206, + "src": "10326:1204:0", "stateMutability": "nonpayable", "superFunction": null, "visibility": "external" }, { "body": { - "id": 646, + "id": 623, "nodeType": "Block", - "src": "12602:716:0", + "src": "12334:734:0", "statements": [ { "condition": { @@ -24894,19 +24582,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 611, + "id": 588, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 607, + "id": 584, "name": "tokenAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 602, - "src": "12616:12:0", + "referencedDeclaration": 579, + "src": "12348:12:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -24920,14 +24608,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 609, + "id": 586, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "12640:1:0", + "src": "12372:1:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -24943,20 +24631,20 @@ "typeString": "int_const 0" } ], - "id": 608, + "id": 585, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "12632:7:0", + "src": "12364:7:0", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 610, + "id": 587, "isConstant": false, "isLValue": false, "isPure": true, @@ -24964,529 +24652,551 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "12632:10:0", + "src": "12364:10:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "12616:26:0", + "src": "12348:26:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": { - "id": 644, + "id": 621, "nodeType": "Block", - "src": "12964:348:0", + "src": "12705:357:0", "statements": [ { "expression": { "argumentTypes": null, - "id": 642, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 628, - "name": "hash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 605, - "src": "12978:4:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 632, - "name": "uniqueId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 590, - "src": "13050:8:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes20", - "typeString": "bytes20" + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 608, + "name": "uniqueId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 567, + "src": "12791:8:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes20", + "typeString": "bytes20" + } + }, + { + "argumentTypes": null, + "id": 609, + "name": "threshold", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 569, + "src": "12821:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + { + "argumentTypes": null, + "id": 610, + "name": "timeoutHours", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 571, + "src": "12852:12:0", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + { + "argumentTypes": null, + "id": 611, + "name": "buyer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 573, + "src": "12886:5:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 612, + "name": "seller", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 575, + "src": "12913:6:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 613, + "name": "moderator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 577, + "src": "12941:9:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 615, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1396, + "src": "12980:4:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Escrow_v1_0_$1206", + "typeString": "contract Escrow_v1_0" + } } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Escrow_v1_0_$1206", + "typeString": "contract Escrow_v1_0" + } + ], + "id": 614, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "12972:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" }, + "id": 616, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12972:13:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 617, + "name": "tokenAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 579, + "src": "13007:12:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ { - "argumentTypes": null, - "id": 633, - "name": "threshold", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 592, - "src": "13080:9:0", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } + "typeIdentifier": "t_bytes20", + "typeString": "bytes20" }, { - "argumentTypes": null, - "id": 634, - "name": "timeoutHours", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 594, - "src": "13111:12:0", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } + "typeIdentifier": "t_uint8", + "typeString": "uint8" }, { - "argumentTypes": null, - "id": 635, - "name": "buyer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 596, - "src": "13145:5:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } + "typeIdentifier": "t_uint32", + "typeString": "uint32" }, { - "argumentTypes": null, - "id": 636, - "name": "seller", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 598, - "src": "13172:6:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } + "typeIdentifier": "t_address", + "typeString": "address" }, { - "argumentTypes": null, - "id": 637, - "name": "moderator", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 600, - "src": "13200:9:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } + "typeIdentifier": "t_address", + "typeString": "address" }, { - "argumentTypes": null, - "id": 638, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1403, - "src": "13231:4:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Escrow_v1_0_$1213", - "typeString": "contract Escrow_v1_0" - } + "typeIdentifier": "t_address", + "typeString": "address" }, { - "argumentTypes": null, - "id": 639, - "name": "tokenAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 602, - "src": "13257:12:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" } ], "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes20", - "typeString": "bytes20" - }, - { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_contract$_Escrow_v1_0_$1213", - "typeString": "contract Escrow_v1_0" - }, + "argumentTypes": null, + "id": 606, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1366, + "src": "12753:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 607, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "encodePacked", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "12753:16:0", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", + "typeString": "function () pure returns (bytes memory)" + } + }, + "id": 618, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12753:284:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 605, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1373, + "src": "12726:9:0", + "typeDescriptions": { + "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", + "typeString": "function () pure returns (bytes32)" + } + }, + "id": 619, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12726:325:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "functionReturnParameters": 583, + "id": 620, + "nodeType": "Return", + "src": "12719:332:0" + } + ] + }, + "id": 622, + "nodeType": "IfStatement", + "src": "12344:718:0", + "trueBody": { + "id": 604, + "nodeType": "Block", + "src": "12376:323:0", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 592, + "name": "uniqueId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 567, + "src": "12462:8:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes20", + "typeString": "bytes20" + } + }, + { + "argumentTypes": null, + "id": 593, + "name": "threshold", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 569, + "src": "12492:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + { + "argumentTypes": null, + "id": 594, + "name": "timeoutHours", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 571, + "src": "12523:12:0", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + { + "argumentTypes": null, + "id": 595, + "name": "buyer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 573, + "src": "12557:5:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 596, + "name": "seller", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 575, + "src": "12584:6:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 597, + "name": "moderator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 577, + "src": "12612:9:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "arguments": [ { - "typeIdentifier": "t_address", - "typeString": "address" + "argumentTypes": null, + "id": 599, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1396, + "src": "12651:4:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Escrow_v1_0_$1206", + "typeString": "contract Escrow_v1_0" + } } ], "expression": { - "argumentTypes": null, - "id": 630, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1373, - "src": "13012:3:0", + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Escrow_v1_0_$1206", + "typeString": "contract Escrow_v1_0" + } + ], + "id": 598, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "12643:7:0", "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" }, - "id": 631, + "id": 600, "isConstant": false, "isLValue": false, - "isPure": true, + "isPure": false, + "kind": "typeConversion", "lValueRequested": false, - "memberName": "encodePacked", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "13012:16:0", + "names": [], + "nodeType": "FunctionCall", + "src": "12643:13:0", "typeDescriptions": { - "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", - "typeString": "function () pure returns (bytes memory)" + "typeIdentifier": "t_address", + "typeString": "address" } - }, - "id": 640, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13012:275:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" } ], - "id": 629, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1380, - "src": "12985:9:0", - "typeDescriptions": { - "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", - "typeString": "function () pure returns (bytes32)" - } - }, - "id": 641, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12985:316:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "src": "12978:323:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "id": 643, - "nodeType": "ExpressionStatement", - "src": "12978:323:0" - } - ] - }, - "id": 645, - "nodeType": "IfStatement", - "src": "12612:700:0", - "trueBody": { - "id": 627, - "nodeType": "Block", - "src": "12644:314:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 625, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 612, - "name": "hash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 605, - "src": "12658:4:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ + "expression": { + "argumentTypes": [ { - "argumentTypes": null, - "id": 616, - "name": "uniqueId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 590, - "src": "12730:8:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes20", - "typeString": "bytes20" - } + "typeIdentifier": "t_bytes20", + "typeString": "bytes20" }, { - "argumentTypes": null, - "id": 617, - "name": "threshold", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 592, - "src": "12760:9:0", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } + "typeIdentifier": "t_uint8", + "typeString": "uint8" }, { - "argumentTypes": null, - "id": 618, - "name": "timeoutHours", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 594, - "src": "12791:12:0", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } + "typeIdentifier": "t_uint32", + "typeString": "uint32" }, { - "argumentTypes": null, - "id": 619, - "name": "buyer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 596, - "src": "12825:5:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } + "typeIdentifier": "t_address", + "typeString": "address" }, { - "argumentTypes": null, - "id": 620, - "name": "seller", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 598, - "src": "12852:6:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } + "typeIdentifier": "t_address", + "typeString": "address" }, { - "argumentTypes": null, - "id": 621, - "name": "moderator", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 600, - "src": "12880:9:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } + "typeIdentifier": "t_address", + "typeString": "address" }, { - "argumentTypes": null, - "id": 622, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1403, - "src": "12911:4:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Escrow_v1_0_$1213", - "typeString": "contract Escrow_v1_0" - } + "typeIdentifier": "t_address", + "typeString": "address" } ], "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes20", - "typeString": "bytes20" - }, - { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_contract$_Escrow_v1_0_$1213", - "typeString": "contract Escrow_v1_0" - } - ], - "expression": { - "argumentTypes": null, - "id": 614, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1373, - "src": "12692:3:0", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 615, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "encodePacked", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "12692:16:0", + "argumentTypes": null, + "id": 590, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1366, + "src": "12424:3:0", "typeDescriptions": { - "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", - "typeString": "function () pure returns (bytes memory)" + "typeIdentifier": "t_magic_abi", + "typeString": "abi" } }, - "id": 623, + "id": 591, "isConstant": false, "isLValue": false, - "isPure": false, - "kind": "functionCall", + "isPure": true, "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12692:241:0", + "memberName": "encodePacked", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "12424:16:0", "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" + "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", + "typeString": "function () pure returns (bytes memory)" } - ], - "id": 613, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1380, - "src": "12665:9:0", + }, + "id": 601, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12424:250:0", "typeDescriptions": { - "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", - "typeString": "function () pure returns (bytes32)" + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" } - }, - "id": 624, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12665:282:0", + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 589, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1373, + "src": "12397:9:0", "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" + "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", + "typeString": "function () pure returns (bytes32)" } }, - "src": "12658:289:0", + "id": 602, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12397:291:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "id": 626, - "nodeType": "ExpressionStatement", - "src": "12658:289:0" + "functionReturnParameters": 583, + "id": 603, + "nodeType": "Return", + "src": "12390:298:0" } ] } } ] }, - "documentation": "dev Method for calculating script hash. Calculation will depend upon the type of transaction\nETHER Type transaction-:\nScript Hash- keccak256(uniqueId, threshold, timeoutHours, buyer, seller, moderator)\nTOKEN Type transaction\nScript Hash- keccak256(uniqueId, threshold, timeoutHours, buyer, seller, moderator, tokenAddress)\nClient can use this method to verify whether it has calculated correct script hash or not", - "id": 647, + "documentation": "dev Method for calculating script hash. Calculation will depend upon the type of transaction\nETHER Type transaction-:\nScript Hash- keccak256(uniqueId, threshold, timeoutHours, buyer, seller, moderator, multiSigContractAddress)\nTOKEN Type transaction\nScript Hash- keccak256(uniqueId, threshold, timeoutHours, buyer, seller, moderator, multiSigContractAddress, tokenAddress)\nClient can use this method to verify whether it has calculated correct script hash or not", + "id": 624, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -25494,16 +25204,16 @@ "name": "calculateRedeemScriptHash", "nodeType": "FunctionDefinition", "parameters": { - "id": 603, + "id": 580, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 590, + "id": 567, "name": "uniqueId", "nodeType": "VariableDeclaration", - "scope": 647, - "src": "12358:16:0", + "scope": 624, + "src": "12095:16:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -25511,10 +25221,10 @@ "typeString": "bytes20" }, "typeName": { - "id": 589, + "id": 566, "name": "bytes20", "nodeType": "ElementaryTypeName", - "src": "12358:7:0", + "src": "12095:7:0", "typeDescriptions": { "typeIdentifier": "t_bytes20", "typeString": "bytes20" @@ -25525,11 +25235,11 @@ }, { "constant": false, - "id": 592, + "id": 569, "name": "threshold", "nodeType": "VariableDeclaration", - "scope": 647, - "src": "12384:15:0", + "scope": 624, + "src": "12121:15:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -25537,10 +25247,10 @@ "typeString": "uint8" }, "typeName": { - "id": 591, + "id": 568, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "12384:5:0", + "src": "12121:5:0", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -25551,11 +25261,11 @@ }, { "constant": false, - "id": 594, + "id": 571, "name": "timeoutHours", "nodeType": "VariableDeclaration", - "scope": 647, - "src": "12409:19:0", + "scope": 624, + "src": "12146:19:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -25563,10 +25273,10 @@ "typeString": "uint32" }, "typeName": { - "id": 593, + "id": 570, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "12409:6:0", + "src": "12146:6:0", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -25577,11 +25287,11 @@ }, { "constant": false, - "id": 596, + "id": 573, "name": "buyer", "nodeType": "VariableDeclaration", - "scope": 647, - "src": "12438:13:0", + "scope": 624, + "src": "12175:13:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -25589,10 +25299,10 @@ "typeString": "address" }, "typeName": { - "id": 595, + "id": 572, "name": "address", "nodeType": "ElementaryTypeName", - "src": "12438:7:0", + "src": "12175:7:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -25603,11 +25313,11 @@ }, { "constant": false, - "id": 598, + "id": 575, "name": "seller", "nodeType": "VariableDeclaration", - "scope": 647, - "src": "12461:14:0", + "scope": 624, + "src": "12198:14:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -25615,10 +25325,10 @@ "typeString": "address" }, "typeName": { - "id": 597, + "id": 574, "name": "address", "nodeType": "ElementaryTypeName", - "src": "12461:7:0", + "src": "12198:7:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -25629,11 +25339,11 @@ }, { "constant": false, - "id": 600, + "id": 577, "name": "moderator", "nodeType": "VariableDeclaration", - "scope": 647, - "src": "12485:17:0", + "scope": 624, + "src": "12222:17:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -25641,10 +25351,10 @@ "typeString": "address" }, "typeName": { - "id": 599, + "id": 576, "name": "address", "nodeType": "ElementaryTypeName", - "src": "12485:7:0", + "src": "12222:7:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -25655,11 +25365,11 @@ }, { "constant": false, - "id": 602, + "id": 579, "name": "tokenAddress", "nodeType": "VariableDeclaration", - "scope": 647, - "src": "12512:20:0", + "scope": 624, + "src": "12249:20:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -25667,10 +25377,10 @@ "typeString": "address" }, "typeName": { - "id": 601, + "id": 578, "name": "address", "nodeType": "ElementaryTypeName", - "src": "12512:7:0", + "src": "12249:7:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -25680,20 +25390,20 @@ "visibility": "internal" } ], - "src": "12348:190:0" + "src": "12085:190:0" }, "payable": false, "returnParameters": { - "id": 606, + "id": 583, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 605, - "name": "hash", + "id": 582, + "name": "", "nodeType": "VariableDeclaration", - "scope": 647, - "src": "12584:12:0", + "scope": 624, + "src": "12321:7:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -25701,10 +25411,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 604, + "id": 581, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "12584:7:0", + "src": "12321:7:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -25714,32 +25424,32 @@ "visibility": "internal" } ], - "src": "12583:14:0" + "src": "12320:9:0" }, - "scope": 1213, - "src": "12314:1004:0", + "scope": 1206, + "src": "12051:1017:0", "stateMutability": "view", "superFunction": null, "visibility": "public" }, { "body": { - "id": 715, + "id": 692, "nodeType": "Block", - "src": "13802:742:0", + "src": "13553:797:0", "statements": [ { "assignments": [ - 668 + 645 ], "declarations": [ { "constant": false, - "id": 668, + "id": 645, "name": "lastRecovered", "nodeType": "VariableDeclaration", - "scope": 716, - "src": "13812:21:0", + "scope": 693, + "src": "13563:21:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -25747,10 +25457,10 @@ "typeString": "address" }, "typeName": { - "id": 667, + "id": 644, "name": "address", "nodeType": "ElementaryTypeName", - "src": "13812:7:0", + "src": "13563:7:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -25760,18 +25470,18 @@ "visibility": "internal" } ], - "id": 677, + "id": 654, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 670, + "id": 647, "name": "sigV", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 650, - "src": "13866:4:0", + "referencedDeclaration": 627, + "src": "13618:4:0", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint8_$dyn_memory_ptr", "typeString": "uint8[] memory" @@ -25779,12 +25489,12 @@ }, { "argumentTypes": null, - "id": 671, + "id": 648, "name": "sigR", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 653, - "src": "13884:4:0", + "referencedDeclaration": 630, + "src": "13636:4:0", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr", "typeString": "bytes32[] memory" @@ -25792,12 +25502,12 @@ }, { "argumentTypes": null, - "id": 672, + "id": 649, "name": "sigS", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 656, - "src": "13902:4:0", + "referencedDeclaration": 633, + "src": "13654:4:0", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr", "typeString": "bytes32[] memory" @@ -25805,12 +25515,12 @@ }, { "argumentTypes": null, - "id": 673, + "id": 650, "name": "scriptHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 658, - "src": "13920:10:0", + "referencedDeclaration": 635, + "src": "13672:10:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -25818,12 +25528,12 @@ }, { "argumentTypes": null, - "id": 674, + "id": 651, "name": "destinations", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 661, - "src": "13944:12:0", + "referencedDeclaration": 638, + "src": "13696:12:0", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" @@ -25831,12 +25541,12 @@ }, { "argumentTypes": null, - "id": 675, + "id": 652, "name": "amounts", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 664, - "src": "13970:7:0", + "referencedDeclaration": 641, + "src": "13722:7:0", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", "typeString": "uint256[] memory" @@ -25870,18 +25580,18 @@ "typeString": "uint256[] memory" } ], - "id": 669, - "name": "verifySignatures", + "id": 646, + "name": "_verifySignatures", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1026, - "src": "13836:16:0", + "referencedDeclaration": 1017, + "src": "13587:17:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_array$_t_uint8_$dyn_memory_ptr_$_t_array$_t_bytes32_$dyn_memory_ptr_$_t_array$_t_bytes32_$dyn_memory_ptr_$_t_bytes32_$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$returns$_t_address_$", "typeString": "function (uint8[] memory,bytes32[] memory,bytes32[] memory,bytes32,address[] memory,uint256[] memory) returns (address)" } }, - "id": 676, + "id": 653, "isConstant": false, "isLValue": false, "isPure": false, @@ -25889,27 +25599,27 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "13836:151:0", + "src": "13587:152:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "VariableDeclarationStatement", - "src": "13812:175:0" + "src": "13563:176:0" }, { "assignments": [ - 679 + 656 ], "declarations": [ { "constant": false, - "id": 679, + "id": 656, "name": "timeLockExpired", "nodeType": "VariableDeclaration", - "scope": 716, - "src": "13998:20:0", + "scope": 693, + "src": "13750:20:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -25917,10 +25627,10 @@ "typeString": "bool" }, "typeName": { - "id": 678, + "id": 655, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "13998:4:0", + "src": "13750:4:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -25930,7 +25640,7 @@ "visibility": "internal" } ], - "id": 690, + "id": 667, "initialValue": { "argumentTypes": null, "arguments": [ @@ -25940,26 +25650,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 681, + "id": 658, "name": "transactions", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 77, - "src": "14052:12:0", + "referencedDeclaration": 75, + "src": "13805:12:0", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Transaction_$73_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Transaction_$71_storage_$", "typeString": "mapping(bytes32 => struct Escrow_v1_0.Transaction storage ref)" } }, - "id": 683, + "id": 660, "indexExpression": { "argumentTypes": null, - "id": 682, + "id": 659, "name": "scriptHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 658, - "src": "14065:10:0", + "referencedDeclaration": 635, + "src": "13818:10:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -25970,21 +25680,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "14052:24:0", + "src": "13805:24:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Transaction_$73_storage", + "typeIdentifier": "t_struct$_Transaction_$71_storage", "typeString": "struct Escrow_v1_0.Transaction storage ref" } }, - "id": 684, + "id": 661, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "timeoutHours", "nodeType": "MemberAccess", - "referencedDeclaration": 52, - "src": "14052:37:0", + "referencedDeclaration": 50, + "src": "13805:37:0", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -25996,26 +25706,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 685, + "id": 662, "name": "transactions", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 77, - "src": "14103:12:0", + "referencedDeclaration": 75, + "src": "13856:12:0", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Transaction_$73_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Transaction_$71_storage_$", "typeString": "mapping(bytes32 => struct Escrow_v1_0.Transaction storage ref)" } }, - "id": 687, + "id": 664, "indexExpression": { "argumentTypes": null, - "id": 686, + "id": 663, "name": "scriptHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 658, - "src": "14116:10:0", + "referencedDeclaration": 635, + "src": "13869:10:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -26026,21 +25736,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "14103:24:0", + "src": "13856:24:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Transaction_$73_storage", + "typeIdentifier": "t_struct$_Transaction_$71_storage", "typeString": "struct Escrow_v1_0.Transaction storage ref" } }, - "id": 688, + "id": 665, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "lastModified", "nodeType": "MemberAccess", - "referencedDeclaration": 44, - "src": "14103:37:0", + "referencedDeclaration": 42, + "src": "13856:37:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -26058,18 +25768,18 @@ "typeString": "uint256" } ], - "id": 680, - "name": "isTimeLockExpired", + "id": 657, + "name": "_isTimeLockExpired", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1060, - "src": "14021:17:0", + "referencedDeclaration": 1049, + "src": "13773:18:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_uint32_$_t_uint256_$returns$_t_bool_$", "typeString": "function (uint32,uint256) view returns (bool)" } }, - "id": 689, + "id": 666, "isConstant": false, "isLValue": false, "isPure": false, @@ -26077,14 +25787,14 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "14021:129:0", + "src": "13773:130:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "VariableDeclarationStatement", - "src": "13998:152:0" + "src": "13750:153:0" }, { "condition": { @@ -26093,7 +25803,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 708, + "id": 685, "isConstant": false, "isLValue": false, "isPure": false, @@ -26104,7 +25814,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 697, + "id": 674, "isConstant": false, "isLValue": false, "isPure": false, @@ -26113,18 +25823,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 691, + "id": 668, "name": "sigV", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 650, - "src": "14322:4:0", + "referencedDeclaration": 627, + "src": "14075:4:0", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint8_$dyn_memory_ptr", "typeString": "uint8[] memory" } }, - "id": 692, + "id": 669, "isConstant": false, "isLValue": false, "isPure": false, @@ -26132,7 +25842,7 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "14322:11:0", + "src": "14075:11:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -26146,26 +25856,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 693, + "id": 670, "name": "transactions", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 77, - "src": "14336:12:0", + "referencedDeclaration": 75, + "src": "14089:12:0", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Transaction_$73_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Transaction_$71_storage_$", "typeString": "mapping(bytes32 => struct Escrow_v1_0.Transaction storage ref)" } }, - "id": 695, + "id": 672, "indexExpression": { "argumentTypes": null, - "id": 694, + "id": 671, "name": "scriptHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 658, - "src": "14349:10:0", + "referencedDeclaration": 635, + "src": "14102:10:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -26176,27 +25886,27 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "14336:24:0", + "src": "14089:24:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Transaction_$73_storage", + "typeIdentifier": "t_struct$_Transaction_$71_storage", "typeString": "struct Escrow_v1_0.Transaction storage ref" } }, - "id": 696, + "id": 673, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "threshold", "nodeType": "MemberAccess", - "referencedDeclaration": 50, - "src": "14336:34:0", + "referencedDeclaration": 48, + "src": "14089:34:0", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, - "src": "14322:48:0", + "src": "14075:48:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -26213,14 +25923,14 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 706, + "id": 683, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 699, + "id": 676, "isConstant": false, "isLValue": false, "isPure": false, @@ -26228,15 +25938,15 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "14375:16:0", + "src": "14128:16:0", "subExpression": { "argumentTypes": null, - "id": 698, + "id": 675, "name": "timeLockExpired", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 679, - "src": "14376:15:0", + "referencedDeclaration": 656, + "src": "14129:15:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -26255,19 +25965,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 705, + "id": 682, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 700, + "id": 677, "name": "lastRecovered", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 668, - "src": "14395:13:0", + "referencedDeclaration": 645, + "src": "14148:13:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -26281,26 +25991,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 701, + "id": 678, "name": "transactions", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 77, - "src": "14412:12:0", + "referencedDeclaration": 75, + "src": "14165:12:0", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Transaction_$73_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Transaction_$71_storage_$", "typeString": "mapping(bytes32 => struct Escrow_v1_0.Transaction storage ref)" } }, - "id": 703, + "id": 680, "indexExpression": { "argumentTypes": null, - "id": 702, + "id": 679, "name": "scriptHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 658, - "src": "14425:10:0", + "referencedDeclaration": 635, + "src": "14178:10:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -26311,66 +26021,66 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "14412:24:0", + "src": "14165:24:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Transaction_$73_storage", + "typeIdentifier": "t_struct$_Transaction_$71_storage", "typeString": "struct Escrow_v1_0.Transaction storage ref" } }, - "id": 704, + "id": 681, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "seller", "nodeType": "MemberAccess", - "referencedDeclaration": 56, - "src": "14412:31:0", + "referencedDeclaration": 54, + "src": "14165:31:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "14395:48:0", + "src": "14148:48:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "14375:68:0", + "src": "14128:68:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } ], - "id": 707, + "id": 684, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "14374:70:0", + "src": "14127:70:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "14322:122:0", + "src": "14075:122:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 714, + "id": 691, "nodeType": "IfStatement", - "src": "14301:236:0", + "src": "14054:289:0", "trueBody": { - "id": 713, + "id": 690, "nodeType": "Block", - "src": "14467:70:0", + "src": "14220:123:0", "statements": [ { "expression": { @@ -26378,45 +26088,45 @@ "arguments": [ { "argumentTypes": null, - "hexValue": "736967562e6c656e67746820697320756e64657220746865207468726573686f6c642e", - "id": 710, + "hexValue": "4d696e696d756d206e756d626572206f66207369676e61747572657320617265206e6f7420636f6c6c656374656420616e642074696d65206c6f636b2065787069727920636f6e646974696f6e73206e6f74206d65742121", + "id": 687, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "14488:37:0", + "src": "14241:90:0", "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_stringliteral_d1b34f8ee6043043ff8e104db499160a1e51c77ca18fe42fba7312fd923c28e1", - "typeString": "literal_string \"sigV.length is under the threshold.\"" + "typeIdentifier": "t_stringliteral_e454643f61f81e3a3dc8dabaafde295fea592e232abeb03abbb1835bdc3d20d0", + "typeString": "literal_string \"Minimum number of signatures are not collected and time lock expiry conditions not met!!\"" }, - "value": "sigV.length is under the threshold." + "value": "Minimum number of signatures are not collected and time lock expiry conditions not met!!" } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_stringliteral_d1b34f8ee6043043ff8e104db499160a1e51c77ca18fe42fba7312fd923c28e1", - "typeString": "literal_string \"sigV.length is under the threshold.\"" + "typeIdentifier": "t_stringliteral_e454643f61f81e3a3dc8dabaafde295fea592e232abeb03abbb1835bdc3d20d0", + "typeString": "literal_string \"Minimum number of signatures are not collected and time lock expiry conditions not met!!\"" } ], - "id": 709, + "id": 686, "name": "revert", "nodeType": "Identifier", "overloadedDeclarations": [ - 1391, - 1392 + 1384, + 1385 ], - "referencedDeclaration": 1392, - "src": "14481:6:0", + "referencedDeclaration": 1385, + "src": "14234:6:0", "typeDescriptions": { "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$", "typeString": "function (string memory) pure" } }, - "id": 711, + "id": 688, "isConstant": false, "isLValue": false, "isPure": false, @@ -26424,15 +26134,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "14481:45:0", + "src": "14234:98:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 712, + "id": 689, "nodeType": "ExpressionStatement", - "src": "14481:45:0" + "src": "14234:98:0" } ] } @@ -26440,24 +26150,24 @@ ] }, "documentation": "@dev This methods checks validity of transaction\n1. Verify Signatures\n2. Check if minimum number of signatures has been acquired\n3. If above condition is false, check if time lock is expired and the execution is signed by seller", - "id": 716, + "id": 693, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [], - "name": "verifyTransaction", + "name": "_verifyTransaction", "nodeType": "FunctionDefinition", "parameters": { - "id": 665, + "id": 642, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 650, + "id": 627, "name": "sigV", "nodeType": "VariableDeclaration", - "scope": 716, - "src": "13628:12:0", + "scope": 693, + "src": "13379:12:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -26466,19 +26176,19 @@ }, "typeName": { "baseType": { - "id": 648, + "id": 625, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "13628:5:0", + "src": "13379:5:0", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, - "id": 649, + "id": 626, "length": null, "nodeType": "ArrayTypeName", - "src": "13628:7:0", + "src": "13379:7:0", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint8_$dyn_storage_ptr", "typeString": "uint8[]" @@ -26489,11 +26199,11 @@ }, { "constant": false, - "id": 653, + "id": 630, "name": "sigR", "nodeType": "VariableDeclaration", - "scope": 716, - "src": "13650:14:0", + "scope": 693, + "src": "13401:14:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -26502,19 +26212,19 @@ }, "typeName": { "baseType": { - "id": 651, + "id": 628, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "13650:7:0", + "src": "13401:7:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "id": 652, + "id": 629, "length": null, "nodeType": "ArrayTypeName", - "src": "13650:9:0", + "src": "13401:9:0", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", "typeString": "bytes32[]" @@ -26525,11 +26235,11 @@ }, { "constant": false, - "id": 656, + "id": 633, "name": "sigS", "nodeType": "VariableDeclaration", - "scope": 716, - "src": "13674:14:0", + "scope": 693, + "src": "13425:14:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -26538,19 +26248,19 @@ }, "typeName": { "baseType": { - "id": 654, + "id": 631, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "13674:7:0", + "src": "13425:7:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "id": 655, + "id": 632, "length": null, "nodeType": "ArrayTypeName", - "src": "13674:9:0", + "src": "13425:9:0", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", "typeString": "bytes32[]" @@ -26561,11 +26271,11 @@ }, { "constant": false, - "id": 658, + "id": 635, "name": "scriptHash", "nodeType": "VariableDeclaration", - "scope": 716, - "src": "13698:18:0", + "scope": 693, + "src": "13449:18:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -26573,10 +26283,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 657, + "id": 634, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "13698:7:0", + "src": "13449:7:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -26587,11 +26297,11 @@ }, { "constant": false, - "id": 661, + "id": 638, "name": "destinations", "nodeType": "VariableDeclaration", - "scope": 716, - "src": "13726:22:0", + "scope": 693, + "src": "13477:22:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -26600,19 +26310,19 @@ }, "typeName": { "baseType": { - "id": 659, + "id": 636, "name": "address", "nodeType": "ElementaryTypeName", - "src": "13726:7:0", + "src": "13477:7:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 660, + "id": 637, "length": null, "nodeType": "ArrayTypeName", - "src": "13726:9:0", + "src": "13477:9:0", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]" @@ -26623,11 +26333,11 @@ }, { "constant": false, - "id": 664, + "id": 641, "name": "amounts", "nodeType": "VariableDeclaration", - "scope": 716, - "src": "13758:17:0", + "scope": 693, + "src": "13509:17:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -26636,19 +26346,19 @@ }, "typeName": { "baseType": { - "id": 662, + "id": 639, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "13758:7:0", + "src": "13509:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 663, + "id": 640, "length": null, "nodeType": "ArrayTypeName", - "src": "13758:9:0", + "src": "13509:9:0", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", "typeString": "uint256[]" @@ -26658,54 +26368,54 @@ "visibility": "internal" } ], - "src": "13618:163:0" + "src": "13369:163:0" }, "payable": false, "returnParameters": { - "id": 666, + "id": 643, "nodeType": "ParameterList", "parameters": [], - "src": "13802:0:0" + "src": "13553:0:0" }, - "scope": 1213, - "src": "13592:952:0", + "scope": 1206, + "src": "13342:1008:0", "stateMutability": "nonpayable", "superFunction": null, "visibility": "private" }, { "body": { - "id": 901, + "id": 885, "nodeType": "Block", - "src": "14847:1540:0", + "src": "14637:1562:0", "statements": [ { "assignments": [ - 730 + 707 ], "declarations": [ { "constant": false, - "id": 730, + "id": 707, "name": "t", "nodeType": "VariableDeclaration", - "scope": 902, - "src": "14857:21:0", + "scope": 886, + "src": "14647:21:0", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { - "typeIdentifier": "t_struct$_Transaction_$73_storage_ptr", + "typeIdentifier": "t_struct$_Transaction_$71_storage_ptr", "typeString": "struct Escrow_v1_0.Transaction" }, "typeName": { "contractScope": null, - "id": 729, + "id": 706, "name": "Transaction", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 73, - "src": "14857:11:0", + "referencedDeclaration": 71, + "src": "14647:11:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Transaction_$73_storage_ptr", + "typeIdentifier": "t_struct$_Transaction_$71_storage_ptr", "typeString": "struct Escrow_v1_0.Transaction" } }, @@ -26713,31 +26423,31 @@ "visibility": "internal" } ], - "id": 734, + "id": 711, "initialValue": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 731, + "id": 708, "name": "transactions", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 77, - "src": "14881:12:0", + "referencedDeclaration": 75, + "src": "14671:12:0", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Transaction_$73_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Transaction_$71_storage_$", "typeString": "mapping(bytes32 => struct Escrow_v1_0.Transaction storage ref)" } }, - "id": 733, + "id": 710, "indexExpression": { "argumentTypes": null, - "id": 732, + "id": 709, "name": "scriptHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 718, - "src": "14894:10:0", + "referencedDeclaration": 695, + "src": "14684:10:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -26748,14 +26458,68 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "14881:24:0", + "src": "14671:24:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Transaction_$73_storage", + "typeIdentifier": "t_struct$_Transaction_$71_storage", "typeString": "struct Escrow_v1_0.Transaction storage ref" } }, "nodeType": "VariableDeclarationStatement", - "src": "14857:48:0" + "src": "14647:48:0" + }, + { + "assignments": [ + 713 + ], + "declarations": [ + { + "constant": false, + "id": 713, + "name": "valueTransferred", + "nodeType": "VariableDeclaration", + "scope": 886, + "src": "14706:24:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 712, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14706:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 715, + "initialValue": { + "argumentTypes": null, + "hexValue": "30", + "id": 714, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14733:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "14706:28:0" }, { "condition": { @@ -26764,7 +26528,7 @@ "typeIdentifier": "t_enum$_TransactionType_$12", "typeString": "enum Escrow_v1_0.TransactionType" }, - "id": 739, + "id": 720, "isConstant": false, "isLValue": false, "isPure": false, @@ -26773,26 +26537,26 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 735, + "id": 716, "name": "t", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 730, - "src": "14920:1:0", + "referencedDeclaration": 707, + "src": "14749:1:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Transaction_$73_storage_ptr", + "typeIdentifier": "t_struct$_Transaction_$71_storage_ptr", "typeString": "struct Escrow_v1_0.Transaction storage pointer" } }, - "id": 736, + "id": 717, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "transactionType", "nodeType": "MemberAccess", - "referencedDeclaration": 48, - "src": "14920:17:0", + "referencedDeclaration": 46, + "src": "14749:17:0", "typeDescriptions": { "typeIdentifier": "t_enum$_TransactionType_$12", "typeString": "enum Escrow_v1_0.TransactionType" @@ -26804,18 +26568,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 737, + "id": 718, "name": "TransactionType", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12, - "src": "14941:15:0", + "src": "14770:15:0", "typeDescriptions": { "typeIdentifier": "t_type$_t_enum$_TransactionType_$12_$", "typeString": "type(enum Escrow_v1_0.TransactionType)" } }, - "id": 738, + "id": 719, "isConstant": false, "isLValue": false, "isPure": true, @@ -26823,13 +26587,13 @@ "memberName": "ETHER", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "14941:21:0", + "src": "14770:21:0", "typeDescriptions": { "typeIdentifier": "t_enum$_TransactionType_$12", "typeString": "enum Escrow_v1_0.TransactionType" } }, - "src": "14920:42:0", + "src": "14749:42:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -26842,7 +26606,7 @@ "typeIdentifier": "t_enum$_TransactionType_$12", "typeString": "enum Escrow_v1_0.TransactionType" }, - "id": 813, + "id": 797, "isConstant": false, "isLValue": false, "isPure": false, @@ -26851,26 +26615,26 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 809, + "id": 793, "name": "t", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 730, - "src": "15561:1:0", + "referencedDeclaration": 707, + "src": "15405:1:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Transaction_$73_storage_ptr", + "typeIdentifier": "t_struct$_Transaction_$71_storage_ptr", "typeString": "struct Escrow_v1_0.Transaction storage pointer" } }, - "id": 810, + "id": 794, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "transactionType", "nodeType": "MemberAccess", - "referencedDeclaration": 48, - "src": "15561:17:0", + "referencedDeclaration": 46, + "src": "15405:17:0", "typeDescriptions": { "typeIdentifier": "t_enum$_TransactionType_$12", "typeString": "enum Escrow_v1_0.TransactionType" @@ -26882,18 +26646,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 811, + "id": 795, "name": "TransactionType", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12, - "src": "15582:15:0", + "src": "15426:15:0", "typeDescriptions": { "typeIdentifier": "t_type$_t_enum$_TransactionType_$12_$", "typeString": "type(enum Escrow_v1_0.TransactionType)" } }, - "id": 812, + "id": 796, "isConstant": false, "isLValue": false, "isPure": true, @@ -26901,122 +26665,54 @@ "memberName": "TOKEN", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "15582:21:0", + "src": "15426:21:0", "typeDescriptions": { "typeIdentifier": "t_enum$_TransactionType_$12", "typeString": "enum Escrow_v1_0.TransactionType" } }, - "src": "15561:42:0", + "src": "15405:42:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "falseBody": { - "id": 898, - "nodeType": "Block", - "src": "16221:160:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "5472616e736174696f6e2074797065206973206e6f7420737570706f727465642e", - "id": 895, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "16334:35:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_9d93f6a20d47e99a6df20afacc401ffacf7e50a57b5dfa59ab7b43321870608b", - "typeString": "literal_string \"Transation type is not supported.\"" - }, - "value": "Transation type is not supported." - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_stringliteral_9d93f6a20d47e99a6df20afacc401ffacf7e50a57b5dfa59ab7b43321870608b", - "typeString": "literal_string \"Transation type is not supported.\"" - } - ], - "id": 894, - "name": "revert", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1391, - 1392 - ], - "referencedDeclaration": 1392, - "src": "16327:6:0", - "typeDescriptions": { - "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$", - "typeString": "function (string memory) pure" - } - }, - "id": 896, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16327:43:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 897, - "nodeType": "ExpressionStatement", - "src": "16327:43:0" - } - ] - }, - "id": 899, + "falseBody": null, + "id": 881, "nodeType": "IfStatement", - "src": "15557:824:0", + "src": "15401:758:0", "trueBody": { - "id": 893, + "id": 880, "nodeType": "Block", - "src": "15605:610:0", + "src": "15449:710:0", "statements": [ { "assignments": [ - 815 + 799 ], "declarations": [ { "constant": false, - "id": 815, + "id": 799, "name": "token", "nodeType": "VariableDeclaration", - "scope": 902, - "src": "15620:20:0", + "scope": 886, + "src": "15464:20:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_ITokenContract_$1243", + "typeIdentifier": "t_contract$_ITokenContract_$1236", "typeString": "contract ITokenContract" }, "typeName": { "contractScope": null, - "id": 814, + "id": 798, "name": "ITokenContract", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1243, - "src": "15620:14:0", + "referencedDeclaration": 1236, + "src": "15464:14:0", "typeDescriptions": { - "typeIdentifier": "t_contract$_ITokenContract_$1243", + "typeIdentifier": "t_contract$_ITokenContract_$1236", "typeString": "contract ITokenContract" } }, @@ -27024,7 +26720,7 @@ "visibility": "internal" } ], - "id": 820, + "id": 804, "initialValue": { "argumentTypes": null, "arguments": [ @@ -27032,26 +26728,26 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 817, + "id": 801, "name": "t", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 730, - "src": "15658:1:0", + "referencedDeclaration": 707, + "src": "15502:1:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Transaction_$73_storage_ptr", + "typeIdentifier": "t_struct$_Transaction_$71_storage_ptr", "typeString": "struct Escrow_v1_0.Transaction storage pointer" } }, - "id": 818, + "id": 802, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "tokenAddress", "nodeType": "MemberAccess", - "referencedDeclaration": 58, - "src": "15658:14:0", + "referencedDeclaration": 56, + "src": "15502:14:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -27065,18 +26761,18 @@ "typeString": "address" } ], - "id": 816, + "id": 800, "name": "ITokenContract", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1243, - "src": "15643:14:0", + "referencedDeclaration": 1236, + "src": "15487:14:0", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ITokenContract_$1243_$", + "typeIdentifier": "t_type$_t_contract$_ITokenContract_$1236_$", "typeString": "type(contract ITokenContract)" } }, - "id": 819, + "id": 803, "isConstant": false, "isLValue": false, "isPure": false, @@ -27084,20 +26780,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "15643:30:0", + "src": "15487:30:0", "typeDescriptions": { - "typeIdentifier": "t_contract$_ITokenContract_$1243", + "typeIdentifier": "t_contract$_ITokenContract_$1236", "typeString": "contract ITokenContract" } }, "nodeType": "VariableDeclarationStatement", - "src": "15620:53:0" + "src": "15464:53:0" }, { "body": { - "id": 891, + "id": 878, "nodeType": "Block", - "src": "15736:469:0", + "src": "15580:569:0", "statements": [ { "expression": { @@ -27106,201 +26802,243 @@ { "argumentTypes": null, "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_address", + "typeString": "address" }, - "id": 846, + "id": 823, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 839, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { + "baseExpression": { "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 833, - "name": "destinations", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 721, - "src": "15763:12:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 835, - "indexExpression": { - "argumentTypes": null, - "id": 834, - "name": "j", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 822, - "src": "15776:1:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "15763:15:0", + "id": 817, + "name": "destinations", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 698, + "src": "15607:12:0", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" } }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { + "id": 819, + "indexExpression": { "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 837, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15790:1:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 836, + "id": 818, + "name": "j", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 806, + "src": "15620:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "15607:15:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 821, "isConstant": false, "isLValue": false, "isPure": true, + "kind": "number", "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "15782:7:0", + "nodeType": "Literal", + "src": "15634:1:0", + "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" }, - "typeName": "address" - }, - "id": 838, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 820, "isConstant": false, "isLValue": false, "isPure": true, - "kind": "typeConversion", "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15782:10:0", + "nodeType": "ElementaryTypeNameExpression", + "src": "15626:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 822, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15626:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "15607:29:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "7a65726f2061646472657373206973206e6f7420616c6c6f7765642061732064657374696e6174696f6e2061646472657373", + "id": 824, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15638:52:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_587fbb5a9b8e6d4cc482f236066ac51bcf007ae6026eab186437d2f1b22fc139", + "typeString": "literal_string \"zero address is not allowed as destination address\"" + }, + "value": "zero address is not allowed as destination address" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_587fbb5a9b8e6d4cc482f236066ac51bcf007ae6026eab186437d2f1b22fc139", + "typeString": "literal_string \"zero address is not allowed as destination address\"" + } + ], + "id": 816, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1382, + 1383 + ], + "referencedDeclaration": 1383, + "src": "15599:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 825, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15599:92:0", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 826, + "nodeType": "ExpressionStatement", + "src": "15599:92:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 828, + "name": "t", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 707, + "src": "15718:1:0", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_struct$_Transaction_$71_storage_ptr", + "typeString": "struct Escrow_v1_0.Transaction storage pointer" } }, - "src": "15763:29:0", + "id": 829, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "isOwner", + "nodeType": "MemberAccess", + "referencedDeclaration": 62, + "src": "15718:9:0", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" } }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { + "id": 833, + "indexExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 840, - "name": "t", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 730, - "src": "15796:1:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Transaction_$73_storage_ptr", - "typeString": "struct Escrow_v1_0.Transaction storage pointer" - } - }, - "id": 841, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "isOwner", - "nodeType": "MemberAccess", - "referencedDeclaration": 64, - "src": "15796:9:0", + "id": 830, + "name": "destinations", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 698, + "src": "15728:12:0", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" } }, - "id": 845, + "id": 832, "indexExpression": { "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 842, - "name": "destinations", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 721, - "src": "15806:12:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 844, - "indexExpression": { - "argumentTypes": null, - "id": 843, - "name": "j", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 822, - "src": "15819:1:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "15806:15:0", + "id": 831, + "name": "j", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 806, + "src": "15741:1:0", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, "isConstant": false, @@ -27308,13 +27046,18 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "15796:26:0", + "src": "15728:15:0", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_address", + "typeString": "address" } }, - "src": "15763:59:0", + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "15718:26:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -27322,21 +27065,21 @@ }, { "argumentTypes": null, - "hexValue": "4e6f7420612076616c69642064657374696e6174696f6e", - "id": 847, + "hexValue": "44657374696e6174696f6e2061646472657373206973206e6f74206f6e65206f6620746865206f776e657273", + "id": 834, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "15824:25:0", + "src": "15746:46:0", "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_stringliteral_4b4c116dbf18274831a2b569c567d9fd9a0e9828a6c86ee9f93e80400fb6c49f", - "typeString": "literal_string \"Not a valid destination\"" + "typeIdentifier": "t_stringliteral_5ccbe9d117aeeb4b3546dfe6a12f083cb37039367b3ec38b60873b8650bc846f", + "typeString": "literal_string \"Destination address is not one of the owners\"" }, - "value": "Not a valid destination" + "value": "Destination address is not one of the owners" } ], "expression": { @@ -27346,25 +27089,25 @@ "typeString": "bool" }, { - "typeIdentifier": "t_stringliteral_4b4c116dbf18274831a2b569c567d9fd9a0e9828a6c86ee9f93e80400fb6c49f", - "typeString": "literal_string \"Not a valid destination\"" + "typeIdentifier": "t_stringliteral_5ccbe9d117aeeb4b3546dfe6a12f083cb37039367b3ec38b60873b8650bc846f", + "typeString": "literal_string \"Destination address is not one of the owners\"" } ], - "id": 832, + "id": 827, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1389, - 1390 + 1382, + 1383 ], - "referencedDeclaration": 1390, - "src": "15755:7:0", + "referencedDeclaration": 1383, + "src": "15710:7:0", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 848, + "id": 835, "isConstant": false, "isLValue": false, "isPure": false, @@ -27372,15 +27115,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "15755:95:0", + "src": "15710:83:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 849, + "id": 836, "nodeType": "ExpressionStatement", - "src": "15755:95:0" + "src": "15710:83:0" }, { "expression": { @@ -27392,7 +27135,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 855, + "id": 842, "isConstant": false, "isLValue": false, "isPure": false, @@ -27401,26 +27144,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 851, + "id": 838, "name": "amounts", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 724, - "src": "15876:7:0", + "referencedDeclaration": 701, + "src": "15820:7:0", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", "typeString": "uint256[] memory" } }, - "id": 853, + "id": 840, "indexExpression": { "argumentTypes": null, - "id": 852, + "id": 839, "name": "j", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 822, - "src": "15884:1:0", + "referencedDeclaration": 806, + "src": "15828:1:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -27431,7 +27174,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "15876:10:0", + "src": "15820:10:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -27442,14 +27185,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 854, + "id": 841, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "15889:1:0", + "src": "15833:1:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -27457,7 +27200,7 @@ }, "value": "0" }, - "src": "15876:14:0", + "src": "15820:14:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -27466,14 +27209,14 @@ { "argumentTypes": null, "hexValue": "416d6f756e7420746f2062652073656e742073686f756c642062652067726561746572207468616e2030", - "id": 856, + "id": 843, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "15892:44:0", + "src": "15836:44:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_5e1271a09dbb64ae031de288deb0ad8d707df7db51d6e827931dc8fa6642a71e", @@ -27493,21 +27236,21 @@ "typeString": "literal_string \"Amount to be sent should be greater than 0\"" } ], - "id": 850, + "id": 837, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1389, - 1390 + 1382, + 1383 ], - "referencedDeclaration": 1390, - "src": "15868:7:0", + "referencedDeclaration": 1383, + "src": "15812:7:0", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 857, + "id": 844, "isConstant": false, "isLValue": false, "isPure": false, @@ -27515,32 +27258,32 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "15868:69:0", + "src": "15812:69:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 858, + "id": 845, "nodeType": "ExpressionStatement", - "src": "15868:69:0" + "src": "15812:69:0" }, { "expression": { "argumentTypes": null, - "id": 866, + "id": 853, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 859, + "id": 846, "name": "valueTransferred", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 727, - "src": "15956:16:0", + "referencedDeclaration": 713, + "src": "15900:16:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -27555,26 +27298,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 862, + "id": 849, "name": "amounts", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 724, - "src": "15996:7:0", + "referencedDeclaration": 701, + "src": "15940:7:0", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", "typeString": "uint256[] memory" } }, - "id": 864, + "id": 851, "indexExpression": { "argumentTypes": null, - "id": 863, + "id": 850, "name": "j", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 822, - "src": "16004:1:0", + "referencedDeclaration": 806, + "src": "15948:1:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -27585,7 +27328,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "15996:10:0", + "src": "15940:10:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -27601,32 +27344,32 @@ ], "expression": { "argumentTypes": null, - "id": 860, + "id": 847, "name": "valueTransferred", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 727, - "src": "15975:16:0", + "referencedDeclaration": 713, + "src": "15919:16:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 861, + "id": 848, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", - "referencedDeclaration": 1350, - "src": "15975:20:0", + "referencedDeclaration": 1343, + "src": "15919:20:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 865, + "id": 852, "isConstant": false, "isLValue": false, "isPure": false, @@ -27634,26 +27377,26 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "15975:32:0", + "src": "15919:32:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "15956:51:0", + "src": "15900:51:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 867, + "id": 854, "nodeType": "ExpressionStatement", - "src": "15956:51:0" + "src": "15900:51:0" }, { "expression": { "argumentTypes": null, - "id": 876, + "id": 863, "isConstant": false, "isLValue": false, "isPure": false, @@ -27664,56 +27407,56 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 868, + "id": 855, "name": "t", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 730, - "src": "16025:1:0", + "referencedDeclaration": 707, + "src": "15969:1:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Transaction_$73_storage_ptr", + "typeIdentifier": "t_struct$_Transaction_$71_storage_ptr", "typeString": "struct Escrow_v1_0.Transaction storage pointer" } }, - "id": 873, + "id": 860, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "beneficiaries", "nodeType": "MemberAccess", - "referencedDeclaration": 72, - "src": "16025:15:0", + "referencedDeclaration": 70, + "src": "15969:15:0", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, - "id": 874, + "id": 861, "indexExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 870, + "id": 857, "name": "destinations", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 721, - "src": "16041:12:0", + "referencedDeclaration": 698, + "src": "15985:12:0", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, - "id": 872, + "id": 859, "indexExpression": { "argumentTypes": null, - "id": 871, + "id": 858, "name": "j", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 822, - "src": "16054:1:0", + "referencedDeclaration": 806, + "src": "15998:1:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -27724,7 +27467,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "16041:15:0", + "src": "15985:15:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -27735,7 +27478,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "16025:32:0", + "src": "15969:32:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -27746,14 +27489,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "74727565", - "id": 875, + "id": 862, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "16060:4:0", + "src": "16004:4:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -27761,15 +27504,15 @@ }, "value": "true" }, - "src": "16025:39:0", + "src": "15969:39:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 877, + "id": 864, "nodeType": "ExpressionStatement", - "src": "16025:39:0" + "src": "15969:39:0" }, { "expression": { @@ -27782,26 +27525,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 881, + "id": 868, "name": "destinations", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 721, - "src": "16135:12:0", + "referencedDeclaration": 698, + "src": "16079:12:0", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, - "id": 883, + "id": 870, "indexExpression": { "argumentTypes": null, - "id": 882, + "id": 869, "name": "j", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 822, - "src": "16148:1:0", + "referencedDeclaration": 806, + "src": "16092:1:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -27812,7 +27555,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "16135:15:0", + "src": "16079:15:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -27822,26 +27565,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 884, + "id": 871, "name": "amounts", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 724, - "src": "16152:7:0", + "referencedDeclaration": 701, + "src": "16096:7:0", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", "typeString": "uint256[] memory" } }, - "id": 886, + "id": 873, "indexExpression": { "argumentTypes": null, - "id": 885, + "id": 872, "name": "j", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 822, - "src": "16160:1:0", + "referencedDeclaration": 806, + "src": "16104:1:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -27852,7 +27595,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "16152:10:0", + "src": "16096:10:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -27872,32 +27615,32 @@ ], "expression": { "argumentTypes": null, - "id": 879, + "id": 866, "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 815, - "src": "16120:5:0", + "referencedDeclaration": 799, + "src": "16064:5:0", "typeDescriptions": { - "typeIdentifier": "t_contract$_ITokenContract_$1243", + "typeIdentifier": "t_contract$_ITokenContract_$1236", "typeString": "contract ITokenContract" } }, - "id": 880, + "id": 867, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "transfer", "nodeType": "MemberAccess", - "referencedDeclaration": 1231, - "src": "16120:14:0", + "referencedDeclaration": 1224, + "src": "16064:14:0", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", "typeString": "function (address,uint256) external returns (bool)" } }, - "id": 887, + "id": 874, "isConstant": false, "isLValue": false, "isPure": false, @@ -27905,7 +27648,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "16120:43:0", + "src": "16064:43:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -27914,14 +27657,14 @@ { "argumentTypes": null, "hexValue": "546f6b656e207472616e73666572206661696c65642e", - "id": 888, + "id": 875, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "16165:24:0", + "src": "16109:24:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_e545223bb79d8456d66fa5a98897abb42bb4807111f004a120200da3b7e292c5", @@ -27941,21 +27684,21 @@ "typeString": "literal_string \"Token transfer failed.\"" } ], - "id": 878, + "id": 865, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1389, - 1390 + 1382, + 1383 ], - "referencedDeclaration": 1390, - "src": "16112:7:0", + "referencedDeclaration": 1383, + "src": "16056:7:0", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 889, + "id": 876, "isConstant": false, "isLValue": false, "isPure": false, @@ -27963,15 +27706,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "16112:78:0", + "src": "16056:78:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 890, + "id": 877, "nodeType": "ExpressionStatement", - "src": "16112:78:0" + "src": "16056:78:0" } ] }, @@ -27981,19 +27724,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 828, + "id": 812, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 825, + "id": 809, "name": "j", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 822, - "src": "15708:1:0", + "referencedDeclaration": 806, + "src": "15552:1:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -28005,18 +27748,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 826, + "id": 810, "name": "destinations", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 721, - "src": "15710:12:0", + "referencedDeclaration": 698, + "src": "15554:12:0", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, - "id": 827, + "id": 811, "isConstant": false, "isLValue": false, "isPure": false, @@ -28024,31 +27767,31 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "15710:19:0", + "src": "15554:19:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "15708:21:0", + "src": "15552:21:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 892, + "id": 879, "initializationExpression": { "assignments": [ - 822 + 806 ], "declarations": [ { "constant": false, - "id": 822, + "id": 806, "name": "j", "nodeType": "VariableDeclaration", - "scope": 902, - "src": "15693:9:0", + "scope": 886, + "src": "15537:9:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -28056,10 +27799,10 @@ "typeString": "uint256" }, "typeName": { - "id": 821, + "id": 805, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "15693:7:0", + "src": "15537:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -28069,18 +27812,18 @@ "visibility": "internal" } ], - "id": 824, + "id": 808, "initialValue": { "argumentTypes": null, "hexValue": "30", - "id": 823, + "id": 807, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "15705:1:0", + "src": "15549:1:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -28089,12 +27832,12 @@ "value": "0" }, "nodeType": "VariableDeclarationStatement", - "src": "15693:13:0" + "src": "15537:13:0" }, "loopExpression": { "expression": { "argumentTypes": null, - "id": 830, + "id": 814, "isConstant": false, "isLValue": false, "isPure": false, @@ -28102,15 +27845,15 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "15731:3:0", + "src": "15575:3:0", "subExpression": { "argumentTypes": null, - "id": 829, + "id": 813, "name": "j", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 822, - "src": "15731:1:0", + "referencedDeclaration": 806, + "src": "15575:1:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -28121,29 +27864,29 @@ "typeString": "uint256" } }, - "id": 831, + "id": 815, "nodeType": "ExpressionStatement", - "src": "15731:3:0" + "src": "15575:3:0" }, "nodeType": "ForStatement", - "src": "15688:517:0" + "src": "15532:617:0" } ] } }, - "id": 900, + "id": 882, "nodeType": "IfStatement", - "src": "14916:1465:0", + "src": "14745:1414:0", "trueBody": { - "id": 808, + "id": 792, "nodeType": "Block", - "src": "14964:587:0", + "src": "14793:602:0", "statements": [ { "body": { - "id": 806, + "id": 790, "nodeType": "Block", - "src": "15028:512:0", + "src": "14857:527:0", "statements": [ { "expression": { @@ -28152,201 +27895,243 @@ { "argumentTypes": null, "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_address", + "typeString": "address" }, - "id": 765, + "id": 739, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 758, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { + "baseExpression": { "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 752, - "name": "destinations", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 721, - "src": "15055:12:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 754, - "indexExpression": { - "argumentTypes": null, - "id": 753, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 741, - "src": "15068:1:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "15055:15:0", + "id": 733, + "name": "destinations", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 698, + "src": "14884:12:0", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" } }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { + "id": 735, + "indexExpression": { "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 756, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15082:1:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 755, + "id": 734, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 722, + "src": "14897:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "14884:15:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 737, "isConstant": false, "isLValue": false, "isPure": true, + "kind": "number", "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "15074:7:0", + "nodeType": "Literal", + "src": "14911:1:0", + "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" }, - "typeName": "address" - }, - "id": 757, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 736, "isConstant": false, "isLValue": false, "isPure": true, - "kind": "typeConversion", "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15074:10:0", + "nodeType": "ElementaryTypeNameExpression", + "src": "14903:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 738, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14903:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "14884:29:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "7a65726f2061646472657373206973206e6f7420616c6c6f7765642061732064657374696e6174696f6e2061646472657373", + "id": 740, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14915:52:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_587fbb5a9b8e6d4cc482f236066ac51bcf007ae6026eab186437d2f1b22fc139", + "typeString": "literal_string \"zero address is not allowed as destination address\"" + }, + "value": "zero address is not allowed as destination address" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_587fbb5a9b8e6d4cc482f236066ac51bcf007ae6026eab186437d2f1b22fc139", + "typeString": "literal_string \"zero address is not allowed as destination address\"" + } + ], + "id": 732, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1382, + 1383 + ], + "referencedDeclaration": 1383, + "src": "14876:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 741, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14876:92:0", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 742, + "nodeType": "ExpressionStatement", + "src": "14876:92:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 744, + "name": "t", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 707, + "src": "14995:1:0", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_struct$_Transaction_$71_storage_ptr", + "typeString": "struct Escrow_v1_0.Transaction storage pointer" } }, - "src": "15055:29:0", + "id": 745, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "isOwner", + "nodeType": "MemberAccess", + "referencedDeclaration": 62, + "src": "14995:9:0", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" } }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { + "id": 749, + "indexExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 759, - "name": "t", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 730, - "src": "15088:1:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Transaction_$73_storage_ptr", - "typeString": "struct Escrow_v1_0.Transaction storage pointer" - } - }, - "id": 760, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "isOwner", - "nodeType": "MemberAccess", - "referencedDeclaration": 64, - "src": "15088:9:0", + "id": 746, + "name": "destinations", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 698, + "src": "15005:12:0", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" } }, - "id": 764, + "id": 748, "indexExpression": { "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 761, - "name": "destinations", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 721, - "src": "15098:12:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 763, - "indexExpression": { - "argumentTypes": null, - "id": 762, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 741, - "src": "15111:1:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "15098:15:0", + "id": 747, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 722, + "src": "15018:1:0", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, "isConstant": false, @@ -28354,13 +28139,18 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "15088:26:0", + "src": "15005:15:0", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_address", + "typeString": "address" } }, - "src": "15055:59:0", + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "14995:26:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -28368,21 +28158,21 @@ }, { "argumentTypes": null, - "hexValue": "4e6f7420612076616c69642064657374696e6174696f6e", - "id": 766, + "hexValue": "44657374696e6174696f6e2061646472657373206973206e6f74206f6e65206f6620746865206f776e657273", + "id": 750, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "15116:25:0", + "src": "15023:46:0", "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_stringliteral_4b4c116dbf18274831a2b569c567d9fd9a0e9828a6c86ee9f93e80400fb6c49f", - "typeString": "literal_string \"Not a valid destination\"" + "typeIdentifier": "t_stringliteral_5ccbe9d117aeeb4b3546dfe6a12f083cb37039367b3ec38b60873b8650bc846f", + "typeString": "literal_string \"Destination address is not one of the owners\"" }, - "value": "Not a valid destination" + "value": "Destination address is not one of the owners" } ], "expression": { @@ -28392,25 +28182,25 @@ "typeString": "bool" }, { - "typeIdentifier": "t_stringliteral_4b4c116dbf18274831a2b569c567d9fd9a0e9828a6c86ee9f93e80400fb6c49f", - "typeString": "literal_string \"Not a valid destination\"" + "typeIdentifier": "t_stringliteral_5ccbe9d117aeeb4b3546dfe6a12f083cb37039367b3ec38b60873b8650bc846f", + "typeString": "literal_string \"Destination address is not one of the owners\"" } ], - "id": 751, + "id": 743, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1389, - 1390 + 1382, + 1383 ], - "referencedDeclaration": 1390, - "src": "15047:7:0", + "referencedDeclaration": 1383, + "src": "14987:7:0", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 767, + "id": 751, "isConstant": false, "isLValue": false, "isPure": false, @@ -28418,15 +28208,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "15047:95:0", + "src": "14987:83:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 768, + "id": 752, "nodeType": "ExpressionStatement", - "src": "15047:95:0" + "src": "14987:83:0" }, { "expression": { @@ -28438,7 +28228,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 774, + "id": 758, "isConstant": false, "isLValue": false, "isPure": false, @@ -28447,26 +28237,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 770, + "id": 754, "name": "amounts", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 724, - "src": "15168:7:0", + "referencedDeclaration": 701, + "src": "15097:7:0", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", "typeString": "uint256[] memory" } }, - "id": 772, + "id": 756, "indexExpression": { "argumentTypes": null, - "id": 771, + "id": 755, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 741, - "src": "15176:1:0", + "referencedDeclaration": 722, + "src": "15105:1:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -28477,7 +28267,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "15168:10:0", + "src": "15097:10:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -28488,14 +28278,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 773, + "id": 757, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "15181:1:0", + "src": "15110:1:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -28503,7 +28293,7 @@ }, "value": "0" }, - "src": "15168:14:0", + "src": "15097:14:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -28512,14 +28302,14 @@ { "argumentTypes": null, "hexValue": "416d6f756e7420746f2062652073656e742073686f756c642062652067726561746572207468616e2030", - "id": 775, + "id": 759, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "15184:44:0", + "src": "15113:44:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_5e1271a09dbb64ae031de288deb0ad8d707df7db51d6e827931dc8fa6642a71e", @@ -28539,21 +28329,21 @@ "typeString": "literal_string \"Amount to be sent should be greater than 0\"" } ], - "id": 769, + "id": 753, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1389, - 1390 + 1382, + 1383 ], - "referencedDeclaration": 1390, - "src": "15160:7:0", + "referencedDeclaration": 1383, + "src": "15089:7:0", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 776, + "id": 760, "isConstant": false, "isLValue": false, "isPure": false, @@ -28561,32 +28351,32 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "15160:69:0", + "src": "15089:69:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 777, + "id": 761, "nodeType": "ExpressionStatement", - "src": "15160:69:0" + "src": "15089:69:0" }, { "expression": { "argumentTypes": null, - "id": 785, + "id": 769, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 778, + "id": 762, "name": "valueTransferred", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 727, - "src": "15248:16:0", + "referencedDeclaration": 713, + "src": "15177:16:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -28601,26 +28391,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 781, + "id": 765, "name": "amounts", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 724, - "src": "15288:7:0", + "referencedDeclaration": 701, + "src": "15217:7:0", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", "typeString": "uint256[] memory" } }, - "id": 783, + "id": 767, "indexExpression": { "argumentTypes": null, - "id": 782, + "id": 766, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 741, - "src": "15296:1:0", + "referencedDeclaration": 722, + "src": "15225:1:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -28631,7 +28421,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "15288:10:0", + "src": "15217:10:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -28647,32 +28437,32 @@ ], "expression": { "argumentTypes": null, - "id": 779, + "id": 763, "name": "valueTransferred", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 727, - "src": "15267:16:0", + "referencedDeclaration": 713, + "src": "15196:16:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 780, + "id": 764, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", - "referencedDeclaration": 1350, - "src": "15267:20:0", + "referencedDeclaration": 1343, + "src": "15196:20:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 784, + "id": 768, "isConstant": false, "isLValue": false, "isPure": false, @@ -28680,26 +28470,26 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "15267:32:0", + "src": "15196:32:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "15248:51:0", + "src": "15177:51:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 786, + "id": 770, "nodeType": "ExpressionStatement", - "src": "15248:51:0" + "src": "15177:51:0" }, { "expression": { "argumentTypes": null, - "id": 795, + "id": 779, "isConstant": false, "isLValue": false, "isPure": false, @@ -28710,56 +28500,56 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 787, + "id": 771, "name": "t", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 730, - "src": "15318:1:0", + "referencedDeclaration": 707, + "src": "15247:1:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Transaction_$73_storage_ptr", + "typeIdentifier": "t_struct$_Transaction_$71_storage_ptr", "typeString": "struct Escrow_v1_0.Transaction storage pointer" } }, - "id": 792, + "id": 776, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "beneficiaries", "nodeType": "MemberAccess", - "referencedDeclaration": 72, - "src": "15318:15:0", + "referencedDeclaration": 70, + "src": "15247:15:0", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, - "id": 793, + "id": 777, "indexExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 789, + "id": 773, "name": "destinations", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 721, - "src": "15334:12:0", + "referencedDeclaration": 698, + "src": "15263:12:0", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, - "id": 791, + "id": 775, "indexExpression": { "argumentTypes": null, - "id": 790, + "id": 774, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 741, - "src": "15347:1:0", + "referencedDeclaration": 722, + "src": "15276:1:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -28770,7 +28560,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "15334:15:0", + "src": "15263:15:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -28781,7 +28571,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "15318:32:0", + "src": "15247:32:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -28792,14 +28582,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "74727565", - "id": 794, + "id": 778, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "15353:4:0", + "src": "15282:4:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -28807,15 +28597,15 @@ }, "value": "true" }, - "src": "15318:39:0", + "src": "15247:39:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 796, + "id": 780, "nodeType": "ExpressionStatement", - "src": "15318:39:0" + "src": "15247:39:0" }, { "expression": { @@ -28825,26 +28615,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 801, + "id": 785, "name": "amounts", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 724, - "src": "15429:7:0", + "referencedDeclaration": 701, + "src": "15358:7:0", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", "typeString": "uint256[] memory" } }, - "id": 803, + "id": 787, "indexExpression": { "argumentTypes": null, - "id": 802, + "id": 786, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 741, - "src": "15437:1:0", + "referencedDeclaration": 722, + "src": "15366:1:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -28855,7 +28645,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "15429:10:0", + "src": "15358:10:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -28873,26 +28663,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 797, + "id": 781, "name": "destinations", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 721, - "src": "15404:12:0", + "referencedDeclaration": 698, + "src": "15333:12:0", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, - "id": 799, + "id": 783, "indexExpression": { "argumentTypes": null, - "id": 798, + "id": 782, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 741, - "src": "15417:1:0", + "referencedDeclaration": 722, + "src": "15346:1:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -28903,13 +28693,13 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "15404:15:0", + "src": "15333:15:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 800, + "id": 784, "isConstant": false, "isLValue": false, "isPure": false, @@ -28917,13 +28707,13 @@ "memberName": "transfer", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "15404:24:0", + "src": "15333:24:0", "typeDescriptions": { "typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$", "typeString": "function (uint256)" } }, - "id": 804, + "id": 788, "isConstant": false, "isLValue": false, "isPure": false, @@ -28931,15 +28721,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "15404:36:0", + "src": "15333:36:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 805, + "id": 789, "nodeType": "ExpressionStatement", - "src": "15404:36:0" + "src": "15333:36:0" } ] }, @@ -28949,19 +28739,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 747, + "id": 728, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 744, + "id": 725, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 741, - "src": "14998:1:0", + "referencedDeclaration": 722, + "src": "14827:1:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -28973,18 +28763,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 745, + "id": 726, "name": "destinations", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 721, - "src": "15002:12:0", + "referencedDeclaration": 698, + "src": "14831:12:0", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, - "id": 746, + "id": 727, "isConstant": false, "isLValue": false, "isPure": false, @@ -28992,31 +28782,31 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "15002:19:0", + "src": "14831:19:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "14998:23:0", + "src": "14827:23:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 807, + "id": 791, "initializationExpression": { "assignments": [ - 741 + 722 ], "declarations": [ { "constant": false, - "id": 741, + "id": 722, "name": "i", "nodeType": "VariableDeclaration", - "scope": 902, - "src": "14983:9:0", + "scope": 886, + "src": "14812:9:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -29024,10 +28814,10 @@ "typeString": "uint256" }, "typeName": { - "id": 740, + "id": 721, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "14983:7:0", + "src": "14812:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -29037,18 +28827,18 @@ "visibility": "internal" } ], - "id": 743, + "id": 724, "initialValue": { "argumentTypes": null, "hexValue": "30", - "id": 742, + "id": 723, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "14995:1:0", + "src": "14824:1:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -29057,12 +28847,12 @@ "value": "0" }, "nodeType": "VariableDeclarationStatement", - "src": "14983:13:0" + "src": "14812:13:0" }, "loopExpression": { "expression": { "argumentTypes": null, - "id": 749, + "id": 730, "isConstant": false, "isLValue": false, "isPure": false, @@ -29070,15 +28860,15 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "15023:3:0", + "src": "14852:3:0", "subExpression": { "argumentTypes": null, - "id": 748, + "id": 729, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 741, - "src": "15023:1:0", + "referencedDeclaration": 722, + "src": "14852:1:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -29089,37 +28879,56 @@ "typeString": "uint256" } }, - "id": 750, + "id": 731, "nodeType": "ExpressionStatement", - "src": "15023:3:0" + "src": "14852:3:0" }, "nodeType": "ForStatement", - "src": "14978:562:0" + "src": "14807:577:0" } ] } + }, + { + "expression": { + "argumentTypes": null, + "id": 883, + "name": "valueTransferred", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 713, + "src": "16176:16:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 705, + "id": 884, + "nodeType": "Return", + "src": "16169:23:0" } ] }, "documentation": "dev Private method to transfer funds to the destination addresses on the basis of transaction type", - "id": 902, + "id": 886, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [], - "name": "transferFunds", + "name": "_transferFunds", "nodeType": "FunctionDefinition", "parameters": { - "id": 725, + "id": 702, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 718, + "id": 695, "name": "scriptHash", "nodeType": "VariableDeclaration", - "scope": 902, - "src": "14702:18:0", + "scope": 886, + "src": "14509:18:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -29127,10 +28936,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 717, + "id": 694, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "14702:7:0", + "src": "14509:7:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -29141,11 +28950,11 @@ }, { "constant": false, - "id": 721, + "id": 698, "name": "destinations", "nodeType": "VariableDeclaration", - "scope": 902, - "src": "14730:21:0", + "scope": 886, + "src": "14537:21:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -29154,19 +28963,19 @@ }, "typeName": { "baseType": { - "id": 719, + "id": 696, "name": "address", "nodeType": "ElementaryTypeName", - "src": "14730:7:0", + "src": "14537:7:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 720, + "id": 697, "length": null, "nodeType": "ArrayTypeName", - "src": "14730:9:0", + "src": "14537:9:0", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]" @@ -29177,11 +28986,11 @@ }, { "constant": false, - "id": 724, + "id": 701, "name": "amounts", "nodeType": "VariableDeclaration", - "scope": 902, - "src": "14761:16:0", + "scope": 886, + "src": "14568:16:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -29190,19 +28999,19 @@ }, "typeName": { "baseType": { - "id": 722, + "id": 699, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "14761:7:0", + "src": "14568:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 723, + "id": 700, "length": null, "nodeType": "ArrayTypeName", - "src": "14761:9:0", + "src": "14568:9:0", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", "typeString": "uint256[]" @@ -29212,20 +29021,20 @@ "visibility": "internal" } ], - "src": "14692:91:0" + "src": "14499:91:0" }, "payable": false, "returnParameters": { - "id": 728, + "id": 705, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 727, - "name": "valueTransferred", + "id": 704, + "name": "", "nodeType": "VariableDeclaration", - "scope": 902, - "src": "14817:24:0", + "scope": 886, + "src": "14624:7:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -29233,10 +29042,10 @@ "typeString": "uint256" }, "typeName": { - "id": 726, + "id": 703, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "14817:7:0", + "src": "14624:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -29246,19 +29055,19 @@ "visibility": "internal" } ], - "src": "14816:26:0" + "src": "14623:9:0" }, - "scope": 1213, - "src": "14670:1717:0", + "scope": 1206, + "src": "14476:1723:0", "stateMutability": "nonpayable", "superFunction": null, "visibility": "private" }, { "body": { - "id": 1025, + "id": 1016, "nodeType": "Block", - "src": "16817:1277:0", + "src": "16619:1346:0", "statements": [ { "expression": { @@ -29270,7 +29079,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 935, + "id": 919, "isConstant": false, "isLValue": false, "isPure": false, @@ -29281,7 +29090,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 929, + "id": 913, "isConstant": false, "isLValue": false, "isPure": false, @@ -29290,18 +29099,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 925, + "id": 909, "name": "sigR", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 908, - "src": "16848:4:0", + "referencedDeclaration": 892, + "src": "16651:4:0", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr", "typeString": "bytes32[] memory" } }, - "id": 926, + "id": 910, "isConstant": false, "isLValue": false, "isPure": false, @@ -29309,7 +29118,7 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "16848:11:0", + "src": "16651:11:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -29321,18 +29130,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 927, + "id": 911, "name": "sigS", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 911, - "src": "16863:4:0", + "referencedDeclaration": 895, + "src": "16666:4:0", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr", "typeString": "bytes32[] memory" } }, - "id": 928, + "id": 912, "isConstant": false, "isLValue": false, "isPure": false, @@ -29340,13 +29149,13 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "16863:11:0", + "src": "16666:11:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "16848:26:0", + "src": "16651:26:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -29360,7 +29169,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 934, + "id": 918, "isConstant": false, "isLValue": false, "isPure": false, @@ -29369,18 +29178,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 930, + "id": 914, "name": "sigR", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 908, - "src": "16878:4:0", + "referencedDeclaration": 892, + "src": "16681:4:0", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr", "typeString": "bytes32[] memory" } }, - "id": 931, + "id": 915, "isConstant": false, "isLValue": false, "isPure": false, @@ -29388,7 +29197,7 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "16878:11:0", + "src": "16681:11:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -29400,18 +29209,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 932, + "id": 916, "name": "sigV", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 905, - "src": "16893:4:0", + "referencedDeclaration": 889, + "src": "16696:4:0", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint8_$dyn_memory_ptr", "typeString": "uint8[] memory" } }, - "id": 933, + "id": 917, "isConstant": false, "isLValue": false, "isPure": false, @@ -29419,19 +29228,19 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "16893:11:0", + "src": "16696:11:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "16878:26:0", + "src": "16681:26:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "16848:56:0", + "src": "16651:56:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -29440,14 +29249,14 @@ { "argumentTypes": null, "hexValue": "522c532c56206c656e677468206d69736d617463682e", - "id": 936, + "id": 920, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "16919:24:0", + "src": "16722:24:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_f85073c8befb65baed58ca1ee563e5da0bdbdce8abd4d29ef22a8329c7c97506", @@ -29467,21 +29276,21 @@ "typeString": "literal_string \"R,S,V length mismatch.\"" } ], - "id": 924, + "id": 908, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1389, - 1390 + 1382, + 1383 ], - "referencedDeclaration": 1390, - "src": "16827:7:0", + "referencedDeclaration": 1383, + "src": "16630:7:0", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 937, + "id": 921, "isConstant": false, "isLValue": false, "isPure": false, @@ -29489,28 +29298,63 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "16827:126:0", + "src": "16630:126:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 938, + "id": 922, "nodeType": "ExpressionStatement", - "src": "16827:126:0" + "src": "16630:126:0" + }, + { + "assignments": [], + "declarations": [ + { + "constant": false, + "id": 924, + "name": "lastAddress", + "nodeType": "VariableDeclaration", + "scope": 1017, + "src": "16767:19:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 923, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "16767:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 925, + "initialValue": null, + "nodeType": "VariableDeclarationStatement", + "src": "16767:19:0" }, { "assignments": [ - 940 + 927 ], "declarations": [ { "constant": false, - "id": 940, + "id": 927, "name": "txHash", "nodeType": "VariableDeclaration", - "scope": 1026, - "src": "17052:14:0", + "scope": 1017, + "src": "16885:14:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -29518,10 +29362,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 939, + "id": 926, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "17052:7:0", + "src": "16885:7:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -29531,7 +29375,7 @@ "visibility": "internal" } ], - "id": 962, + "id": 951, "initialValue": { "argumentTypes": null, "arguments": [ @@ -29541,14 +29385,14 @@ { "argumentTypes": null, "hexValue": "19457468657265756d205369676e6564204d6573736167653a0a3332", - "id": 944, + "id": 931, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "17126:34:0", + "src": "16959:34:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_178a2411ab6fbc1ba11064408972259c558d0e82fd48b0aba3ad81d14f065e73", @@ -29568,14 +29412,14 @@ { "argumentTypes": null, "hexValue": "30783139", - "id": 949, + "id": 936, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "17256:4:0", + "src": "17089:4:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_25_by_1", @@ -29591,20 +29435,20 @@ "typeString": "int_const 25" } ], - "id": 948, + "id": 935, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "17251:4:0", + "src": "17084:4:0", "typeDescriptions": { "typeIdentifier": "t_type$_t_bytes1_$", "typeString": "type(bytes1)" }, "typeName": "byte" }, - "id": 950, + "id": 937, "isConstant": false, "isLValue": false, "isPure": true, @@ -29612,7 +29456,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "17251:10:0", + "src": "17084:10:0", "typeDescriptions": { "typeIdentifier": "t_bytes1", "typeString": "bytes1" @@ -29624,14 +29468,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 952, + "id": 939, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "17292:1:0", + "src": "17125:1:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -29647,20 +29491,20 @@ "typeString": "int_const 0" } ], - "id": 951, + "id": 938, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "17287:4:0", + "src": "17120:4:0", "typeDescriptions": { "typeIdentifier": "t_type$_t_bytes1_$", "typeString": "type(bytes1)" }, "typeName": "byte" }, - "id": 953, + "id": 940, "isConstant": false, "isLValue": false, "isPure": true, @@ -29668,7 +29512,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "17287:7:0", + "src": "17120:7:0", "typeDescriptions": { "typeIdentifier": "t_bytes1", "typeString": "bytes1" @@ -29676,25 +29520,63 @@ }, { "argumentTypes": null, - "id": 954, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1403, - "src": "17320:4:0", + "arguments": [ + { + "argumentTypes": null, + "id": 942, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1396, + "src": "17161:4:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Escrow_v1_0_$1206", + "typeString": "contract Escrow_v1_0" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Escrow_v1_0_$1206", + "typeString": "contract Escrow_v1_0" + } + ], + "id": 941, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "17153:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 943, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17153:13:0", "typeDescriptions": { - "typeIdentifier": "t_contract$_Escrow_v1_0_$1213", - "typeString": "contract Escrow_v1_0" + "typeIdentifier": "t_address", + "typeString": "address" } }, { "argumentTypes": null, - "id": 955, + "id": 944, "name": "destinations", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 916, - "src": "17350:12:0", + "referencedDeclaration": 900, + "src": "17192:12:0", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" @@ -29702,12 +29584,12 @@ }, { "argumentTypes": null, - "id": 956, + "id": 945, "name": "amounts", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 919, - "src": "17388:7:0", + "referencedDeclaration": 903, + "src": "17230:7:0", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", "typeString": "uint256[] memory" @@ -29715,12 +29597,12 @@ }, { "argumentTypes": null, - "id": 957, + "id": 946, "name": "scriptHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 913, - "src": "17421:10:0", + "referencedDeclaration": 897, + "src": "17263:10:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -29738,8 +29620,8 @@ "typeString": "bytes1" }, { - "typeIdentifier": "t_contract$_Escrow_v1_0_$1213", - "typeString": "contract Escrow_v1_0" + "typeIdentifier": "t_address", + "typeString": "address" }, { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", @@ -29756,18 +29638,18 @@ ], "expression": { "argumentTypes": null, - "id": 946, + "id": 933, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1373, - "src": "17209:3:0", + "referencedDeclaration": 1366, + "src": "17042:3:0", "typeDescriptions": { "typeIdentifier": "t_magic_abi", "typeString": "abi" } }, - "id": 947, + "id": 934, "isConstant": false, "isLValue": false, "isPure": true, @@ -29775,13 +29657,13 @@ "memberName": "encodePacked", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "17209:16:0", + "src": "17042:16:0", "typeDescriptions": { "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", "typeString": "function () pure returns (bytes memory)" } }, - "id": 958, + "id": 947, "isConstant": false, "isLValue": false, "isPure": false, @@ -29789,7 +29671,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "17209:244:0", + "src": "17042:253:0", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -29803,18 +29685,18 @@ "typeString": "bytes memory" } ], - "id": 945, + "id": 932, "name": "keccak256", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1380, - "src": "17178:9:0", + "referencedDeclaration": 1373, + "src": "17011:9:0", "typeDescriptions": { "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", "typeString": "function () pure returns (bytes32)" } }, - "id": 959, + "id": 948, "isConstant": false, "isLValue": false, "isPure": false, @@ -29822,7 +29704,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "17178:293:0", + "src": "17011:302:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -29842,18 +29724,18 @@ ], "expression": { "argumentTypes": null, - "id": 942, + "id": 929, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1373, - "src": "17092:3:0", + "referencedDeclaration": 1366, + "src": "16925:3:0", "typeDescriptions": { "typeIdentifier": "t_magic_abi", "typeString": "abi" } }, - "id": 943, + "id": 930, "isConstant": false, "isLValue": false, "isPure": true, @@ -29861,13 +29743,13 @@ "memberName": "encodePacked", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "17092:16:0", + "src": "16925:16:0", "typeDescriptions": { "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", "typeString": "function () pure returns (bytes memory)" } }, - "id": 960, + "id": 949, "isConstant": false, "isLValue": false, "isPure": false, @@ -29875,7 +29757,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "17092:393:0", + "src": "16925:402:0", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -29889,18 +29771,18 @@ "typeString": "bytes memory" } ], - "id": 941, + "id": 928, "name": "keccak256", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1380, - "src": "17069:9:0", + "referencedDeclaration": 1373, + "src": "16902:9:0", "typeDescriptions": { "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", "typeString": "function () pure returns (bytes32)" } }, - "id": 961, + "id": 950, "isConstant": false, "isLValue": false, "isPure": false, @@ -29908,33 +29790,33 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "17069:426:0", + "src": "16902:435:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "nodeType": "VariableDeclarationStatement", - "src": "17052:443:0" + "src": "16885:452:0" }, { "body": { - "id": 1023, + "id": 1012, "nodeType": "Block", - "src": "17545:543:0", + "src": "17387:543:0", "statements": [ { "assignments": [ - 975 + 964 ], "declarations": [ { "constant": false, - "id": 975, + "id": 964, "name": "recovered", "nodeType": "VariableDeclaration", - "scope": 1026, - "src": "17560:17:0", + "scope": 1017, + "src": "17402:17:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -29942,10 +29824,10 @@ "typeString": "address" }, "typeName": { - "id": 974, + "id": 963, "name": "address", "nodeType": "ElementaryTypeName", - "src": "17560:7:0", + "src": "17402:7:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -29955,18 +29837,18 @@ "visibility": "internal" } ], - "id": 988, + "id": 977, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 977, + "id": 966, "name": "txHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 940, - "src": "17607:6:0", + "referencedDeclaration": 927, + "src": "17449:6:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -29976,26 +29858,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 978, + "id": 967, "name": "sigV", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 905, - "src": "17631:4:0", + "referencedDeclaration": 889, + "src": "17473:4:0", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint8_$dyn_memory_ptr", "typeString": "uint8[] memory" } }, - "id": 980, + "id": 969, "indexExpression": { "argumentTypes": null, - "id": 979, + "id": 968, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 964, - "src": "17636:1:0", + "referencedDeclaration": 953, + "src": "17478:1:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -30006,7 +29888,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "17631:7:0", + "src": "17473:7:0", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -30016,26 +29898,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 981, + "id": 970, "name": "sigR", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 908, - "src": "17656:4:0", + "referencedDeclaration": 892, + "src": "17498:4:0", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr", "typeString": "bytes32[] memory" } }, - "id": 983, + "id": 972, "indexExpression": { "argumentTypes": null, - "id": 982, + "id": 971, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 964, - "src": "17661:1:0", + "referencedDeclaration": 953, + "src": "17503:1:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -30046,7 +29928,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "17656:7:0", + "src": "17498:7:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -30056,26 +29938,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 984, + "id": 973, "name": "sigS", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 911, - "src": "17681:4:0", + "referencedDeclaration": 895, + "src": "17523:4:0", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr", "typeString": "bytes32[] memory" } }, - "id": 986, + "id": 975, "indexExpression": { "argumentTypes": null, - "id": 985, + "id": 974, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 964, - "src": "17686:1:0", + "referencedDeclaration": 953, + "src": "17528:1:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -30086,7 +29968,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "17681:7:0", + "src": "17523:7:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -30112,18 +29994,18 @@ "typeString": "bytes32" } ], - "id": 976, + "id": 965, "name": "ecrecover", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1378, - "src": "17580:9:0", + "referencedDeclaration": 1371, + "src": "17422:9:0", "typeDescriptions": { "typeIdentifier": "t_function_ecrecover_pure$_t_bytes32_$_t_uint8_$_t_bytes32_$_t_bytes32_$returns$_t_address_$", "typeString": "function (bytes32,uint8,bytes32,bytes32) pure returns (address)" } }, - "id": 987, + "id": 976, "isConstant": false, "isLValue": false, "isPure": false, @@ -30131,14 +30013,14 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "17580:122:0", + "src": "17422:122:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "VariableDeclarationStatement", - "src": "17560:142:0" + "src": "17402:142:0" }, { "expression": { @@ -30152,26 +30034,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 990, + "id": 979, "name": "transactions", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 77, - "src": "17742:12:0", + "referencedDeclaration": 75, + "src": "17584:12:0", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Transaction_$73_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Transaction_$71_storage_$", "typeString": "mapping(bytes32 => struct Escrow_v1_0.Transaction storage ref)" } }, - "id": 992, + "id": 981, "indexExpression": { "argumentTypes": null, - "id": 991, + "id": 980, "name": "scriptHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 913, - "src": "17755:10:0", + "referencedDeclaration": 897, + "src": "17597:10:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -30182,35 +30064,35 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "17742:24:0", + "src": "17584:24:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Transaction_$73_storage", + "typeIdentifier": "t_struct$_Transaction_$71_storage", "typeString": "struct Escrow_v1_0.Transaction storage ref" } }, - "id": 993, + "id": 982, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "isOwner", "nodeType": "MemberAccess", - "referencedDeclaration": 64, - "src": "17742:32:0", + "referencedDeclaration": 62, + "src": "17584:32:0", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, - "id": 995, + "id": 984, "indexExpression": { "argumentTypes": null, - "id": 994, + "id": 983, "name": "recovered", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 975, - "src": "17775:9:0", + "referencedDeclaration": 964, + "src": "17617:9:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -30221,7 +30103,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "17742:43:0", + "src": "17584:43:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -30230,14 +30112,14 @@ { "argumentTypes": null, "hexValue": "496e76616c6964207369676e6174757265", - "id": 996, + "id": 985, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "17804:19:0", + "src": "17646:19:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_4f2d7dfcb27c0aafa13ae8c400de482c7832204d194018b6e45bd2bf244c74e7", @@ -30257,21 +30139,21 @@ "typeString": "literal_string \"Invalid signature\"" } ], - "id": 989, + "id": 978, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1389, - 1390 + 1382, + 1383 ], - "referencedDeclaration": 1390, - "src": "17717:7:0", + "referencedDeclaration": 1383, + "src": "17559:7:0", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 997, + "id": 986, "isConstant": false, "isLValue": false, "isPure": false, @@ -30279,15 +30161,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "17717:120:0", + "src": "17559:120:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 998, + "id": 987, "nodeType": "ExpressionStatement", - "src": "17717:120:0" + "src": "17559:120:0" }, { "expression": { @@ -30295,7 +30177,7 @@ "arguments": [ { "argumentTypes": null, - "id": 1006, + "id": 995, "isConstant": false, "isLValue": false, "isPure": false, @@ -30303,7 +30185,7 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "17876:42:0", + "src": "17718:42:0", "subExpression": { "argumentTypes": null, "baseExpression": { @@ -30312,26 +30194,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1000, + "id": 989, "name": "transactions", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 77, - "src": "17877:12:0", + "referencedDeclaration": 75, + "src": "17719:12:0", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Transaction_$73_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Transaction_$71_storage_$", "typeString": "mapping(bytes32 => struct Escrow_v1_0.Transaction storage ref)" } }, - "id": 1002, + "id": 991, "indexExpression": { "argumentTypes": null, - "id": 1001, + "id": 990, "name": "scriptHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 913, - "src": "17890:10:0", + "referencedDeclaration": 897, + "src": "17732:10:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -30342,35 +30224,35 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "17877:24:0", + "src": "17719:24:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Transaction_$73_storage", + "typeIdentifier": "t_struct$_Transaction_$71_storage", "typeString": "struct Escrow_v1_0.Transaction storage ref" } }, - "id": 1003, + "id": 992, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "voted", "nodeType": "MemberAccess", - "referencedDeclaration": 68, - "src": "17877:30:0", + "referencedDeclaration": 66, + "src": "17719:30:0", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, - "id": 1005, + "id": 994, "indexExpression": { "argumentTypes": null, - "id": 1004, + "id": 993, "name": "recovered", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 975, - "src": "17908:9:0", + "referencedDeclaration": 964, + "src": "17750:9:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -30381,7 +30263,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "17877:41:0", + "src": "17719:41:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -30395,14 +30277,14 @@ { "argumentTypes": null, "hexValue": "53616d65207369676e61747572652073656e74207477696365", - "id": 1007, + "id": 996, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "17937:27:0", + "src": "17779:27:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_fb2c7e49d5ec7ce36fa812cf15ee7fa946942f931d04fe3ae970516007b2a543", @@ -30422,21 +30304,21 @@ "typeString": "literal_string \"Same signature sent twice\"" } ], - "id": 999, + "id": 988, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1389, - 1390 + 1382, + 1383 ], - "referencedDeclaration": 1390, - "src": "17851:7:0", + "referencedDeclaration": 1383, + "src": "17693:7:0", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1008, + "id": 997, "isConstant": false, "isLValue": false, "isPure": false, @@ -30444,20 +30326,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "17851:127:0", + "src": "17693:127:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1009, + "id": 998, "nodeType": "ExpressionStatement", - "src": "17851:127:0" + "src": "17693:127:0" }, { "expression": { "argumentTypes": null, - "id": 1017, + "id": 1006, "isConstant": false, "isLValue": false, "isPure": false, @@ -30470,26 +30352,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1010, + "id": 999, "name": "transactions", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 77, - "src": "17992:12:0", + "referencedDeclaration": 75, + "src": "17834:12:0", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Transaction_$73_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Transaction_$71_storage_$", "typeString": "mapping(bytes32 => struct Escrow_v1_0.Transaction storage ref)" } }, - "id": 1012, + "id": 1001, "indexExpression": { "argumentTypes": null, - "id": 1011, + "id": 1000, "name": "scriptHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 913, - "src": "18005:10:0", + "referencedDeclaration": 897, + "src": "17847:10:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -30500,35 +30382,35 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "17992:24:0", + "src": "17834:24:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Transaction_$73_storage", + "typeIdentifier": "t_struct$_Transaction_$71_storage", "typeString": "struct Escrow_v1_0.Transaction storage ref" } }, - "id": 1013, + "id": 1002, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "voted", "nodeType": "MemberAccess", - "referencedDeclaration": 68, - "src": "17992:30:0", + "referencedDeclaration": 66, + "src": "17834:30:0", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, - "id": 1015, + "id": 1004, "indexExpression": { "argumentTypes": null, - "id": 1014, + "id": 1003, "name": "recovered", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 975, - "src": "18023:9:0", + "referencedDeclaration": 964, + "src": "17865:9:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -30539,7 +30421,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "17992:41:0", + "src": "17834:41:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -30550,14 +30432,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "74727565", - "id": 1016, + "id": 1005, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "18036:4:0", + "src": "17878:4:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -30565,32 +30447,32 @@ }, "value": "true" }, - "src": "17992:48:0", + "src": "17834:48:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 1018, + "id": 1007, "nodeType": "ExpressionStatement", - "src": "17992:48:0" + "src": "17834:48:0" }, { "expression": { "argumentTypes": null, - "id": 1021, + "id": 1010, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 1019, + "id": 1008, "name": "lastAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 922, - "src": "18054:11:0", + "referencedDeclaration": 924, + "src": "17896:11:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -30600,26 +30482,26 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 1020, + "id": 1009, "name": "recovered", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 975, - "src": "18068:9:0", + "referencedDeclaration": 964, + "src": "17910:9:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "18054:23:0", + "src": "17896:23:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 1022, + "id": 1011, "nodeType": "ExpressionStatement", - "src": "18054:23:0" + "src": "17896:23:0" } ] }, @@ -30629,19 +30511,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 970, + "id": 959, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 967, + "id": 956, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 964, - "src": "17523:1:0", + "referencedDeclaration": 953, + "src": "17365:1:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -30653,18 +30535,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 968, + "id": 957, "name": "sigR", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 908, - "src": "17527:4:0", + "referencedDeclaration": 892, + "src": "17369:4:0", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr", "typeString": "bytes32[] memory" } }, - "id": 969, + "id": 958, "isConstant": false, "isLValue": false, "isPure": false, @@ -30672,31 +30554,31 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "17527:11:0", + "src": "17369:11:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "17523:15:0", + "src": "17365:15:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 1024, + "id": 1013, "initializationExpression": { "assignments": [ - 964 + 953 ], "declarations": [ { "constant": false, - "id": 964, + "id": 953, "name": "i", "nodeType": "VariableDeclaration", - "scope": 1026, - "src": "17511:6:0", + "scope": 1017, + "src": "17353:6:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -30704,10 +30586,10 @@ "typeString": "uint256" }, "typeName": { - "id": 963, + "id": 952, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "17511:4:0", + "src": "17353:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -30717,18 +30599,18 @@ "visibility": "internal" } ], - "id": 966, + "id": 955, "initialValue": { "argumentTypes": null, "hexValue": "30", - "id": 965, + "id": 954, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "17520:1:0", + "src": "17362:1:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -30737,12 +30619,12 @@ "value": "0" }, "nodeType": "VariableDeclarationStatement", - "src": "17511:10:0" + "src": "17353:10:0" }, "loopExpression": { "expression": { "argumentTypes": null, - "id": 972, + "id": 961, "isConstant": false, "isLValue": false, "isPure": false, @@ -30750,15 +30632,15 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "17540:3:0", + "src": "17382:3:0", "subExpression": { "argumentTypes": null, - "id": 971, + "id": 960, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 964, - "src": "17540:1:0", + "referencedDeclaration": 953, + "src": "17382:1:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -30769,34 +30651,53 @@ "typeString": "uint256" } }, - "id": 973, + "id": 962, "nodeType": "ExpressionStatement", - "src": "17540:3:0" + "src": "17382:3:0" }, "nodeType": "ForStatement", - "src": "17506:582:0" + "src": "17348:582:0" + }, + { + "expression": { + "argumentTypes": null, + "id": 1014, + "name": "lastAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 924, + "src": "17947:11:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 907, + "id": 1015, + "nodeType": "Return", + "src": "17940:18:0" } ] }, "documentation": null, - "id": 1026, + "id": 1017, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [], - "name": "verifySignatures", + "name": "_verifySignatures", "nodeType": "FunctionDefinition", "parameters": { - "id": 920, + "id": 904, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 905, + "id": 889, "name": "sigV", "nodeType": "VariableDeclaration", - "scope": 1026, - "src": "16606:12:0", + "scope": 1017, + "src": "16420:12:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -30805,19 +30706,19 @@ }, "typeName": { "baseType": { - "id": 903, + "id": 887, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "16606:5:0", + "src": "16420:5:0", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, - "id": 904, + "id": 888, "length": null, "nodeType": "ArrayTypeName", - "src": "16606:7:0", + "src": "16420:7:0", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint8_$dyn_storage_ptr", "typeString": "uint8[]" @@ -30828,11 +30729,11 @@ }, { "constant": false, - "id": 908, + "id": 892, "name": "sigR", "nodeType": "VariableDeclaration", - "scope": 1026, - "src": "16628:14:0", + "scope": 1017, + "src": "16442:14:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -30841,19 +30742,19 @@ }, "typeName": { "baseType": { - "id": 906, + "id": 890, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "16628:7:0", + "src": "16442:7:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "id": 907, + "id": 891, "length": null, "nodeType": "ArrayTypeName", - "src": "16628:9:0", + "src": "16442:9:0", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", "typeString": "bytes32[]" @@ -30864,11 +30765,11 @@ }, { "constant": false, - "id": 911, + "id": 895, "name": "sigS", "nodeType": "VariableDeclaration", - "scope": 1026, - "src": "16652:14:0", + "scope": 1017, + "src": "16466:14:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -30877,19 +30778,19 @@ }, "typeName": { "baseType": { - "id": 909, + "id": 893, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "16652:7:0", + "src": "16466:7:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "id": 910, + "id": 894, "length": null, "nodeType": "ArrayTypeName", - "src": "16652:9:0", + "src": "16466:9:0", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", "typeString": "bytes32[]" @@ -30900,11 +30801,11 @@ }, { "constant": false, - "id": 913, + "id": 897, "name": "scriptHash", "nodeType": "VariableDeclaration", - "scope": 1026, - "src": "16676:18:0", + "scope": 1017, + "src": "16490:18:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -30912,10 +30813,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 912, + "id": 896, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "16676:7:0", + "src": "16490:7:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -30926,11 +30827,11 @@ }, { "constant": false, - "id": 916, + "id": 900, "name": "destinations", "nodeType": "VariableDeclaration", - "scope": 1026, - "src": "16704:22:0", + "scope": 1017, + "src": "16518:22:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -30939,19 +30840,19 @@ }, "typeName": { "baseType": { - "id": 914, + "id": 898, "name": "address", "nodeType": "ElementaryTypeName", - "src": "16704:7:0", + "src": "16518:7:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 915, + "id": 899, "length": null, "nodeType": "ArrayTypeName", - "src": "16704:9:0", + "src": "16518:9:0", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]" @@ -30962,11 +30863,11 @@ }, { "constant": false, - "id": 919, + "id": 903, "name": "amounts", "nodeType": "VariableDeclaration", - "scope": 1026, - "src": "16736:16:0", + "scope": 1017, + "src": "16550:16:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -30975,19 +30876,19 @@ }, "typeName": { "baseType": { - "id": 917, + "id": 901, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "16736:7:0", + "src": "16550:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 918, + "id": 902, "length": null, "nodeType": "ArrayTypeName", - "src": "16736:9:0", + "src": "16550:9:0", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", "typeString": "uint256[]" @@ -30997,20 +30898,20 @@ "visibility": "internal" } ], - "src": "16596:162:0" + "src": "16410:162:0" }, "payable": false, "returnParameters": { - "id": 923, + "id": 907, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 922, - "name": "lastAddress", + "id": 906, + "name": "", "nodeType": "VariableDeclaration", - "scope": 1026, - "src": "16792:19:0", + "scope": 1017, + "src": "16606:7:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -31018,10 +30919,10 @@ "typeString": "address" }, "typeName": { - "id": 921, + "id": 905, "name": "address", "nodeType": "ElementaryTypeName", - "src": "16792:7:0", + "src": "16606:7:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -31031,32 +30932,32 @@ "visibility": "internal" } ], - "src": "16791:21:0" + "src": "16605:9:0" }, - "scope": 1213, - "src": "16571:1523:0", + "scope": 1206, + "src": "16384:1581:0", "stateMutability": "nonpayable", "superFunction": null, "visibility": "private" }, { "body": { - "id": 1059, + "id": 1048, "nodeType": "Block", - "src": "18256:171:0", + "src": "18120:168:0", "statements": [ { "assignments": [ - 1036 + 1027 ], "declarations": [ { "constant": false, - "id": 1036, + "id": 1027, "name": "timeSince", "nodeType": "VariableDeclaration", - "scope": 1060, - "src": "18266:17:0", + "scope": 1049, + "src": "18130:17:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -31064,10 +30965,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1035, + "id": 1026, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "18266:7:0", + "src": "18130:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -31077,18 +30978,18 @@ "visibility": "internal" } ], - "id": 1041, + "id": 1032, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 1039, + "id": 1030, "name": "lastModified", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1030, - "src": "18294:12:0", + "referencedDeclaration": 1021, + "src": "18158:12:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -31104,32 +31005,32 @@ ], "expression": { "argumentTypes": null, - "id": 1037, + "id": 1028, "name": "now", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1388, - "src": "18286:3:0", + "referencedDeclaration": 1381, + "src": "18150:3:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1038, + "id": 1029, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", - "referencedDeclaration": 1326, - "src": "18286:7:0", + "referencedDeclaration": 1319, + "src": "18150:7:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 1040, + "id": 1031, "isConstant": false, "isLValue": false, "isPure": false, @@ -31137,308 +31038,281 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "18286:21:0", + "src": "18150:21:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", - "src": "18266:41:0" + "src": "18130:41:0" }, { "expression": { "argumentTypes": null, - "id": 1057, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1042, - "name": "expired", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1033, - "src": "18317:7:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "components": [ - { + "components": [ + { + "argumentTypes": null, + "condition": { "argumentTypes": null, - "condition": { + "commonType": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "id": 1035, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { "argumentTypes": null, - "commonType": { + "id": 1033, + "name": "timeoutHours", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1019, + "src": "18202:12:0", + "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" - }, - "id": 1045, + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 1034, "isConstant": false, "isLValue": false, - "isPure": false, + "isPure": true, + "kind": "number", "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1043, - "name": "timeoutHours", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1028, - "src": "18341:12:0", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 1044, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "18357:1:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "18341:17:0", + "nodeType": "Literal", + "src": "18218:1:0", + "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" }, - "falseExpression": { + "src": "18202:17:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1044, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { "argumentTypes": null, - "commonType": { + "id": 1037, + "name": "timeSince", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1027, + "src": "18228:9:0", + "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" - }, - "id": 1054, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1047, - "name": "timeSince", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1036, - "src": "18367:9:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "33363030", + "id": 1042, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "18266:4:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_3600_by_1", + "typeString": "int_const 3600" + }, + "value": "3600" } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "arguments": [ + ], + "expression": { + "argumentTypes": [ { - "argumentTypes": null, - "hexValue": "33363030", - "id": 1052, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "18405:4:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_3600_by_1", - "typeString": "int_const 3600" - }, - "value": "3600" + "typeIdentifier": "t_rational_3600_by_1", + "typeString": "int_const 3600" } ], "expression": { - "argumentTypes": [ + "argumentTypes": null, + "arguments": [ { - "typeIdentifier": "t_rational_3600_by_1", - "typeString": "int_const 3600" + "argumentTypes": null, + "id": 1039, + "name": "timeoutHours", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1019, + "src": "18248:12:0", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } } ], "expression": { - "argumentTypes": null, - "arguments": [ + "argumentTypes": [ { - "argumentTypes": null, - "id": 1049, - "name": "timeoutHours", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1028, - "src": "18387:12:0", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } + "typeIdentifier": "t_uint32", + "typeString": "uint32" } ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - ], - "id": 1048, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "18379:7:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint256_$", - "typeString": "type(uint256)" - }, - "typeName": "uint256" - }, - "id": 1050, + "id": 1038, "isConstant": false, "isLValue": false, - "isPure": false, - "kind": "typeConversion", + "isPure": true, "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18379:21:0", + "nodeType": "ElementaryTypeNameExpression", + "src": "18240:7:0", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": "uint256" }, - "id": 1051, + "id": 1040, "isConstant": false, "isLValue": false, "isPure": false, + "kind": "typeConversion", "lValueRequested": false, - "memberName": "mul", - "nodeType": "MemberAccess", - "referencedDeclaration": 1278, - "src": "18379:25:0", + "names": [], + "nodeType": "FunctionCall", + "src": "18240:21:0", "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "id": 1053, + "id": 1041, "isConstant": false, "isLValue": false, "isPure": false, - "kind": "functionCall", "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18379:31:0", + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 1271, + "src": "18240:25:0", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "src": "18367:43:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 1055, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "Conditional", - "src": "18341:69:0", - "trueExpression": { - "argumentTypes": null, - "hexValue": "66616c7365", - "id": 1046, + "id": 1043, "isConstant": false, "isLValue": false, - "isPure": true, - "kind": "bool", + "isPure": false, + "kind": "functionCall", "lValueRequested": false, - "nodeType": "Literal", - "src": "18361:5:0", - "subdenomination": null, + "names": [], + "nodeType": "FunctionCall", + "src": "18240:31:0", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "false" + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } }, + "src": "18228:43:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } + }, + "id": 1045, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "18202:69:0", + "trueExpression": { + "argumentTypes": null, + "hexValue": "66616c7365", + "id": 1036, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "18222:5:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" } - ], - "id": 1056, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "18327:93:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" } - }, - "src": "18317:103:0", + ], + "id": 1046, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "18188:93:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 1058, - "nodeType": "ExpressionStatement", - "src": "18317:103:0" + "functionReturnParameters": 1025, + "id": 1047, + "nodeType": "Return", + "src": "18181:100:0" } ] }, "documentation": null, - "id": 1060, + "id": 1049, "implemented": true, "isConstructor": false, "isDeclaredConst": true, "modifiers": [], - "name": "isTimeLockExpired", + "name": "_isTimeLockExpired", "nodeType": "FunctionDefinition", "parameters": { - "id": 1031, + "id": 1022, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1028, + "id": 1019, "name": "timeoutHours", "nodeType": "VariableDeclaration", - "scope": 1060, - "src": "18136:19:0", + "scope": 1049, + "src": "18008:19:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -31446,10 +31320,10 @@ "typeString": "uint32" }, "typeName": { - "id": 1027, + "id": 1018, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "18136:6:0", + "src": "18008:6:0", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -31460,11 +31334,11 @@ }, { "constant": false, - "id": 1030, + "id": 1021, "name": "lastModified", "nodeType": "VariableDeclaration", - "scope": 1060, - "src": "18165:20:0", + "scope": 1049, + "src": "18037:20:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -31472,10 +31346,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1029, + "id": 1020, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "18165:7:0", + "src": "18037:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -31485,20 +31359,20 @@ "visibility": "internal" } ], - "src": "18126:65:0" + "src": "17998:65:0" }, "payable": false, "returnParameters": { - "id": 1034, + "id": 1025, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1033, - "name": "expired", + "id": 1024, + "name": "", "nodeType": "VariableDeclaration", - "scope": 1060, - "src": "18238:12:0", + "scope": 1049, + "src": "18110:4:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -31506,10 +31380,10 @@ "typeString": "bool" }, "typeName": { - "id": 1032, + "id": 1023, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "18238:4:0", + "src": "18110:4:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -31519,19 +31393,19 @@ "visibility": "internal" } ], - "src": "18237:14:0" + "src": "18109:6:0" }, - "scope": 1213, - "src": "18100:327:0", + "scope": 1206, + "src": "17971:317:0", "stateMutability": "view", "superFunction": null, "visibility": "private" }, { "body": { - "id": 1211, + "id": 1204, "nodeType": "Block", - "src": "18841:1919:0", + "src": "18702:2314:0", "statements": [ { "expression": { @@ -31543,19 +31417,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1086, + "id": 1075, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1084, + "id": 1073, "name": "buyer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1062, - "src": "18867:5:0", + "referencedDeclaration": 1051, + "src": "18728:5:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -31565,18 +31439,18 @@ "operator": "!=", "rightExpression": { "argumentTypes": null, - "id": 1085, + "id": 1074, "name": "seller", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1064, - "src": "18876:6:0", + "referencedDeclaration": 1053, + "src": "18737:6:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "18867:15:0", + "src": "18728:15:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -31585,14 +31459,14 @@ { "argumentTypes": null, "hexValue": "427579657220616e642073656c6c6572206172652073616d65", - "id": 1087, + "id": 1076, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "18884:27:0", + "src": "18745:27:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_6141441751234d42e9a73d96317794195c7ff57b8f16ac15725a10f10763f824", @@ -31612,21 +31486,21 @@ "typeString": "literal_string \"Buyer and seller are same\"" } ], - "id": 1083, + "id": 1072, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1389, - 1390 + 1382, + 1383 ], - "referencedDeclaration": 1390, - "src": "18859:7:0", + "referencedDeclaration": 1383, + "src": "18720:7:0", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1088, + "id": 1077, "isConstant": false, "isLValue": false, "isPure": false, @@ -31634,15 +31508,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "18859:53:0", + "src": "18720:53:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1089, + "id": 1078, "nodeType": "ExpressionStatement", - "src": "18859:53:0" + "src": "18720:53:0" }, { "expression": { @@ -31654,19 +31528,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1093, + "id": 1082, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1091, + "id": 1080, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1074, - "src": "18979:5:0", + "referencedDeclaration": 1063, + "src": "18840:5:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -31677,14 +31551,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 1092, + "id": 1081, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "18987:1:0", + "src": "18848:1:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -31692,7 +31566,7 @@ }, "value": "0" }, - "src": "18979:9:0", + "src": "18840:9:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -31701,14 +31575,14 @@ { "argumentTypes": null, "hexValue": "56616c7565207061737365642069732030", - "id": 1094, + "id": 1083, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "18990:19:0", + "src": "18851:19:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_3686f87c4804517ea83323ccf1a3b5b5ff52ed144b19e6fc56abe8fcd182e747", @@ -31728,21 +31602,21 @@ "typeString": "literal_string \"Value passed is 0\"" } ], - "id": 1090, + "id": 1079, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1389, - 1390 + 1382, + 1383 ], - "referencedDeclaration": 1390, - "src": "18971:7:0", + "referencedDeclaration": 1383, + "src": "18832:7:0", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1095, + "id": 1084, "isConstant": false, "isLValue": false, "isPure": false, @@ -31750,15 +31624,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "18971:39:0", + "src": "18832:39:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1096, + "id": 1085, "nodeType": "ExpressionStatement", - "src": "18971:39:0" + "src": "18832:39:0" }, { "expression": { @@ -31770,7 +31644,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 1104, + "id": 1093, "isConstant": false, "isLValue": false, "isPure": false, @@ -31781,19 +31655,19 @@ "typeIdentifier": "t_uint8", "typeString": "uint8" }, - "id": 1100, + "id": 1089, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1098, + "id": 1087, "name": "threshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1068, - "src": "19113:9:0", + "referencedDeclaration": 1057, + "src": "18974:9:0", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -31804,14 +31678,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 1099, + "id": 1088, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "19125:1:0", + "src": "18986:1:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -31819,7 +31693,7 @@ }, "value": "0" }, - "src": "19113:13:0", + "src": "18974:13:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -31833,19 +31707,19 @@ "typeIdentifier": "t_uint8", "typeString": "uint8" }, - "id": 1103, + "id": 1092, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1101, + "id": 1090, "name": "threshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1068, - "src": "19130:9:0", + "referencedDeclaration": 1057, + "src": "18991:9:0", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -31856,14 +31730,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "33", - "id": 1102, + "id": 1091, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "19143:1:0", + "src": "19004:1:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_3_by_1", @@ -31871,13 +31745,13 @@ }, "value": "3" }, - "src": "19130:14:0", + "src": "18991:14:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "19113:31:0", + "src": "18974:31:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -31886,14 +31760,14 @@ { "argumentTypes": null, "hexValue": "5468726573686f6c642063616e6e6f742062652067726561746572207468616e203320616e64206d7573742062652067726561746572207468616e2030", - "id": 1105, + "id": 1094, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "19159:63:0", + "src": "19020:63:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_351c1d5dfdc4a2b4c61d6f4dbb41a0d2ae70a9c094d3c0add87af24b5dd19c13", @@ -31913,21 +31787,21 @@ "typeString": "literal_string \"Threshold cannot be greater than 3 and must be greater than 0\"" } ], - "id": 1097, + "id": 1086, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1389, - 1390 + 1382, + 1383 ], - "referencedDeclaration": 1390, - "src": "19092:7:0", + "referencedDeclaration": 1383, + "src": "18953:7:0", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1106, + "id": 1095, "isConstant": false, "isLValue": false, "isPure": false, @@ -31935,15 +31809,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "19092:140:0", + "src": "18953:140:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1107, + "id": 1096, "nodeType": "ExpressionStatement", - "src": "19092:140:0" + "src": "18953:140:0" }, { "expression": { @@ -31955,7 +31829,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 1117, + "id": 1106, "isConstant": false, "isLValue": false, "isPure": false, @@ -31966,19 +31840,19 @@ "typeIdentifier": "t_uint8", "typeString": "uint8" }, - "id": 1111, + "id": 1100, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1109, + "id": 1098, "name": "threshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1068, - "src": "19263:9:0", + "referencedDeclaration": 1057, + "src": "19374:9:0", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -31989,14 +31863,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "31", - "id": 1110, + "id": 1099, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "19276:1:0", + "src": "19387:1:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -32004,7 +31878,7 @@ }, "value": "1" }, - "src": "19263:14:0", + "src": "19374:14:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -32018,19 +31892,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1116, + "id": 1105, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1112, + "id": 1101, "name": "moderator", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1066, - "src": "19281:9:0", + "referencedDeclaration": 1055, + "src": "19392:9:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -32044,14 +31918,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 1114, + "id": 1103, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "19302:1:0", + "src": "19413:1:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -32067,20 +31941,20 @@ "typeString": "int_const 0" } ], - "id": 1113, + "id": 1102, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "19294:7:0", + "src": "19405:7:0", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 1115, + "id": 1104, "isConstant": false, "isLValue": false, "isPure": true, @@ -32088,19 +31962,19 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "19294:10:0", + "src": "19405:10:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "19281:23:0", + "src": "19392:23:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "19263:41:0", + "src": "19374:41:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -32108,21 +31982,21 @@ }, { "argumentTypes": null, - "hexValue": "456974686572207468726573686f6c642073686f756c642062652031206f74686572776973652076616c6964206d6f64657261746f7220616464726573732073686f756c6420626520706173736564", - "id": 1118, + "hexValue": "456974686572207468726573686f6c642073686f756c642062652031206f722076616c6964206d6f64657261746f7220616464726573732073686f756c6420626520706173736564", + "id": 1107, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "19318:81:0", + "src": "19429:74:0", "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_stringliteral_08dfdd405be5d5023d3f601e2b0a844b246ceb6764817070ff6789d5e1f80050", - "typeString": "literal_string \"Either threshold should be 1 otherwise valid moderator address should be passed\"" + "typeIdentifier": "t_stringliteral_2056db168725d2fabb8aaf14efad7a3fc12ef6bc7132f0596ea09b041b71cb25", + "typeString": "literal_string \"Either threshold should be 1 or valid moderator address should be passed\"" }, - "value": "Either threshold should be 1 otherwise valid moderator address should be passed" + "value": "Either threshold should be 1 or valid moderator address should be passed" } ], "expression": { @@ -32132,25 +32006,25 @@ "typeString": "bool" }, { - "typeIdentifier": "t_stringliteral_08dfdd405be5d5023d3f601e2b0a844b246ceb6764817070ff6789d5e1f80050", - "typeString": "literal_string \"Either threshold should be 1 otherwise valid moderator address should be passed\"" + "typeIdentifier": "t_stringliteral_2056db168725d2fabb8aaf14efad7a3fc12ef6bc7132f0596ea09b041b71cb25", + "typeString": "literal_string \"Either threshold should be 1 or valid moderator address should be passed\"" } ], - "id": 1108, + "id": 1097, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1389, - 1390 + 1382, + 1383 ], - "referencedDeclaration": 1390, - "src": "19242:7:0", + "referencedDeclaration": 1383, + "src": "19353:7:0", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1119, + "id": 1108, "isConstant": false, "isLValue": false, "isPure": false, @@ -32158,15 +32032,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "19242:167:0", + "src": "19353:160:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1120, + "id": 1109, "nodeType": "ExpressionStatement", - "src": "19242:167:0" + "src": "19353:160:0" }, { "expression": { @@ -32178,19 +32052,19 @@ "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, - "id": 1132, + "id": 1121, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1122, + "id": 1111, "name": "scriptHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1072, - "src": "19441:10:0", + "referencedDeclaration": 1061, + "src": "19545:10:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -32203,12 +32077,12 @@ "arguments": [ { "argumentTypes": null, - "id": 1124, + "id": 1113, "name": "uniqueId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1076, - "src": "19498:8:0", + "referencedDeclaration": 1065, + "src": "19602:8:0", "typeDescriptions": { "typeIdentifier": "t_bytes20", "typeString": "bytes20" @@ -32216,12 +32090,12 @@ }, { "argumentTypes": null, - "id": 1125, + "id": 1114, "name": "threshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1068, - "src": "19524:9:0", + "referencedDeclaration": 1057, + "src": "19628:9:0", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -32229,12 +32103,12 @@ }, { "argumentTypes": null, - "id": 1126, + "id": 1115, "name": "timeoutHours", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1070, - "src": "19551:12:0", + "referencedDeclaration": 1059, + "src": "19655:12:0", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -32242,12 +32116,12 @@ }, { "argumentTypes": null, - "id": 1127, + "id": 1116, "name": "buyer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1062, - "src": "19581:5:0", + "referencedDeclaration": 1051, + "src": "19685:5:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -32255,12 +32129,12 @@ }, { "argumentTypes": null, - "id": 1128, + "id": 1117, "name": "seller", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1064, - "src": "19604:6:0", + "referencedDeclaration": 1053, + "src": "19708:6:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -32268,12 +32142,12 @@ }, { "argumentTypes": null, - "id": 1129, + "id": 1118, "name": "moderator", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1066, - "src": "19628:9:0", + "referencedDeclaration": 1055, + "src": "19732:9:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -32281,12 +32155,12 @@ }, { "argumentTypes": null, - "id": 1130, + "id": 1119, "name": "tokenAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1080, - "src": "19655:12:0", + "referencedDeclaration": 1069, + "src": "19759:12:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -32324,18 +32198,18 @@ "typeString": "address" } ], - "id": 1123, + "id": 1112, "name": "calculateRedeemScriptHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 647, - "src": "19455:25:0", + "referencedDeclaration": 624, + "src": "19559:25:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_bytes20_$_t_uint8_$_t_uint32_$_t_address_$_t_address_$_t_address_$_t_address_$returns$_t_bytes32_$", "typeString": "function (bytes20,uint8,uint32,address,address,address,address) view returns (bytes32)" } }, - "id": 1131, + "id": 1120, "isConstant": false, "isLValue": false, "isPure": false, @@ -32343,13 +32217,13 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "19455:226:0", + "src": "19559:226:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "src": "19441:240:0", + "src": "19545:240:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -32358,14 +32232,14 @@ { "argumentTypes": null, "hexValue": "43616c63756c6174656420736372697074206861736820646f6573206e6f74206d61746368207061737365642073637269707420686173682e", - "id": 1133, + "id": 1122, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "19696:59:0", + "src": "19800:59:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_0c041e0c58e6b0e01d338d852a5abb639065eabeb0aee05e0ce3e5f0e52b4f51", @@ -32385,21 +32259,21 @@ "typeString": "literal_string \"Calculated script hash does not match passed script hash.\"" } ], - "id": 1121, + "id": 1110, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1389, - 1390 + 1382, + 1383 ], - "referencedDeclaration": 1390, - "src": "19420:7:0", + "referencedDeclaration": 1383, + "src": "19524:7:0", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1134, + "id": 1123, "isConstant": false, "isLValue": false, "isPure": false, @@ -32407,20 +32281,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "19420:345:0", + "src": "19524:345:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1135, + "id": 1124, "nodeType": "ExpressionStatement", - "src": "19420:345:0" + "src": "19524:345:0" }, { "expression": { "argumentTypes": null, - "id": 1154, + "id": 1142, "isConstant": false, "isLValue": false, "isPure": false, @@ -32429,26 +32303,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1136, + "id": 1125, "name": "transactions", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 77, - "src": "19776:12:0", + "referencedDeclaration": 75, + "src": "19880:12:0", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Transaction_$73_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Transaction_$71_storage_$", "typeString": "mapping(bytes32 => struct Escrow_v1_0.Transaction storage ref)" } }, - "id": 1138, + "id": 1127, "indexExpression": { "argumentTypes": null, - "id": 1137, + "id": 1126, "name": "scriptHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1072, - "src": "19789:10:0", + "referencedDeclaration": 1061, + "src": "19893:10:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -32459,9 +32333,9 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "19776:24:0", + "src": "19880:24:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Transaction_$73_storage", + "typeIdentifier": "t_struct$_Transaction_$71_storage", "typeString": "struct Escrow_v1_0.Transaction storage ref" } }, @@ -32472,12 +32346,12 @@ "arguments": [ { "argumentTypes": null, - "id": 1140, + "id": 1129, "name": "buyer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1062, - "src": "19836:5:0", + "referencedDeclaration": 1051, + "src": "19940:5:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -32485,12 +32359,12 @@ }, { "argumentTypes": null, - "id": 1141, + "id": 1130, "name": "seller", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1064, - "src": "19863:6:0", + "referencedDeclaration": 1053, + "src": "19967:6:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -32498,12 +32372,12 @@ }, { "argumentTypes": null, - "id": 1142, + "id": 1131, "name": "moderator", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1066, - "src": "19894:9:0", + "referencedDeclaration": 1055, + "src": "19998:9:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -32511,12 +32385,12 @@ }, { "argumentTypes": null, - "id": 1143, + "id": 1132, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1074, - "src": "19924:5:0", + "referencedDeclaration": 1063, + "src": "20028:5:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -32526,18 +32400,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1144, + "id": 1133, "name": "Status", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9, - "src": "19951:6:0", + "src": "20055:6:0", "typeDescriptions": { "typeIdentifier": "t_type$_t_enum$_Status_$9_$", "typeString": "type(enum Escrow_v1_0.Status)" } }, - "id": 1145, + "id": 1134, "isConstant": false, "isLValue": false, "isPure": true, @@ -32545,7 +32419,7 @@ "memberName": "FUNDED", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "19951:13:0", + "src": "20055:13:0", "typeDescriptions": { "typeIdentifier": "t_enum$_Status_$9", "typeString": "enum Escrow_v1_0.Status" @@ -32555,18 +32429,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1146, + "id": 1135, "name": "block", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1376, - "src": "19992:5:0", + "referencedDeclaration": 1369, + "src": "20096:5:0", "typeDescriptions": { "typeIdentifier": "t_magic_block", "typeString": "block" } }, - "id": 1147, + "id": 1136, "isConstant": false, "isLValue": false, "isPure": false, @@ -32574,7 +32448,7 @@ "memberName": "timestamp", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "19992:15:0", + "src": "20096:15:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -32582,25 +32456,12 @@ }, { "argumentTypes": null, - "id": 1148, - "name": "scriptHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1072, - "src": "20033:10:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 1149, + "id": 1137, "name": "threshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1068, - "src": "20068:9:0", + "referencedDeclaration": 1057, + "src": "20136:9:0", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -32608,12 +32469,12 @@ }, { "argumentTypes": null, - "id": 1150, + "id": 1138, "name": "timeoutHours", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1070, - "src": "20105:12:0", + "referencedDeclaration": 1059, + "src": "20173:12:0", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -32621,12 +32482,12 @@ }, { "argumentTypes": null, - "id": 1151, + "id": 1139, "name": "transactionType", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1078, - "src": "20147:15:0", + "referencedDeclaration": 1067, + "src": "20215:15:0", "typeDescriptions": { "typeIdentifier": "t_enum$_TransactionType_$12", "typeString": "enum Escrow_v1_0.TransactionType" @@ -32634,12 +32495,12 @@ }, { "argumentTypes": null, - "id": 1152, + "id": 1140, "name": "tokenAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1080, - "src": "20189:12:0", + "referencedDeclaration": 1069, + "src": "20257:12:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -32648,18 +32509,18 @@ ], "expression": { "argumentTypes": null, - "id": 1139, + "id": 1128, "name": "Transaction", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 73, - "src": "19803:11:0", + "referencedDeclaration": 71, + "src": "19907:11:0", "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_Transaction_$73_storage_ptr_$", + "typeIdentifier": "t_type$_t_struct$_Transaction_$71_storage_ptr_$", "typeString": "type(struct Escrow_v1_0.Transaction storage pointer)" } }, - "id": 1153, + "id": 1141, "isConstant": false, "isLValue": false, "isPure": false, @@ -32672,33 +32533,32 @@ "value", "status", "lastModified", - "scriptHash", "threshold", "timeoutHours", "transactionType", "tokenAddress" ], "nodeType": "FunctionCall", - "src": "19803:409:0", + "src": "19907:373:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Transaction_$73_memory", + "typeIdentifier": "t_struct$_Transaction_$71_memory", "typeString": "struct Escrow_v1_0.Transaction memory" } }, - "src": "19776:436:0", + "src": "19880:400:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Transaction_$73_storage", + "typeIdentifier": "t_struct$_Transaction_$71_storage", "typeString": "struct Escrow_v1_0.Transaction storage ref" } }, - "id": 1155, + "id": 1143, "nodeType": "ExpressionStatement", - "src": "19776:436:0" + "src": "19880:400:0" }, { "expression": { "argumentTypes": null, - "id": 1163, + "id": 1151, "isConstant": false, "isLValue": false, "isPure": false, @@ -32711,26 +32571,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1156, + "id": 1144, "name": "transactions", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 77, - "src": "20223:12:0", + "referencedDeclaration": 75, + "src": "20291:12:0", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Transaction_$73_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Transaction_$71_storage_$", "typeString": "mapping(bytes32 => struct Escrow_v1_0.Transaction storage ref)" } }, - "id": 1158, + "id": 1146, "indexExpression": { "argumentTypes": null, - "id": 1157, + "id": 1145, "name": "scriptHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1072, - "src": "20236:10:0", + "referencedDeclaration": 1061, + "src": "20304:10:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -32741,35 +32601,35 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "20223:24:0", + "src": "20291:24:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Transaction_$73_storage", + "typeIdentifier": "t_struct$_Transaction_$71_storage", "typeString": "struct Escrow_v1_0.Transaction storage ref" } }, - "id": 1159, + "id": 1147, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "isOwner", "nodeType": "MemberAccess", - "referencedDeclaration": 64, - "src": "20223:32:0", + "referencedDeclaration": 62, + "src": "20291:32:0", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, - "id": 1161, + "id": 1149, "indexExpression": { "argumentTypes": null, - "id": 1160, + "id": 1148, "name": "seller", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1064, - "src": "20256:6:0", + "referencedDeclaration": 1053, + "src": "20324:6:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -32780,7 +32640,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "20223:40:0", + "src": "20291:40:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -32791,14 +32651,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "74727565", - "id": 1162, + "id": 1150, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "20266:4:0", + "src": "20334:4:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -32806,20 +32666,20 @@ }, "value": "true" }, - "src": "20223:47:0", + "src": "20291:47:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 1164, + "id": 1152, "nodeType": "ExpressionStatement", - "src": "20223:47:0" + "src": "20291:47:0" }, { "expression": { "argumentTypes": null, - "id": 1172, + "id": 1160, "isConstant": false, "isLValue": false, "isPure": false, @@ -32832,26 +32692,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1165, + "id": 1153, "name": "transactions", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 77, - "src": "20280:12:0", + "referencedDeclaration": 75, + "src": "20348:12:0", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Transaction_$73_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Transaction_$71_storage_$", "typeString": "mapping(bytes32 => struct Escrow_v1_0.Transaction storage ref)" } }, - "id": 1167, + "id": 1155, "indexExpression": { "argumentTypes": null, - "id": 1166, + "id": 1154, "name": "scriptHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1072, - "src": "20293:10:0", + "referencedDeclaration": 1061, + "src": "20361:10:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -32862,35 +32722,35 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "20280:24:0", + "src": "20348:24:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Transaction_$73_storage", + "typeIdentifier": "t_struct$_Transaction_$71_storage", "typeString": "struct Escrow_v1_0.Transaction storage ref" } }, - "id": 1168, + "id": 1156, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "isOwner", "nodeType": "MemberAccess", - "referencedDeclaration": 64, - "src": "20280:32:0", + "referencedDeclaration": 62, + "src": "20348:32:0", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, - "id": 1170, + "id": 1158, "indexExpression": { "argumentTypes": null, - "id": 1169, + "id": 1157, "name": "buyer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1062, - "src": "20313:5:0", + "referencedDeclaration": 1051, + "src": "20381:5:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -32901,7 +32761,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "20280:39:0", + "src": "20348:39:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -32912,14 +32772,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "74727565", - "id": 1171, + "id": 1159, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "20322:4:0", + "src": "20390:4:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -32927,15 +32787,15 @@ }, "value": "true" }, - "src": "20280:46:0", + "src": "20348:46:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 1173, + "id": 1161, "nodeType": "ExpressionStatement", - "src": "20280:46:0" + "src": "20348:46:0" }, { "expression": { @@ -32943,7 +32803,7 @@ "arguments": [ { "argumentTypes": null, - "id": 1181, + "id": 1169, "isConstant": false, "isLValue": false, "isPure": false, @@ -32951,7 +32811,7 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "20433:44:0", + "src": "20501:44:0", "subExpression": { "argumentTypes": null, "baseExpression": { @@ -32960,26 +32820,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1175, + "id": 1163, "name": "transactions", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 77, - "src": "20434:12:0", + "referencedDeclaration": 75, + "src": "20502:12:0", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Transaction_$73_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Transaction_$71_storage_$", "typeString": "mapping(bytes32 => struct Escrow_v1_0.Transaction storage ref)" } }, - "id": 1177, + "id": 1165, "indexExpression": { "argumentTypes": null, - "id": 1176, + "id": 1164, "name": "scriptHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1072, - "src": "20447:10:0", + "referencedDeclaration": 1061, + "src": "20515:10:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -32990,35 +32850,35 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "20434:24:0", + "src": "20502:24:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Transaction_$73_storage", + "typeIdentifier": "t_struct$_Transaction_$71_storage", "typeString": "struct Escrow_v1_0.Transaction storage ref" } }, - "id": 1178, + "id": 1166, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "isOwner", "nodeType": "MemberAccess", - "referencedDeclaration": 64, - "src": "20434:32:0", + "referencedDeclaration": 62, + "src": "20502:32:0", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, - "id": 1180, + "id": 1168, "indexExpression": { "argumentTypes": null, - "id": 1179, + "id": 1167, "name": "moderator", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1066, - "src": "20467:9:0", + "referencedDeclaration": 1055, + "src": "20535:9:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -33029,7 +32889,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "20434:43:0", + "src": "20502:43:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -33043,14 +32903,14 @@ { "argumentTypes": null, "hexValue": "456974686572206275796572206f722073656c6c657220697320706173736564206173206d6f64657261746f72", - "id": 1182, + "id": 1170, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "20492:47:0", + "src": "20560:47:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_313b391557427937e7bdb85c7561d47c5b9c985755a448dd33a92026ffb38f8d", @@ -33070,21 +32930,21 @@ "typeString": "literal_string \"Either buyer or seller is passed as moderator\"" } ], - "id": 1174, + "id": 1162, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1389, - 1390 + 1382, + 1383 ], - "referencedDeclaration": 1390, - "src": "20412:7:0", + "referencedDeclaration": 1383, + "src": "20480:7:0", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1183, + "id": 1171, "isConstant": false, "isLValue": false, "isPure": false, @@ -33092,141 +32952,204 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "20412:137:0", + "src": "20480:137:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1184, + "id": 1172, "nodeType": "ExpressionStatement", - "src": "20412:137:0" + "src": "20480:137:0" }, { - "expression": { + "condition": { "argumentTypes": null, - "id": 1192, + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 1175, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "leftHandSide": { + "leftExpression": { "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1185, - "name": "transactions", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 77, - "src": "20560:12:0", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Transaction_$73_storage_$", - "typeString": "mapping(bytes32 => struct Escrow_v1_0.Transaction storage ref)" - } - }, - "id": 1187, - "indexExpression": { - "argumentTypes": null, - "id": 1186, - "name": "scriptHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1072, - "src": "20573:10:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "20560:24:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Transaction_$73_storage", - "typeString": "struct Escrow_v1_0.Transaction storage ref" - } - }, - "id": 1188, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "isOwner", - "nodeType": "MemberAccess", - "referencedDeclaration": 64, - "src": "20560:32:0", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - } - }, - "id": 1190, - "indexExpression": { - "argumentTypes": null, - "id": 1189, - "name": "moderator", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1066, - "src": "20593:9:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "20560:43:0", + "id": 1173, + "name": "threshold", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1057, + "src": "20777:9:0", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_uint8", + "typeString": "uint8" } }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { "argumentTypes": null, - "hexValue": "74727565", - "id": 1191, + "hexValue": "31", + "id": 1174, "isConstant": false, "isLValue": false, "isPure": true, - "kind": "bool", + "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "20606:4:0", + "src": "20789:1:0", "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" }, - "value": "true" + "value": "1" }, - "src": "20560:50:0", + "src": "20777:13:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 1193, - "nodeType": "ExpressionStatement", - "src": "20560:50:0" + "falseBody": null, + "id": 1186, + "nodeType": "IfStatement", + "src": "20773:94:0", + "trueBody": { + "id": 1185, + "nodeType": "Block", + "src": "20792:75:0", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 1183, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1176, + "name": "transactions", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 75, + "src": "20806:12:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Transaction_$71_storage_$", + "typeString": "mapping(bytes32 => struct Escrow_v1_0.Transaction storage ref)" + } + }, + "id": 1178, + "indexExpression": { + "argumentTypes": null, + "id": 1177, + "name": "scriptHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1061, + "src": "20819:10:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "20806:24:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Transaction_$71_storage", + "typeString": "struct Escrow_v1_0.Transaction storage ref" + } + }, + "id": 1179, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "isOwner", + "nodeType": "MemberAccess", + "referencedDeclaration": 62, + "src": "20806:32:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 1181, + "indexExpression": { + "argumentTypes": null, + "id": 1180, + "name": "moderator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1055, + "src": "20839:9:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "20806:43:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 1182, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20852:4:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "20806:50:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1184, + "nodeType": "ExpressionStatement", + "src": "20806:50:0" + } + ] + } }, { "expression": { "argumentTypes": null, - "id": 1195, + "id": 1188, "isConstant": false, "isLValue": false, "isPure": false, @@ -33234,15 +33157,15 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "20629:18:0", + "src": "20885:18:0", "subExpression": { "argumentTypes": null, - "id": 1194, + "id": 1187, "name": "transactionCount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 80, - "src": "20629:16:0", + "referencedDeclaration": 78, + "src": "20885:16:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -33253,9 +33176,9 @@ "typeString": "uint256" } }, - "id": 1196, + "id": 1189, "nodeType": "ExpressionStatement", - "src": "20629:18:0" + "src": "20885:18:0" }, { "expression": { @@ -33263,12 +33186,12 @@ "arguments": [ { "argumentTypes": null, - "id": 1201, + "id": 1194, "name": "scriptHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1072, - "src": "20689:10:0", + "referencedDeclaration": 1061, + "src": "20945:10:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -33286,26 +33209,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1197, + "id": 1190, "name": "partyVsTransaction", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 85, - "src": "20658:18:0", + "referencedDeclaration": 83, + "src": "20914:18:0", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_bytes32_$dyn_storage_$", "typeString": "mapping(address => bytes32[] storage ref)" } }, - "id": 1199, + "id": 1192, "indexExpression": { "argumentTypes": null, - "id": 1198, + "id": 1191, "name": "buyer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1062, - "src": "20677:5:0", + "referencedDeclaration": 1051, + "src": "20933:5:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -33316,13 +33239,13 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "20658:25:0", + "src": "20914:25:0", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", "typeString": "bytes32[] storage ref" } }, - "id": 1200, + "id": 1193, "isConstant": false, "isLValue": false, "isPure": false, @@ -33330,13 +33253,13 @@ "memberName": "push", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "20658:30:0", + "src": "20914:30:0", "typeDescriptions": { "typeIdentifier": "t_function_arraypush_nonpayable$_t_bytes32_$returns$_t_uint256_$", "typeString": "function (bytes32) returns (uint256)" } }, - "id": 1202, + "id": 1195, "isConstant": false, "isLValue": false, "isPure": false, @@ -33344,15 +33267,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "20658:42:0", + "src": "20914:42:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1203, + "id": 1196, "nodeType": "ExpressionStatement", - "src": "20658:42:0" + "src": "20914:42:0" }, { "expression": { @@ -33360,12 +33283,12 @@ "arguments": [ { "argumentTypes": null, - "id": 1208, + "id": 1201, "name": "scriptHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1072, - "src": "20742:10:0", + "referencedDeclaration": 1061, + "src": "20998:10:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -33383,26 +33306,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1204, + "id": 1197, "name": "partyVsTransaction", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 85, - "src": "20710:18:0", + "referencedDeclaration": 83, + "src": "20966:18:0", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_bytes32_$dyn_storage_$", "typeString": "mapping(address => bytes32[] storage ref)" } }, - "id": 1206, + "id": 1199, "indexExpression": { "argumentTypes": null, - "id": 1205, + "id": 1198, "name": "seller", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1064, - "src": "20729:6:0", + "referencedDeclaration": 1053, + "src": "20985:6:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -33413,13 +33336,13 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "20710:26:0", + "src": "20966:26:0", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", "typeString": "bytes32[] storage ref" } }, - "id": 1207, + "id": 1200, "isConstant": false, "isLValue": false, "isPure": false, @@ -33427,13 +33350,13 @@ "memberName": "push", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "20710:31:0", + "src": "20966:31:0", "typeDescriptions": { "typeIdentifier": "t_function_arraypush_nonpayable$_t_bytes32_$returns$_t_uint256_$", "typeString": "function (bytes32) returns (uint256)" } }, - "id": 1209, + "id": 1202, "isConstant": false, "isLValue": false, "isPure": false, @@ -33441,20 +33364,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "20710:43:0", + "src": "20966:43:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1210, + "id": 1203, "nodeType": "ExpressionStatement", - "src": "20710:43:0" + "src": "20966:43:0" } ] }, "documentation": "Private method to add transaction to reduce code redundancy", - "id": 1212, + "id": 1205, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -33462,16 +33385,16 @@ "name": "_addTransaction", "nodeType": "FunctionDefinition", "parameters": { - "id": 1081, + "id": 1070, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1062, + "id": 1051, "name": "buyer", "nodeType": "VariableDeclaration", - "scope": 1212, - "src": "18548:13:0", + "scope": 1205, + "src": "18409:13:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -33479,10 +33402,10 @@ "typeString": "address" }, "typeName": { - "id": 1061, + "id": 1050, "name": "address", "nodeType": "ElementaryTypeName", - "src": "18548:7:0", + "src": "18409:7:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -33493,11 +33416,11 @@ }, { "constant": false, - "id": 1064, + "id": 1053, "name": "seller", "nodeType": "VariableDeclaration", - "scope": 1212, - "src": "18571:14:0", + "scope": 1205, + "src": "18432:14:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -33505,10 +33428,10 @@ "typeString": "address" }, "typeName": { - "id": 1063, + "id": 1052, "name": "address", "nodeType": "ElementaryTypeName", - "src": "18571:7:0", + "src": "18432:7:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -33519,11 +33442,11 @@ }, { "constant": false, - "id": 1066, + "id": 1055, "name": "moderator", "nodeType": "VariableDeclaration", - "scope": 1212, - "src": "18595:17:0", + "scope": 1205, + "src": "18456:17:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -33531,10 +33454,10 @@ "typeString": "address" }, "typeName": { - "id": 1065, + "id": 1054, "name": "address", "nodeType": "ElementaryTypeName", - "src": "18595:7:0", + "src": "18456:7:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -33545,11 +33468,11 @@ }, { "constant": false, - "id": 1068, + "id": 1057, "name": "threshold", "nodeType": "VariableDeclaration", - "scope": 1212, - "src": "18622:15:0", + "scope": 1205, + "src": "18483:15:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -33557,10 +33480,10 @@ "typeString": "uint8" }, "typeName": { - "id": 1067, + "id": 1056, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "18622:5:0", + "src": "18483:5:0", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -33571,11 +33494,11 @@ }, { "constant": false, - "id": 1070, + "id": 1059, "name": "timeoutHours", "nodeType": "VariableDeclaration", - "scope": 1212, - "src": "18647:19:0", + "scope": 1205, + "src": "18508:19:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -33583,10 +33506,10 @@ "typeString": "uint32" }, "typeName": { - "id": 1069, + "id": 1058, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "18647:6:0", + "src": "18508:6:0", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -33597,11 +33520,11 @@ }, { "constant": false, - "id": 1072, + "id": 1061, "name": "scriptHash", "nodeType": "VariableDeclaration", - "scope": 1212, - "src": "18676:18:0", + "scope": 1205, + "src": "18537:18:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -33609,10 +33532,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 1071, + "id": 1060, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "18676:7:0", + "src": "18537:7:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -33623,11 +33546,11 @@ }, { "constant": false, - "id": 1074, + "id": 1063, "name": "value", "nodeType": "VariableDeclaration", - "scope": 1212, - "src": "18704:13:0", + "scope": 1205, + "src": "18565:13:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -33635,10 +33558,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1073, + "id": 1062, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "18704:7:0", + "src": "18565:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -33649,11 +33572,11 @@ }, { "constant": false, - "id": 1076, + "id": 1065, "name": "uniqueId", "nodeType": "VariableDeclaration", - "scope": 1212, - "src": "18727:16:0", + "scope": 1205, + "src": "18588:16:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -33661,10 +33584,10 @@ "typeString": "bytes20" }, "typeName": { - "id": 1075, + "id": 1064, "name": "bytes20", "nodeType": "ElementaryTypeName", - "src": "18727:7:0", + "src": "18588:7:0", "typeDescriptions": { "typeIdentifier": "t_bytes20", "typeString": "bytes20" @@ -33675,11 +33598,11 @@ }, { "constant": false, - "id": 1078, + "id": 1067, "name": "transactionType", "nodeType": "VariableDeclaration", - "scope": 1212, - "src": "18753:31:0", + "scope": 1205, + "src": "18614:31:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -33688,11 +33611,11 @@ }, "typeName": { "contractScope": null, - "id": 1077, + "id": 1066, "name": "TransactionType", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 12, - "src": "18753:15:0", + "src": "18614:15:0", "typeDescriptions": { "typeIdentifier": "t_enum$_TransactionType_$12", "typeString": "enum Escrow_v1_0.TransactionType" @@ -33703,11 +33626,11 @@ }, { "constant": false, - "id": 1080, + "id": 1069, "name": "tokenAddress", "nodeType": "VariableDeclaration", - "scope": 1212, - "src": "18794:20:0", + "scope": 1205, + "src": "18655:20:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -33715,10 +33638,10 @@ "typeString": "address" }, "typeName": { - "id": 1079, + "id": 1068, "name": "address", "nodeType": "ElementaryTypeName", - "src": "18794:7:0", + "src": "18655:7:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -33728,27 +33651,27 @@ "visibility": "internal" } ], - "src": "18538:282:0" + "src": "18399:282:0" }, "payable": false, "returnParameters": { - "id": 1082, + "id": 1071, "nodeType": "ParameterList", "parameters": [], - "src": "18841:0:0" + "src": "18702:0:0" }, - "scope": 1213, - "src": "18514:2246:0", + "scope": 1206, + "src": "18375:2641:0", "stateMutability": "nonpayable", "superFunction": null, "visibility": "private" } ], - "scope": 1214, - "src": "460:20302:0" + "scope": 1207, + "src": "605:20413:0" } ], - "src": "0:20763:0" + "src": "0:21019:0" }, "compiler": { "name": "solc", @@ -33756,5 +33679,5 @@ }, "networks": {}, "schemaVersion": "2.0.1", - "updatedAt": "2018-10-24T15:24:21.055Z" + "updatedAt": "2018-11-19T14:05:13.577Z" } \ No newline at end of file diff --git a/build/contracts/ITokenContract.json b/build/contracts/ITokenContract.json index b4bf90a..2fdc0e8 100644 --- a/build/contracts/ITokenContract.json +++ b/build/contracts/ITokenContract.json @@ -81,14 +81,14 @@ "absolutePath": "/home/sameep/freelancing-projects/toptal/open baazar/publicRepo/smart-contracts/contracts/token/ITokenContract.sol", "exportedSymbols": { "ITokenContract": [ - 1243 + 1236 ] }, - "id": 1244, + "id": 1237, "nodeType": "SourceUnit", "nodes": [ { - "id": 1215, + "id": 1208, "literals": [ "solidity", "0.4", @@ -103,9 +103,9 @@ "contractKind": "interface", "documentation": null, "fullyImplemented": false, - "id": 1243, + "id": 1236, "linearizedBaseContracts": [ - 1243 + 1236 ], "name": "ITokenContract", "nodeType": "ContractDefinition", @@ -113,7 +113,7 @@ { "body": null, "documentation": null, - "id": 1222, + "id": 1215, "implemented": false, "isConstructor": false, "isDeclaredConst": true, @@ -121,15 +121,15 @@ "name": "balanceOf", "nodeType": "FunctionDefinition", "parameters": { - "id": 1218, + "id": 1211, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1217, + "id": 1210, "name": "_owner", "nodeType": "VariableDeclaration", - "scope": 1222, + "scope": 1215, "src": "75:14:1", "stateVariable": false, "storageLocation": "default", @@ -138,7 +138,7 @@ "typeString": "address" }, "typeName": { - "id": 1216, + "id": 1209, "name": "address", "nodeType": "ElementaryTypeName", "src": "75:7:1", @@ -155,15 +155,15 @@ }, "payable": false, "returnParameters": { - "id": 1221, + "id": 1214, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1220, + "id": 1213, "name": "balance", "nodeType": "VariableDeclaration", - "scope": 1222, + "scope": 1215, "src": "114:15:1", "stateVariable": false, "storageLocation": "default", @@ -172,7 +172,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1219, + "id": 1212, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "114:7:1", @@ -187,7 +187,7 @@ ], "src": "113:17:1" }, - "scope": 1243, + "scope": 1236, "src": "56:75:1", "stateMutability": "view", "superFunction": null, @@ -196,7 +196,7 @@ { "body": null, "documentation": null, - "id": 1231, + "id": 1224, "implemented": false, "isConstructor": false, "isDeclaredConst": false, @@ -204,15 +204,15 @@ "name": "transfer", "nodeType": "FunctionDefinition", "parameters": { - "id": 1227, + "id": 1220, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1224, + "id": 1217, "name": "_to", "nodeType": "VariableDeclaration", - "scope": 1231, + "scope": 1224, "src": "166:11:1", "stateVariable": false, "storageLocation": "default", @@ -221,7 +221,7 @@ "typeString": "address" }, "typeName": { - "id": 1223, + "id": 1216, "name": "address", "nodeType": "ElementaryTypeName", "src": "166:7:1", @@ -235,10 +235,10 @@ }, { "constant": false, - "id": 1226, + "id": 1219, "name": "_amount", "nodeType": "VariableDeclaration", - "scope": 1231, + "scope": 1224, "src": "188:15:1", "stateVariable": false, "storageLocation": "default", @@ -247,7 +247,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1225, + "id": 1218, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "188:7:1", @@ -264,15 +264,15 @@ }, "payable": false, "returnParameters": { - "id": 1230, + "id": 1223, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1229, + "id": 1222, "name": "success", "nodeType": "VariableDeclaration", - "scope": 1231, + "scope": 1224, "src": "245:12:1", "stateVariable": false, "storageLocation": "default", @@ -281,7 +281,7 @@ "typeString": "bool" }, "typeName": { - "id": 1228, + "id": 1221, "name": "bool", "nodeType": "ElementaryTypeName", "src": "245:4:1", @@ -296,7 +296,7 @@ ], "src": "244:14:1" }, - "scope": 1243, + "scope": 1236, "src": "139:120:1", "stateMutability": "nonpayable", "superFunction": null, @@ -305,7 +305,7 @@ { "body": null, "documentation": null, - "id": 1242, + "id": 1235, "implemented": false, "isConstructor": false, "isDeclaredConst": false, @@ -313,15 +313,15 @@ "name": "transferFrom", "nodeType": "FunctionDefinition", "parameters": { - "id": 1238, + "id": 1231, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1233, + "id": 1226, "name": "_from", "nodeType": "VariableDeclaration", - "scope": 1242, + "scope": 1235, "src": "296:13:1", "stateVariable": false, "storageLocation": "default", @@ -330,7 +330,7 @@ "typeString": "address" }, "typeName": { - "id": 1232, + "id": 1225, "name": "address", "nodeType": "ElementaryTypeName", "src": "296:7:1", @@ -344,10 +344,10 @@ }, { "constant": false, - "id": 1235, + "id": 1228, "name": "_to", "nodeType": "VariableDeclaration", - "scope": 1242, + "scope": 1235, "src": "320:11:1", "stateVariable": false, "storageLocation": "default", @@ -356,7 +356,7 @@ "typeString": "address" }, "typeName": { - "id": 1234, + "id": 1227, "name": "address", "nodeType": "ElementaryTypeName", "src": "320:7:1", @@ -370,10 +370,10 @@ }, { "constant": false, - "id": 1237, + "id": 1230, "name": "_amount", "nodeType": "VariableDeclaration", - "scope": 1242, + "scope": 1235, "src": "342:15:1", "stateVariable": false, "storageLocation": "default", @@ -382,7 +382,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1236, + "id": 1229, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "342:7:1", @@ -399,15 +399,15 @@ }, "payable": false, "returnParameters": { - "id": 1241, + "id": 1234, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1240, + "id": 1233, "name": "success", "nodeType": "VariableDeclaration", - "scope": 1242, + "scope": 1235, "src": "400:12:1", "stateVariable": false, "storageLocation": "default", @@ -416,7 +416,7 @@ "typeString": "bool" }, "typeName": { - "id": 1239, + "id": 1232, "name": "bool", "nodeType": "ElementaryTypeName", "src": "400:4:1", @@ -431,14 +431,14 @@ ], "src": "399:14:1" }, - "scope": 1243, + "scope": 1236, "src": "265:149:1", "stateMutability": "nonpayable", "superFunction": null, "visibility": "external" } ], - "scope": 1244, + "scope": 1237, "src": "25:391:1" } ], @@ -448,14 +448,14 @@ "absolutePath": "/home/sameep/freelancing-projects/toptal/open baazar/publicRepo/smart-contracts/contracts/token/ITokenContract.sol", "exportedSymbols": { "ITokenContract": [ - 1243 + 1236 ] }, - "id": 1244, + "id": 1237, "nodeType": "SourceUnit", "nodes": [ { - "id": 1215, + "id": 1208, "literals": [ "solidity", "0.4", @@ -470,9 +470,9 @@ "contractKind": "interface", "documentation": null, "fullyImplemented": false, - "id": 1243, + "id": 1236, "linearizedBaseContracts": [ - 1243 + 1236 ], "name": "ITokenContract", "nodeType": "ContractDefinition", @@ -480,7 +480,7 @@ { "body": null, "documentation": null, - "id": 1222, + "id": 1215, "implemented": false, "isConstructor": false, "isDeclaredConst": true, @@ -488,15 +488,15 @@ "name": "balanceOf", "nodeType": "FunctionDefinition", "parameters": { - "id": 1218, + "id": 1211, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1217, + "id": 1210, "name": "_owner", "nodeType": "VariableDeclaration", - "scope": 1222, + "scope": 1215, "src": "75:14:1", "stateVariable": false, "storageLocation": "default", @@ -505,7 +505,7 @@ "typeString": "address" }, "typeName": { - "id": 1216, + "id": 1209, "name": "address", "nodeType": "ElementaryTypeName", "src": "75:7:1", @@ -522,15 +522,15 @@ }, "payable": false, "returnParameters": { - "id": 1221, + "id": 1214, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1220, + "id": 1213, "name": "balance", "nodeType": "VariableDeclaration", - "scope": 1222, + "scope": 1215, "src": "114:15:1", "stateVariable": false, "storageLocation": "default", @@ -539,7 +539,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1219, + "id": 1212, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "114:7:1", @@ -554,7 +554,7 @@ ], "src": "113:17:1" }, - "scope": 1243, + "scope": 1236, "src": "56:75:1", "stateMutability": "view", "superFunction": null, @@ -563,7 +563,7 @@ { "body": null, "documentation": null, - "id": 1231, + "id": 1224, "implemented": false, "isConstructor": false, "isDeclaredConst": false, @@ -571,15 +571,15 @@ "name": "transfer", "nodeType": "FunctionDefinition", "parameters": { - "id": 1227, + "id": 1220, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1224, + "id": 1217, "name": "_to", "nodeType": "VariableDeclaration", - "scope": 1231, + "scope": 1224, "src": "166:11:1", "stateVariable": false, "storageLocation": "default", @@ -588,7 +588,7 @@ "typeString": "address" }, "typeName": { - "id": 1223, + "id": 1216, "name": "address", "nodeType": "ElementaryTypeName", "src": "166:7:1", @@ -602,10 +602,10 @@ }, { "constant": false, - "id": 1226, + "id": 1219, "name": "_amount", "nodeType": "VariableDeclaration", - "scope": 1231, + "scope": 1224, "src": "188:15:1", "stateVariable": false, "storageLocation": "default", @@ -614,7 +614,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1225, + "id": 1218, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "188:7:1", @@ -631,15 +631,15 @@ }, "payable": false, "returnParameters": { - "id": 1230, + "id": 1223, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1229, + "id": 1222, "name": "success", "nodeType": "VariableDeclaration", - "scope": 1231, + "scope": 1224, "src": "245:12:1", "stateVariable": false, "storageLocation": "default", @@ -648,7 +648,7 @@ "typeString": "bool" }, "typeName": { - "id": 1228, + "id": 1221, "name": "bool", "nodeType": "ElementaryTypeName", "src": "245:4:1", @@ -663,7 +663,7 @@ ], "src": "244:14:1" }, - "scope": 1243, + "scope": 1236, "src": "139:120:1", "stateMutability": "nonpayable", "superFunction": null, @@ -672,7 +672,7 @@ { "body": null, "documentation": null, - "id": 1242, + "id": 1235, "implemented": false, "isConstructor": false, "isDeclaredConst": false, @@ -680,15 +680,15 @@ "name": "transferFrom", "nodeType": "FunctionDefinition", "parameters": { - "id": 1238, + "id": 1231, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1233, + "id": 1226, "name": "_from", "nodeType": "VariableDeclaration", - "scope": 1242, + "scope": 1235, "src": "296:13:1", "stateVariable": false, "storageLocation": "default", @@ -697,7 +697,7 @@ "typeString": "address" }, "typeName": { - "id": 1232, + "id": 1225, "name": "address", "nodeType": "ElementaryTypeName", "src": "296:7:1", @@ -711,10 +711,10 @@ }, { "constant": false, - "id": 1235, + "id": 1228, "name": "_to", "nodeType": "VariableDeclaration", - "scope": 1242, + "scope": 1235, "src": "320:11:1", "stateVariable": false, "storageLocation": "default", @@ -723,7 +723,7 @@ "typeString": "address" }, "typeName": { - "id": 1234, + "id": 1227, "name": "address", "nodeType": "ElementaryTypeName", "src": "320:7:1", @@ -737,10 +737,10 @@ }, { "constant": false, - "id": 1237, + "id": 1230, "name": "_amount", "nodeType": "VariableDeclaration", - "scope": 1242, + "scope": 1235, "src": "342:15:1", "stateVariable": false, "storageLocation": "default", @@ -749,7 +749,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1236, + "id": 1229, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "342:7:1", @@ -766,15 +766,15 @@ }, "payable": false, "returnParameters": { - "id": 1241, + "id": 1234, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1240, + "id": 1233, "name": "success", "nodeType": "VariableDeclaration", - "scope": 1242, + "scope": 1235, "src": "400:12:1", "stateVariable": false, "storageLocation": "default", @@ -783,7 +783,7 @@ "typeString": "bool" }, "typeName": { - "id": 1239, + "id": 1232, "name": "bool", "nodeType": "ElementaryTypeName", "src": "400:4:1", @@ -798,14 +798,14 @@ ], "src": "399:14:1" }, - "scope": 1243, + "scope": 1236, "src": "265:149:1", "stateMutability": "nonpayable", "superFunction": null, "visibility": "external" } ], - "scope": 1244, + "scope": 1237, "src": "25:391:1" } ], @@ -817,5 +817,5 @@ }, "networks": {}, "schemaVersion": "2.0.1", - "updatedAt": "2018-10-24T15:24:21.034Z" + "updatedAt": "2018-11-19T14:05:13.568Z" } \ No newline at end of file diff --git a/build/contracts/SafeMath.json b/build/contracts/SafeMath.json index 926189e..34c6d6f 100644 --- a/build/contracts/SafeMath.json +++ b/build/contracts/SafeMath.json @@ -11,14 +11,14 @@ "absolutePath": "openzeppelin-solidity/contracts/math/SafeMath.sol", "exportedSymbols": { "SafeMath": [ - 1371 + 1364 ] }, - "id": 1372, + "id": 1365, "nodeType": "SourceUnit", "nodes": [ { - "id": 1245, + "id": 1238, "literals": [ "solidity", "^", @@ -34,16 +34,16 @@ "contractKind": "library", "documentation": "@title SafeMath\n@dev Math operations with safety checks that revert on error", "fullyImplemented": true, - "id": 1371, + "id": 1364, "linearizedBaseContracts": [ - 1371 + 1364 ], "name": "SafeMath", "nodeType": "ContractDefinition", "nodes": [ { "body": { - "id": 1277, + "id": 1270, "nodeType": "Block", "src": "271:314:2", "statements": [ @@ -54,18 +54,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1256, + "id": 1249, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1254, + "id": 1247, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1247, + "referencedDeclaration": 1240, "src": "486:1:2", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -77,7 +77,7 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 1255, + "id": 1248, "isConstant": false, "isLValue": false, "isPure": true, @@ -99,11 +99,11 @@ } }, "falseBody": null, - "id": 1260, + "id": 1253, "nodeType": "IfStatement", "src": "482:35:2", "trueBody": { - "id": 1259, + "id": 1252, "nodeType": "Block", "src": "494:23:2", "statements": [ @@ -111,7 +111,7 @@ "expression": { "argumentTypes": null, "hexValue": "30", - "id": 1257, + "id": 1250, "isConstant": false, "isLValue": false, "isPure": true, @@ -126,8 +126,8 @@ }, "value": "0" }, - "functionReturnParameters": 1253, - "id": 1258, + "functionReturnParameters": 1246, + "id": 1251, "nodeType": "Return", "src": "502:8:2" } @@ -136,15 +136,15 @@ }, { "assignments": [ - 1262 + 1255 ], "declarations": [ { "constant": false, - "id": 1262, + "id": 1255, "name": "c", "nodeType": "VariableDeclaration", - "scope": 1278, + "scope": 1271, "src": "523:9:2", "stateVariable": false, "storageLocation": "default", @@ -153,7 +153,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1261, + "id": 1254, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "523:7:2", @@ -166,25 +166,25 @@ "visibility": "internal" } ], - "id": 1266, + "id": 1259, "initialValue": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1265, + "id": 1258, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1263, + "id": 1256, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1247, + "referencedDeclaration": 1240, "src": "535:1:2", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -195,11 +195,11 @@ "operator": "*", "rightExpression": { "argumentTypes": null, - "id": 1264, + "id": 1257, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1249, + "referencedDeclaration": 1242, "src": "539:1:2", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -225,7 +225,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1272, + "id": 1265, "isConstant": false, "isLValue": false, "isPure": false, @@ -236,18 +236,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1270, + "id": 1263, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1268, + "id": 1261, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1262, + "referencedDeclaration": 1255, "src": "554:1:2", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -258,11 +258,11 @@ "operator": "/", "rightExpression": { "argumentTypes": null, - "id": 1269, + "id": 1262, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1247, + "referencedDeclaration": 1240, "src": "558:1:2", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -279,11 +279,11 @@ "operator": "==", "rightExpression": { "argumentTypes": null, - "id": 1271, + "id": 1264, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1249, + "referencedDeclaration": 1242, "src": "563:1:2", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -304,21 +304,21 @@ "typeString": "bool" } ], - "id": 1267, + "id": 1260, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1389, - 1390 + 1382, + 1383 ], - "referencedDeclaration": 1389, + "referencedDeclaration": 1382, "src": "546:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 1273, + "id": 1266, "isConstant": false, "isLValue": false, "isPure": false, @@ -332,33 +332,33 @@ "typeString": "tuple()" } }, - "id": 1274, + "id": 1267, "nodeType": "ExpressionStatement", "src": "546:19:2" }, { "expression": { "argumentTypes": null, - "id": 1275, + "id": 1268, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1262, + "referencedDeclaration": 1255, "src": "579:1:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 1253, - "id": 1276, + "functionReturnParameters": 1246, + "id": 1269, "nodeType": "Return", "src": "572:8:2" } ] }, "documentation": "@dev Multiplies two numbers, reverts on overflow.", - "id": 1278, + "id": 1271, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -366,15 +366,15 @@ "name": "mul", "nodeType": "FunctionDefinition", "parameters": { - "id": 1250, + "id": 1243, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1247, + "id": 1240, "name": "a", "nodeType": "VariableDeclaration", - "scope": 1278, + "scope": 1271, "src": "217:9:2", "stateVariable": false, "storageLocation": "default", @@ -383,7 +383,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1246, + "id": 1239, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "217:7:2", @@ -397,10 +397,10 @@ }, { "constant": false, - "id": 1249, + "id": 1242, "name": "b", "nodeType": "VariableDeclaration", - "scope": 1278, + "scope": 1271, "src": "228:9:2", "stateVariable": false, "storageLocation": "default", @@ -409,7 +409,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1248, + "id": 1241, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "228:7:2", @@ -426,15 +426,15 @@ }, "payable": false, "returnParameters": { - "id": 1253, + "id": 1246, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1252, + "id": 1245, "name": "", "nodeType": "VariableDeclaration", - "scope": 1278, + "scope": 1271, "src": "262:7:2", "stateVariable": false, "storageLocation": "default", @@ -443,7 +443,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1251, + "id": 1244, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "262:7:2", @@ -458,7 +458,7 @@ ], "src": "261:9:2" }, - "scope": 1371, + "scope": 1364, "src": "204:381:2", "stateMutability": "pure", "superFunction": null, @@ -466,7 +466,7 @@ }, { "body": { - "id": 1301, + "id": 1294, "nodeType": "Block", "src": "762:203:2", "statements": [ @@ -480,18 +480,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1290, + "id": 1283, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1288, + "id": 1281, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1282, + "referencedDeclaration": 1275, "src": "776:1:2", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -503,7 +503,7 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 1289, + "id": 1282, "isConstant": false, "isLValue": false, "isPure": true, @@ -532,21 +532,21 @@ "typeString": "bool" } ], - "id": 1287, + "id": 1280, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1389, - 1390 + 1382, + 1383 ], - "referencedDeclaration": 1389, + "referencedDeclaration": 1382, "src": "768:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 1291, + "id": 1284, "isConstant": false, "isLValue": false, "isPure": false, @@ -560,21 +560,21 @@ "typeString": "tuple()" } }, - "id": 1292, + "id": 1285, "nodeType": "ExpressionStatement", "src": "768:14:2" }, { "assignments": [ - 1294 + 1287 ], "declarations": [ { "constant": false, - "id": 1294, + "id": 1287, "name": "c", "nodeType": "VariableDeclaration", - "scope": 1302, + "scope": 1295, "src": "846:9:2", "stateVariable": false, "storageLocation": "default", @@ -583,7 +583,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1293, + "id": 1286, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "846:7:2", @@ -596,25 +596,25 @@ "visibility": "internal" } ], - "id": 1298, + "id": 1291, "initialValue": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1297, + "id": 1290, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1295, + "id": 1288, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1280, + "referencedDeclaration": 1273, "src": "858:1:2", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -625,11 +625,11 @@ "operator": "/", "rightExpression": { "argumentTypes": null, - "id": 1296, + "id": 1289, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1282, + "referencedDeclaration": 1275, "src": "862:1:2", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -648,26 +648,26 @@ { "expression": { "argumentTypes": null, - "id": 1299, + "id": 1292, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1294, + "referencedDeclaration": 1287, "src": "959:1:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 1286, - "id": 1300, + "functionReturnParameters": 1279, + "id": 1293, "nodeType": "Return", "src": "952:8:2" } ] }, "documentation": "@dev Integer division of two numbers truncating the quotient, reverts on division by zero.", - "id": 1302, + "id": 1295, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -675,15 +675,15 @@ "name": "div", "nodeType": "FunctionDefinition", "parameters": { - "id": 1283, + "id": 1276, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1280, + "id": 1273, "name": "a", "nodeType": "VariableDeclaration", - "scope": 1302, + "scope": 1295, "src": "708:9:2", "stateVariable": false, "storageLocation": "default", @@ -692,7 +692,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1279, + "id": 1272, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "708:7:2", @@ -706,10 +706,10 @@ }, { "constant": false, - "id": 1282, + "id": 1275, "name": "b", "nodeType": "VariableDeclaration", - "scope": 1302, + "scope": 1295, "src": "719:9:2", "stateVariable": false, "storageLocation": "default", @@ -718,7 +718,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1281, + "id": 1274, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "719:7:2", @@ -735,15 +735,15 @@ }, "payable": false, "returnParameters": { - "id": 1286, + "id": 1279, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1285, + "id": 1278, "name": "", "nodeType": "VariableDeclaration", - "scope": 1302, + "scope": 1295, "src": "753:7:2", "stateVariable": false, "storageLocation": "default", @@ -752,7 +752,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1284, + "id": 1277, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "753:7:2", @@ -767,7 +767,7 @@ ], "src": "752:9:2" }, - "scope": 1371, + "scope": 1364, "src": "695:270:2", "stateMutability": "pure", "superFunction": null, @@ -775,7 +775,7 @@ }, { "body": { - "id": 1325, + "id": 1318, "nodeType": "Block", "src": "1145:64:2", "statements": [ @@ -789,18 +789,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1314, + "id": 1307, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1312, + "id": 1305, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1306, + "referencedDeclaration": 1299, "src": "1159:1:2", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -811,11 +811,11 @@ "operator": "<=", "rightExpression": { "argumentTypes": null, - "id": 1313, + "id": 1306, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1304, + "referencedDeclaration": 1297, "src": "1164:1:2", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -836,21 +836,21 @@ "typeString": "bool" } ], - "id": 1311, + "id": 1304, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1389, - 1390 + 1382, + 1383 ], - "referencedDeclaration": 1389, + "referencedDeclaration": 1382, "src": "1151:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 1315, + "id": 1308, "isConstant": false, "isLValue": false, "isPure": false, @@ -864,21 +864,21 @@ "typeString": "tuple()" } }, - "id": 1316, + "id": 1309, "nodeType": "ExpressionStatement", "src": "1151:15:2" }, { "assignments": [ - 1318 + 1311 ], "declarations": [ { "constant": false, - "id": 1318, + "id": 1311, "name": "c", "nodeType": "VariableDeclaration", - "scope": 1326, + "scope": 1319, "src": "1172:9:2", "stateVariable": false, "storageLocation": "default", @@ -887,7 +887,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1317, + "id": 1310, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1172:7:2", @@ -900,25 +900,25 @@ "visibility": "internal" } ], - "id": 1322, + "id": 1315, "initialValue": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1321, + "id": 1314, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1319, + "id": 1312, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1304, + "referencedDeclaration": 1297, "src": "1184:1:2", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -929,11 +929,11 @@ "operator": "-", "rightExpression": { "argumentTypes": null, - "id": 1320, + "id": 1313, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1306, + "referencedDeclaration": 1299, "src": "1188:1:2", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -952,26 +952,26 @@ { "expression": { "argumentTypes": null, - "id": 1323, + "id": 1316, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1318, + "referencedDeclaration": 1311, "src": "1203:1:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 1310, - "id": 1324, + "functionReturnParameters": 1303, + "id": 1317, "nodeType": "Return", "src": "1196:8:2" } ] }, "documentation": "@dev Subtracts two numbers, reverts on overflow (i.e. if subtrahend is greater than minuend).", - "id": 1326, + "id": 1319, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -979,15 +979,15 @@ "name": "sub", "nodeType": "FunctionDefinition", "parameters": { - "id": 1307, + "id": 1300, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1304, + "id": 1297, "name": "a", "nodeType": "VariableDeclaration", - "scope": 1326, + "scope": 1319, "src": "1091:9:2", "stateVariable": false, "storageLocation": "default", @@ -996,7 +996,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1303, + "id": 1296, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1091:7:2", @@ -1010,10 +1010,10 @@ }, { "constant": false, - "id": 1306, + "id": 1299, "name": "b", "nodeType": "VariableDeclaration", - "scope": 1326, + "scope": 1319, "src": "1102:9:2", "stateVariable": false, "storageLocation": "default", @@ -1022,7 +1022,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1305, + "id": 1298, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1102:7:2", @@ -1039,15 +1039,15 @@ }, "payable": false, "returnParameters": { - "id": 1310, + "id": 1303, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1309, + "id": 1302, "name": "", "nodeType": "VariableDeclaration", - "scope": 1326, + "scope": 1319, "src": "1136:7:2", "stateVariable": false, "storageLocation": "default", @@ -1056,7 +1056,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1308, + "id": 1301, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1136:7:2", @@ -1071,7 +1071,7 @@ ], "src": "1135:9:2" }, - "scope": 1371, + "scope": 1364, "src": "1078:131:2", "stateMutability": "pure", "superFunction": null, @@ -1079,21 +1079,21 @@ }, { "body": { - "id": 1349, + "id": 1342, "nodeType": "Block", "src": "1339:64:2", "statements": [ { "assignments": [ - 1336 + 1329 ], "declarations": [ { "constant": false, - "id": 1336, + "id": 1329, "name": "c", "nodeType": "VariableDeclaration", - "scope": 1350, + "scope": 1343, "src": "1345:9:2", "stateVariable": false, "storageLocation": "default", @@ -1102,7 +1102,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1335, + "id": 1328, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1345:7:2", @@ -1115,25 +1115,25 @@ "visibility": "internal" } ], - "id": 1340, + "id": 1333, "initialValue": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1339, + "id": 1332, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1337, + "id": 1330, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1328, + "referencedDeclaration": 1321, "src": "1357:1:2", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -1144,11 +1144,11 @@ "operator": "+", "rightExpression": { "argumentTypes": null, - "id": 1338, + "id": 1331, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1330, + "referencedDeclaration": 1323, "src": "1361:1:2", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -1174,18 +1174,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1344, + "id": 1337, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1342, + "id": 1335, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1336, + "referencedDeclaration": 1329, "src": "1376:1:2", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -1196,11 +1196,11 @@ "operator": ">=", "rightExpression": { "argumentTypes": null, - "id": 1343, + "id": 1336, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1328, + "referencedDeclaration": 1321, "src": "1381:1:2", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -1221,21 +1221,21 @@ "typeString": "bool" } ], - "id": 1341, + "id": 1334, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1389, - 1390 + 1382, + 1383 ], - "referencedDeclaration": 1389, + "referencedDeclaration": 1382, "src": "1368:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 1345, + "id": 1338, "isConstant": false, "isLValue": false, "isPure": false, @@ -1249,33 +1249,33 @@ "typeString": "tuple()" } }, - "id": 1346, + "id": 1339, "nodeType": "ExpressionStatement", "src": "1368:15:2" }, { "expression": { "argumentTypes": null, - "id": 1347, + "id": 1340, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1336, + "referencedDeclaration": 1329, "src": "1397:1:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 1334, - "id": 1348, + "functionReturnParameters": 1327, + "id": 1341, "nodeType": "Return", "src": "1390:8:2" } ] }, "documentation": "@dev Adds two numbers, reverts on overflow.", - "id": 1350, + "id": 1343, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -1283,15 +1283,15 @@ "name": "add", "nodeType": "FunctionDefinition", "parameters": { - "id": 1331, + "id": 1324, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1328, + "id": 1321, "name": "a", "nodeType": "VariableDeclaration", - "scope": 1350, + "scope": 1343, "src": "1285:9:2", "stateVariable": false, "storageLocation": "default", @@ -1300,7 +1300,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1327, + "id": 1320, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1285:7:2", @@ -1314,10 +1314,10 @@ }, { "constant": false, - "id": 1330, + "id": 1323, "name": "b", "nodeType": "VariableDeclaration", - "scope": 1350, + "scope": 1343, "src": "1296:9:2", "stateVariable": false, "storageLocation": "default", @@ -1326,7 +1326,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1329, + "id": 1322, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1296:7:2", @@ -1343,15 +1343,15 @@ }, "payable": false, "returnParameters": { - "id": 1334, + "id": 1327, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1333, + "id": 1326, "name": "", "nodeType": "VariableDeclaration", - "scope": 1350, + "scope": 1343, "src": "1330:7:2", "stateVariable": false, "storageLocation": "default", @@ -1360,7 +1360,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1332, + "id": 1325, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1330:7:2", @@ -1375,7 +1375,7 @@ ], "src": "1329:9:2" }, - "scope": 1371, + "scope": 1364, "src": "1272:131:2", "stateMutability": "pure", "superFunction": null, @@ -1383,7 +1383,7 @@ }, { "body": { - "id": 1369, + "id": 1362, "nodeType": "Block", "src": "1602:44:2", "statements": [ @@ -1397,18 +1397,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1362, + "id": 1355, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1360, + "id": 1353, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1354, + "referencedDeclaration": 1347, "src": "1616:1:2", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -1420,7 +1420,7 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 1361, + "id": 1354, "isConstant": false, "isLValue": false, "isPure": true, @@ -1449,21 +1449,21 @@ "typeString": "bool" } ], - "id": 1359, + "id": 1352, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1389, - 1390 + 1382, + 1383 ], - "referencedDeclaration": 1389, + "referencedDeclaration": 1382, "src": "1608:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 1363, + "id": 1356, "isConstant": false, "isLValue": false, "isPure": false, @@ -1477,7 +1477,7 @@ "typeString": "tuple()" } }, - "id": 1364, + "id": 1357, "nodeType": "ExpressionStatement", "src": "1608:15:2" }, @@ -1488,18 +1488,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1367, + "id": 1360, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1365, + "id": 1358, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1352, + "referencedDeclaration": 1345, "src": "1636:1:2", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -1510,11 +1510,11 @@ "operator": "%", "rightExpression": { "argumentTypes": null, - "id": 1366, + "id": 1359, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1354, + "referencedDeclaration": 1347, "src": "1640:1:2", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -1527,15 +1527,15 @@ "typeString": "uint256" } }, - "functionReturnParameters": 1358, - "id": 1368, + "functionReturnParameters": 1351, + "id": 1361, "nodeType": "Return", "src": "1629:12:2" } ] }, "documentation": "@dev Divides two numbers and returns the remainder (unsigned integer modulo),\nreverts when dividing by zero.", - "id": 1370, + "id": 1363, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -1543,15 +1543,15 @@ "name": "mod", "nodeType": "FunctionDefinition", "parameters": { - "id": 1355, + "id": 1348, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1352, + "id": 1345, "name": "a", "nodeType": "VariableDeclaration", - "scope": 1370, + "scope": 1363, "src": "1548:9:2", "stateVariable": false, "storageLocation": "default", @@ -1560,7 +1560,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1351, + "id": 1344, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1548:7:2", @@ -1574,10 +1574,10 @@ }, { "constant": false, - "id": 1354, + "id": 1347, "name": "b", "nodeType": "VariableDeclaration", - "scope": 1370, + "scope": 1363, "src": "1559:9:2", "stateVariable": false, "storageLocation": "default", @@ -1586,7 +1586,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1353, + "id": 1346, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1559:7:2", @@ -1603,15 +1603,15 @@ }, "payable": false, "returnParameters": { - "id": 1358, + "id": 1351, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1357, + "id": 1350, "name": "", "nodeType": "VariableDeclaration", - "scope": 1370, + "scope": 1363, "src": "1593:7:2", "stateVariable": false, "storageLocation": "default", @@ -1620,7 +1620,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1356, + "id": 1349, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1593:7:2", @@ -1635,14 +1635,14 @@ ], "src": "1592:9:2" }, - "scope": 1371, + "scope": 1364, "src": "1535:111:2", "stateMutability": "pure", "superFunction": null, "visibility": "internal" } ], - "scope": 1372, + "scope": 1365, "src": "117:1531:2" } ], @@ -1652,14 +1652,14 @@ "absolutePath": "openzeppelin-solidity/contracts/math/SafeMath.sol", "exportedSymbols": { "SafeMath": [ - 1371 + 1364 ] }, - "id": 1372, + "id": 1365, "nodeType": "SourceUnit", "nodes": [ { - "id": 1245, + "id": 1238, "literals": [ "solidity", "^", @@ -1675,16 +1675,16 @@ "contractKind": "library", "documentation": "@title SafeMath\n@dev Math operations with safety checks that revert on error", "fullyImplemented": true, - "id": 1371, + "id": 1364, "linearizedBaseContracts": [ - 1371 + 1364 ], "name": "SafeMath", "nodeType": "ContractDefinition", "nodes": [ { "body": { - "id": 1277, + "id": 1270, "nodeType": "Block", "src": "271:314:2", "statements": [ @@ -1695,18 +1695,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1256, + "id": 1249, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1254, + "id": 1247, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1247, + "referencedDeclaration": 1240, "src": "486:1:2", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -1718,7 +1718,7 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 1255, + "id": 1248, "isConstant": false, "isLValue": false, "isPure": true, @@ -1740,11 +1740,11 @@ } }, "falseBody": null, - "id": 1260, + "id": 1253, "nodeType": "IfStatement", "src": "482:35:2", "trueBody": { - "id": 1259, + "id": 1252, "nodeType": "Block", "src": "494:23:2", "statements": [ @@ -1752,7 +1752,7 @@ "expression": { "argumentTypes": null, "hexValue": "30", - "id": 1257, + "id": 1250, "isConstant": false, "isLValue": false, "isPure": true, @@ -1767,8 +1767,8 @@ }, "value": "0" }, - "functionReturnParameters": 1253, - "id": 1258, + "functionReturnParameters": 1246, + "id": 1251, "nodeType": "Return", "src": "502:8:2" } @@ -1777,15 +1777,15 @@ }, { "assignments": [ - 1262 + 1255 ], "declarations": [ { "constant": false, - "id": 1262, + "id": 1255, "name": "c", "nodeType": "VariableDeclaration", - "scope": 1278, + "scope": 1271, "src": "523:9:2", "stateVariable": false, "storageLocation": "default", @@ -1794,7 +1794,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1261, + "id": 1254, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "523:7:2", @@ -1807,25 +1807,25 @@ "visibility": "internal" } ], - "id": 1266, + "id": 1259, "initialValue": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1265, + "id": 1258, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1263, + "id": 1256, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1247, + "referencedDeclaration": 1240, "src": "535:1:2", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -1836,11 +1836,11 @@ "operator": "*", "rightExpression": { "argumentTypes": null, - "id": 1264, + "id": 1257, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1249, + "referencedDeclaration": 1242, "src": "539:1:2", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -1866,7 +1866,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1272, + "id": 1265, "isConstant": false, "isLValue": false, "isPure": false, @@ -1877,18 +1877,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1270, + "id": 1263, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1268, + "id": 1261, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1262, + "referencedDeclaration": 1255, "src": "554:1:2", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -1899,11 +1899,11 @@ "operator": "/", "rightExpression": { "argumentTypes": null, - "id": 1269, + "id": 1262, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1247, + "referencedDeclaration": 1240, "src": "558:1:2", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -1920,11 +1920,11 @@ "operator": "==", "rightExpression": { "argumentTypes": null, - "id": 1271, + "id": 1264, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1249, + "referencedDeclaration": 1242, "src": "563:1:2", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -1945,21 +1945,21 @@ "typeString": "bool" } ], - "id": 1267, + "id": 1260, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1389, - 1390 + 1382, + 1383 ], - "referencedDeclaration": 1389, + "referencedDeclaration": 1382, "src": "546:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 1273, + "id": 1266, "isConstant": false, "isLValue": false, "isPure": false, @@ -1973,33 +1973,33 @@ "typeString": "tuple()" } }, - "id": 1274, + "id": 1267, "nodeType": "ExpressionStatement", "src": "546:19:2" }, { "expression": { "argumentTypes": null, - "id": 1275, + "id": 1268, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1262, + "referencedDeclaration": 1255, "src": "579:1:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 1253, - "id": 1276, + "functionReturnParameters": 1246, + "id": 1269, "nodeType": "Return", "src": "572:8:2" } ] }, "documentation": "@dev Multiplies two numbers, reverts on overflow.", - "id": 1278, + "id": 1271, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -2007,15 +2007,15 @@ "name": "mul", "nodeType": "FunctionDefinition", "parameters": { - "id": 1250, + "id": 1243, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1247, + "id": 1240, "name": "a", "nodeType": "VariableDeclaration", - "scope": 1278, + "scope": 1271, "src": "217:9:2", "stateVariable": false, "storageLocation": "default", @@ -2024,7 +2024,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1246, + "id": 1239, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "217:7:2", @@ -2038,10 +2038,10 @@ }, { "constant": false, - "id": 1249, + "id": 1242, "name": "b", "nodeType": "VariableDeclaration", - "scope": 1278, + "scope": 1271, "src": "228:9:2", "stateVariable": false, "storageLocation": "default", @@ -2050,7 +2050,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1248, + "id": 1241, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "228:7:2", @@ -2067,15 +2067,15 @@ }, "payable": false, "returnParameters": { - "id": 1253, + "id": 1246, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1252, + "id": 1245, "name": "", "nodeType": "VariableDeclaration", - "scope": 1278, + "scope": 1271, "src": "262:7:2", "stateVariable": false, "storageLocation": "default", @@ -2084,7 +2084,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1251, + "id": 1244, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "262:7:2", @@ -2099,7 +2099,7 @@ ], "src": "261:9:2" }, - "scope": 1371, + "scope": 1364, "src": "204:381:2", "stateMutability": "pure", "superFunction": null, @@ -2107,7 +2107,7 @@ }, { "body": { - "id": 1301, + "id": 1294, "nodeType": "Block", "src": "762:203:2", "statements": [ @@ -2121,18 +2121,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1290, + "id": 1283, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1288, + "id": 1281, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1282, + "referencedDeclaration": 1275, "src": "776:1:2", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -2144,7 +2144,7 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 1289, + "id": 1282, "isConstant": false, "isLValue": false, "isPure": true, @@ -2173,21 +2173,21 @@ "typeString": "bool" } ], - "id": 1287, + "id": 1280, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1389, - 1390 + 1382, + 1383 ], - "referencedDeclaration": 1389, + "referencedDeclaration": 1382, "src": "768:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 1291, + "id": 1284, "isConstant": false, "isLValue": false, "isPure": false, @@ -2201,21 +2201,21 @@ "typeString": "tuple()" } }, - "id": 1292, + "id": 1285, "nodeType": "ExpressionStatement", "src": "768:14:2" }, { "assignments": [ - 1294 + 1287 ], "declarations": [ { "constant": false, - "id": 1294, + "id": 1287, "name": "c", "nodeType": "VariableDeclaration", - "scope": 1302, + "scope": 1295, "src": "846:9:2", "stateVariable": false, "storageLocation": "default", @@ -2224,7 +2224,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1293, + "id": 1286, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "846:7:2", @@ -2237,25 +2237,25 @@ "visibility": "internal" } ], - "id": 1298, + "id": 1291, "initialValue": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1297, + "id": 1290, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1295, + "id": 1288, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1280, + "referencedDeclaration": 1273, "src": "858:1:2", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -2266,11 +2266,11 @@ "operator": "/", "rightExpression": { "argumentTypes": null, - "id": 1296, + "id": 1289, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1282, + "referencedDeclaration": 1275, "src": "862:1:2", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -2289,26 +2289,26 @@ { "expression": { "argumentTypes": null, - "id": 1299, + "id": 1292, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1294, + "referencedDeclaration": 1287, "src": "959:1:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 1286, - "id": 1300, + "functionReturnParameters": 1279, + "id": 1293, "nodeType": "Return", "src": "952:8:2" } ] }, "documentation": "@dev Integer division of two numbers truncating the quotient, reverts on division by zero.", - "id": 1302, + "id": 1295, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -2316,15 +2316,15 @@ "name": "div", "nodeType": "FunctionDefinition", "parameters": { - "id": 1283, + "id": 1276, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1280, + "id": 1273, "name": "a", "nodeType": "VariableDeclaration", - "scope": 1302, + "scope": 1295, "src": "708:9:2", "stateVariable": false, "storageLocation": "default", @@ -2333,7 +2333,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1279, + "id": 1272, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "708:7:2", @@ -2347,10 +2347,10 @@ }, { "constant": false, - "id": 1282, + "id": 1275, "name": "b", "nodeType": "VariableDeclaration", - "scope": 1302, + "scope": 1295, "src": "719:9:2", "stateVariable": false, "storageLocation": "default", @@ -2359,7 +2359,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1281, + "id": 1274, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "719:7:2", @@ -2376,15 +2376,15 @@ }, "payable": false, "returnParameters": { - "id": 1286, + "id": 1279, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1285, + "id": 1278, "name": "", "nodeType": "VariableDeclaration", - "scope": 1302, + "scope": 1295, "src": "753:7:2", "stateVariable": false, "storageLocation": "default", @@ -2393,7 +2393,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1284, + "id": 1277, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "753:7:2", @@ -2408,7 +2408,7 @@ ], "src": "752:9:2" }, - "scope": 1371, + "scope": 1364, "src": "695:270:2", "stateMutability": "pure", "superFunction": null, @@ -2416,7 +2416,7 @@ }, { "body": { - "id": 1325, + "id": 1318, "nodeType": "Block", "src": "1145:64:2", "statements": [ @@ -2430,18 +2430,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1314, + "id": 1307, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1312, + "id": 1305, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1306, + "referencedDeclaration": 1299, "src": "1159:1:2", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -2452,11 +2452,11 @@ "operator": "<=", "rightExpression": { "argumentTypes": null, - "id": 1313, + "id": 1306, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1304, + "referencedDeclaration": 1297, "src": "1164:1:2", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -2477,21 +2477,21 @@ "typeString": "bool" } ], - "id": 1311, + "id": 1304, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1389, - 1390 + 1382, + 1383 ], - "referencedDeclaration": 1389, + "referencedDeclaration": 1382, "src": "1151:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 1315, + "id": 1308, "isConstant": false, "isLValue": false, "isPure": false, @@ -2505,21 +2505,21 @@ "typeString": "tuple()" } }, - "id": 1316, + "id": 1309, "nodeType": "ExpressionStatement", "src": "1151:15:2" }, { "assignments": [ - 1318 + 1311 ], "declarations": [ { "constant": false, - "id": 1318, + "id": 1311, "name": "c", "nodeType": "VariableDeclaration", - "scope": 1326, + "scope": 1319, "src": "1172:9:2", "stateVariable": false, "storageLocation": "default", @@ -2528,7 +2528,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1317, + "id": 1310, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1172:7:2", @@ -2541,25 +2541,25 @@ "visibility": "internal" } ], - "id": 1322, + "id": 1315, "initialValue": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1321, + "id": 1314, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1319, + "id": 1312, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1304, + "referencedDeclaration": 1297, "src": "1184:1:2", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -2570,11 +2570,11 @@ "operator": "-", "rightExpression": { "argumentTypes": null, - "id": 1320, + "id": 1313, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1306, + "referencedDeclaration": 1299, "src": "1188:1:2", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -2593,26 +2593,26 @@ { "expression": { "argumentTypes": null, - "id": 1323, + "id": 1316, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1318, + "referencedDeclaration": 1311, "src": "1203:1:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 1310, - "id": 1324, + "functionReturnParameters": 1303, + "id": 1317, "nodeType": "Return", "src": "1196:8:2" } ] }, "documentation": "@dev Subtracts two numbers, reverts on overflow (i.e. if subtrahend is greater than minuend).", - "id": 1326, + "id": 1319, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -2620,15 +2620,15 @@ "name": "sub", "nodeType": "FunctionDefinition", "parameters": { - "id": 1307, + "id": 1300, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1304, + "id": 1297, "name": "a", "nodeType": "VariableDeclaration", - "scope": 1326, + "scope": 1319, "src": "1091:9:2", "stateVariable": false, "storageLocation": "default", @@ -2637,7 +2637,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1303, + "id": 1296, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1091:7:2", @@ -2651,10 +2651,10 @@ }, { "constant": false, - "id": 1306, + "id": 1299, "name": "b", "nodeType": "VariableDeclaration", - "scope": 1326, + "scope": 1319, "src": "1102:9:2", "stateVariable": false, "storageLocation": "default", @@ -2663,7 +2663,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1305, + "id": 1298, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1102:7:2", @@ -2680,15 +2680,15 @@ }, "payable": false, "returnParameters": { - "id": 1310, + "id": 1303, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1309, + "id": 1302, "name": "", "nodeType": "VariableDeclaration", - "scope": 1326, + "scope": 1319, "src": "1136:7:2", "stateVariable": false, "storageLocation": "default", @@ -2697,7 +2697,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1308, + "id": 1301, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1136:7:2", @@ -2712,7 +2712,7 @@ ], "src": "1135:9:2" }, - "scope": 1371, + "scope": 1364, "src": "1078:131:2", "stateMutability": "pure", "superFunction": null, @@ -2720,21 +2720,21 @@ }, { "body": { - "id": 1349, + "id": 1342, "nodeType": "Block", "src": "1339:64:2", "statements": [ { "assignments": [ - 1336 + 1329 ], "declarations": [ { "constant": false, - "id": 1336, + "id": 1329, "name": "c", "nodeType": "VariableDeclaration", - "scope": 1350, + "scope": 1343, "src": "1345:9:2", "stateVariable": false, "storageLocation": "default", @@ -2743,7 +2743,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1335, + "id": 1328, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1345:7:2", @@ -2756,25 +2756,25 @@ "visibility": "internal" } ], - "id": 1340, + "id": 1333, "initialValue": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1339, + "id": 1332, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1337, + "id": 1330, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1328, + "referencedDeclaration": 1321, "src": "1357:1:2", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -2785,11 +2785,11 @@ "operator": "+", "rightExpression": { "argumentTypes": null, - "id": 1338, + "id": 1331, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1330, + "referencedDeclaration": 1323, "src": "1361:1:2", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -2815,18 +2815,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1344, + "id": 1337, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1342, + "id": 1335, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1336, + "referencedDeclaration": 1329, "src": "1376:1:2", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -2837,11 +2837,11 @@ "operator": ">=", "rightExpression": { "argumentTypes": null, - "id": 1343, + "id": 1336, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1328, + "referencedDeclaration": 1321, "src": "1381:1:2", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -2862,21 +2862,21 @@ "typeString": "bool" } ], - "id": 1341, + "id": 1334, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1389, - 1390 + 1382, + 1383 ], - "referencedDeclaration": 1389, + "referencedDeclaration": 1382, "src": "1368:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 1345, + "id": 1338, "isConstant": false, "isLValue": false, "isPure": false, @@ -2890,33 +2890,33 @@ "typeString": "tuple()" } }, - "id": 1346, + "id": 1339, "nodeType": "ExpressionStatement", "src": "1368:15:2" }, { "expression": { "argumentTypes": null, - "id": 1347, + "id": 1340, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1336, + "referencedDeclaration": 1329, "src": "1397:1:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 1334, - "id": 1348, + "functionReturnParameters": 1327, + "id": 1341, "nodeType": "Return", "src": "1390:8:2" } ] }, "documentation": "@dev Adds two numbers, reverts on overflow.", - "id": 1350, + "id": 1343, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -2924,15 +2924,15 @@ "name": "add", "nodeType": "FunctionDefinition", "parameters": { - "id": 1331, + "id": 1324, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1328, + "id": 1321, "name": "a", "nodeType": "VariableDeclaration", - "scope": 1350, + "scope": 1343, "src": "1285:9:2", "stateVariable": false, "storageLocation": "default", @@ -2941,7 +2941,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1327, + "id": 1320, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1285:7:2", @@ -2955,10 +2955,10 @@ }, { "constant": false, - "id": 1330, + "id": 1323, "name": "b", "nodeType": "VariableDeclaration", - "scope": 1350, + "scope": 1343, "src": "1296:9:2", "stateVariable": false, "storageLocation": "default", @@ -2967,7 +2967,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1329, + "id": 1322, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1296:7:2", @@ -2984,15 +2984,15 @@ }, "payable": false, "returnParameters": { - "id": 1334, + "id": 1327, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1333, + "id": 1326, "name": "", "nodeType": "VariableDeclaration", - "scope": 1350, + "scope": 1343, "src": "1330:7:2", "stateVariable": false, "storageLocation": "default", @@ -3001,7 +3001,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1332, + "id": 1325, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1330:7:2", @@ -3016,7 +3016,7 @@ ], "src": "1329:9:2" }, - "scope": 1371, + "scope": 1364, "src": "1272:131:2", "stateMutability": "pure", "superFunction": null, @@ -3024,7 +3024,7 @@ }, { "body": { - "id": 1369, + "id": 1362, "nodeType": "Block", "src": "1602:44:2", "statements": [ @@ -3038,18 +3038,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1362, + "id": 1355, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1360, + "id": 1353, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1354, + "referencedDeclaration": 1347, "src": "1616:1:2", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -3061,7 +3061,7 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 1361, + "id": 1354, "isConstant": false, "isLValue": false, "isPure": true, @@ -3090,21 +3090,21 @@ "typeString": "bool" } ], - "id": 1359, + "id": 1352, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1389, - 1390 + 1382, + 1383 ], - "referencedDeclaration": 1389, + "referencedDeclaration": 1382, "src": "1608:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 1363, + "id": 1356, "isConstant": false, "isLValue": false, "isPure": false, @@ -3118,7 +3118,7 @@ "typeString": "tuple()" } }, - "id": 1364, + "id": 1357, "nodeType": "ExpressionStatement", "src": "1608:15:2" }, @@ -3129,18 +3129,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1367, + "id": 1360, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1365, + "id": 1358, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1352, + "referencedDeclaration": 1345, "src": "1636:1:2", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -3151,11 +3151,11 @@ "operator": "%", "rightExpression": { "argumentTypes": null, - "id": 1366, + "id": 1359, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1354, + "referencedDeclaration": 1347, "src": "1640:1:2", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -3168,15 +3168,15 @@ "typeString": "uint256" } }, - "functionReturnParameters": 1358, - "id": 1368, + "functionReturnParameters": 1351, + "id": 1361, "nodeType": "Return", "src": "1629:12:2" } ] }, "documentation": "@dev Divides two numbers and returns the remainder (unsigned integer modulo),\nreverts when dividing by zero.", - "id": 1370, + "id": 1363, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -3184,15 +3184,15 @@ "name": "mod", "nodeType": "FunctionDefinition", "parameters": { - "id": 1355, + "id": 1348, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1352, + "id": 1345, "name": "a", "nodeType": "VariableDeclaration", - "scope": 1370, + "scope": 1363, "src": "1548:9:2", "stateVariable": false, "storageLocation": "default", @@ -3201,7 +3201,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1351, + "id": 1344, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1548:7:2", @@ -3215,10 +3215,10 @@ }, { "constant": false, - "id": 1354, + "id": 1347, "name": "b", "nodeType": "VariableDeclaration", - "scope": 1370, + "scope": 1363, "src": "1559:9:2", "stateVariable": false, "storageLocation": "default", @@ -3227,7 +3227,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1353, + "id": 1346, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1559:7:2", @@ -3244,15 +3244,15 @@ }, "payable": false, "returnParameters": { - "id": 1358, + "id": 1351, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1357, + "id": 1350, "name": "", "nodeType": "VariableDeclaration", - "scope": 1370, + "scope": 1363, "src": "1593:7:2", "stateVariable": false, "storageLocation": "default", @@ -3261,7 +3261,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1356, + "id": 1349, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1593:7:2", @@ -3276,14 +3276,14 @@ ], "src": "1592:9:2" }, - "scope": 1371, + "scope": 1364, "src": "1535:111:2", "stateMutability": "pure", "superFunction": null, "visibility": "internal" } ], - "scope": 1372, + "scope": 1365, "src": "117:1531:2" } ], @@ -3295,5 +3295,5 @@ }, "networks": {}, "schemaVersion": "2.0.1", - "updatedAt": "2018-10-24T15:24:21.036Z" + "updatedAt": "2018-11-19T14:05:13.569Z" } \ No newline at end of file diff --git a/contracts/escrow/Escrow_v1_0.sol b/contracts/escrow/Escrow_v1_0.sol index a08b17d..5a0cfe2 100644 --- a/contracts/escrow/Escrow_v1_0.sol +++ b/contracts/escrow/Escrow_v1_0.sol @@ -8,9 +8,11 @@ import "../token/ITokenContract.sol"; /** * @dev Supports ERC20 tokens * The escrow smart contract for the open bazaar trades in Ethereum -* The smart contract is desgined keeping in mind the current wallet interface of the OB-core +* The smart contract is designed keeping in mind the current wallet interface of the OB-core * https://github.com/OpenBazaar/wallet-interface/blob/master/wallet.go * Current wallet interface strictly adheres to UTXO(bitcoin) model +* Please read below mentioned link for detailed specs +* https://github.com/OpenBazaar/smart-contracts/blob/master/contracts/escrow/EscrowSpec.md */ contract Escrow_v1_0 { @@ -21,32 +23,35 @@ contract Escrow_v1_0 { enum TransactionType {ETHER, TOKEN} event Executed( - bytes32 scriptHash, + bytes32 indexed scriptHash, address[] destinations, uint256[] amounts ); event FundAdded( - bytes32 scriptHash, + bytes32 indexed scriptHash, address indexed from, uint256 valueAdded ); - event Funded(bytes32 scriptHash, address indexed from, uint256 value); + event Funded( + bytes32 indexed scriptHash, + address indexed from, + uint256 value + ); struct Transaction { - bytes32 scriptHash;//This is unique indentifier for a transaction uint256 value; - uint256 lastModified;//Time at which transaction was last modified + uint256 lastModified;//Time at which tx was last modified in seconds Status status; TransactionType transactionType; uint8 threshold; uint32 timeoutHours; address buyer; address seller; - address tokenAddress;// Token address in case of token transfer + address tokenAddress;//Token address in case of token transfer address moderator; - mapping(address=>bool) isOwner;//to keep track of owners/signers. + mapping(address=>bool) isOwner;//to keep track of owners. mapping(address=>bool) voted;//to keep track of who all voted mapping(address=>bool) beneficiaries;//Benefeciaries of execution } @@ -55,24 +60,24 @@ contract Escrow_v1_0 { uint256 public transactionCount = 0; - //Contains mapping between each party and all of his transactions - mapping(address => bytes32[])public partyVsTransaction; + //Contains mapping between each party and all of their transactions + mapping(address => bytes32[]) private partyVsTransaction; - modifier transactionExists(bytes32 scriptHash) { + modifier transactionExist(bytes32 scriptHash) { require( - transactions[scriptHash].value != 0, "Transaction does not exists" + transactions[scriptHash].value != 0, "Transaction does not exist" ); _; } - modifier transactionDoesNotExists (bytes32 scriptHash) { - require(transactions[scriptHash].value == 0, "Transaction exists"); + modifier transactionDoesNotExist(bytes32 scriptHash) { + require(transactions[scriptHash].value == 0, "Transaction exist"); _; } modifier inFundedState(bytes32 scriptHash) { require( - transactions[scriptHash].status == Status.FUNDED, "Transaction is either in dispute or released state" + transactions[scriptHash].status == Status.FUNDED, "Transaction is not in FUNDED state" ); _; } @@ -101,19 +106,17 @@ contract Escrow_v1_0 { } /** - *@dev Add new transaction in the contract - *@param buyer The buyer of the transaction - *@param seller The seller of the listing associated with the transaction - *@param moderator Moderator for this transaction - *@param scriptHash keccak256 hash of the redeem script - *@param threshold Minimum number of singatures required to released funds - *@param timeoutHours Hours after which seller can release funds into his favour by signing transaction - *@param uniqueId bytes20 unique id for the transaction, generated by ETH wallet - *Redeem Script format will be following - - * scripthash-> keccak256(uniqueId, threshold, timeoutHours, buyer, seller, moderator) - *Pass amount of the ethers to be put in escrow - *Please keep in mind you will have to add moderator fees also in the value + * @dev Add new transaction in the contract + * @param buyer The buyer of the transaction + * @param seller The seller of the listing associated with the transaction + * @param moderator Moderator for this transaction + * @param threshold Minimum number of signatures required to released funds + * @param timeoutHours Hours after which seller can release funds into his favour by signing transaction unilaterally + * @param scriptHash keccak256 hash of the redeem script + * @param uniqueId bytes20 unique id for the transaction, generated by ETH wallet + * Redeem Script format will be following + + * Pass amount of the ethers to be put in escrow */ function addTransaction( address buyer, @@ -126,7 +129,7 @@ contract Escrow_v1_0 { ) external payable - transactionDoesNotExists(scriptHash) + transactionDoesNotExist(scriptHash) nonZeroAddress(buyer) nonZeroAddress(seller) { @@ -148,21 +151,19 @@ contract Escrow_v1_0 { } /** - *@dev Add new transaction in the contract - *@param buyer The buyer of the transaction - *@param seller The seller of the listing associated with the transaction - *@param moderator Moderator for this transaction - *@param scriptHash keccak256 hash of the redeem script - *@param threshold Minimum number of singatures required to released funds - *@param timeoutHours Hours after which seller can release funds into his favour by signing transaction - *@param value Amount of tokens to be put in escrow - *@param uniqueId bytes20 unique id for the transaction, generated by ETH wallet - *@param tokenAddress Address of the token to be used - *Redeem Script format will be following - - * scripthash-> keccak256(uniqueId, threshold, timeoutHours, buyer, seller, moderator, tokenAddress) - *approve escrow contract to spend amount of token on your behalf - *Please keep in mind you will have to add moderator fees also in the value + * @dev Add new transaction in the contract + * @param buyer The buyer of the transaction + * @param seller The seller of the listing associated with the transaction + * @param moderator Moderator for this transaction + * @param threshold Minimum number of signatures required to released funds + * @param timeoutHours Hours after which seller can release funds into his favour by signing transaction unilaterally + * @param scriptHash keccak256 hash of the redeem script + * @param value Amount of tokens to be put in escrow + * @param uniqueId bytes20 unique id for the transaction, generated by ETH wallet + * @param tokenAddress Address of the token to be used + * Redeem Script format will be following + + * Approve escrow contract to spend amount of token on sender's behalf */ function addTokenTransaction( address buyer, @@ -176,7 +177,7 @@ contract Escrow_v1_0 { address tokenAddress ) external - transactionDoesNotExists(scriptHash) + transactionDoesNotExist(scriptHash) nonZeroAddress(buyer) nonZeroAddress(seller) nonZeroAddress(tokenAddress) @@ -198,14 +199,14 @@ contract Escrow_v1_0 { ITokenContract token = ITokenContract(tokenAddress); require( - token.transferFrom(msg.sender, this, value), - "Token transfer failed, maybe you did not approve escrow contract to spend on behalf of buyer" + token.transferFrom(msg.sender, address(this), value), + "Token transfer failed, maybe you did not approve escrow contract to spend on behalf of sender" ); emit Funded(scriptHash, msg.sender, value); } /** - * @dev Check whether given address was a beneficiary of transaction execution or not + * @dev This method will check whether given address was a beneficiary of transaction execution or not * @param scriptHash script hash of the transaction * @param beneficiary Beneficiary address to be checked */ @@ -215,13 +216,13 @@ contract Escrow_v1_0 { ) external view - returns (bool check) + returns (bool) { - check = transactions[scriptHash].beneficiaries[beneficiary]; + return transactions[scriptHash].beneficiaries[beneficiary]; } /** - * @dev Check whether given party has voted or not + * @dev This method will check whether given party has voted or not * @param scriptHash script hash of the transaction * @param party Address of the party whose vote has to be checked * @return bool vote @@ -232,69 +233,69 @@ contract Escrow_v1_0 { ) external view - returns (bool vote) + returns (bool) { - vote = transactions[scriptHash].voted[party]; + return transactions[scriptHash].voted[party]; } /** - *@dev Allows buyer of the transaction to add more funds(ether) in the transaction. This will help to cater scenarios wherein initially buyer missed to fund transaction as required - *@param scriptHash script hash of the transaction + * @dev Allows buyer of the transaction to add more funds(ether) in the transaction. + * This will help to cater scenarios wherein initially buyer missed to fund transaction as required + * @param scriptHash script hash of the transaction * Only buyer of the transaction can invoke this method */ function addFundsToTransaction( bytes32 scriptHash ) external - transactionExists(scriptHash) + payable + transactionExist(scriptHash) inFundedState(scriptHash) checkTransactionType(scriptHash, TransactionType.ETHER) onlyBuyer(scriptHash) - payable + { - uint256 _value = msg.value; - require(_value > 0, "Value must be greater than zero."); + require(msg.value > 0, "Value must be greater than zero."); transactions[scriptHash].value = transactions[scriptHash].value - .add(_value); - transactions[scriptHash].lastModified = block.timestamp; + .add(msg.value); - emit FundAdded(scriptHash, msg.sender, _value); + emit FundAdded(scriptHash, msg.sender, msg.value); } /** - *@dev Allows buyer of the transaction to add more funds(Tokens) in the transaction. This will help to cater scenarios wherein initially buyer missed to fund transaction as required - *@param scriptHash script hash of the transaction + * @dev Allows buyer of the transaction to add more funds(Tokens) in the transaction. + * This will help to cater scenarios wherein initially buyer missed to fund transaction as required + * @param scriptHash script hash of the transaction + * Only buyer of the transaction can invoke this method */ function addTokensToTransaction( bytes32 scriptHash, uint256 value ) external - transactionExists(scriptHash) + transactionExist(scriptHash) inFundedState(scriptHash) checkTransactionType(scriptHash, TransactionType.TOKEN) onlyBuyer(scriptHash) { - uint256 _value = value; - require(_value > 0, "Value must be greater than zero."); + require(value > 0, "Value must be greater than zero."); ITokenContract token = ITokenContract( transactions[scriptHash].tokenAddress ); require( - token.transferFrom(transactions[scriptHash].buyer, this, value), + token.transferFrom(msg.sender, address(this), value), "Token transfer failed, maybe you did not approve escrow contract to spend on behalf of buyer" ); transactions[scriptHash].value = transactions[scriptHash].value - .add(_value); - transactions[scriptHash].lastModified = block.timestamp; + .add(value); - emit FundAdded(scriptHash, msg.sender, _value); + emit FundAdded(scriptHash, msg.sender, value); } /** @@ -306,20 +307,20 @@ contract Escrow_v1_0 { ) external view - returns (bytes32[] scriptHashes) + returns (bytes32[]) { return partyVsTransaction[partyAddress]; } /** - *@dev Allows one of the moderator to collect all the signature to solve dispute and submit it to this method. - * If all the required signatures are collected and consensus has been reached than funds will be released to the voted party + *@dev This method will be used to release funds associated with the transaction + * Please see specs https://github.com/OpenBazaar/smart-contracts/blob/master/contracts/escrow/EscrowSpec.md *@param sigV Array containing V component of all the signatures *@param sigR Array containing R component of all the signatures *@param signS Array containing S component of all the signatures *@param scriptHash script hash of the transaction - *@param destinations address of the destination in whose favour dispute resolution is taking place. In case of split payments it will be address of the split payments contract - *@param amounts value to send to each destination + *@param destinations List of addresses who will receive funds + *@param amounts amount released to each destination */ function execute( uint8[] sigV, @@ -330,14 +331,19 @@ contract Escrow_v1_0 { uint256[] amounts ) external - transactionExists(scriptHash) + transactionExist(scriptHash) inFundedState(scriptHash) - { + { require( - destinations.length>0 && destinations.length == amounts.length, "Length of destinations is incorrect." + destinations.length>0, + "Number of destinations must be greater than 0" ); - - verifyTransaction( + require( + destinations.length == amounts.length, + "Number of destinations must match number of values sent" + ); + + _verifyTransaction( sigV, sigR, sigS, @@ -350,7 +356,7 @@ contract Escrow_v1_0 { //Last modified timestamp modified, which will be used by rewards transactions[scriptHash].lastModified = block.timestamp; require( - transferFunds(scriptHash, destinations, amounts) == transactions[scriptHash].value, + _transferFunds(scriptHash, destinations, amounts) == transactions[scriptHash].value, "Total value to be released must be equal to the transaction escrow value" ); @@ -361,9 +367,9 @@ contract Escrow_v1_0 { /** *@dev Method for calculating script hash. Calculation will depend upon the type of transaction * ETHER Type transaction-: - * Script Hash- keccak256(uniqueId, threshold, timeoutHours, buyer, seller, moderator) + * Script Hash- keccak256(uniqueId, threshold, timeoutHours, buyer, seller, moderator, multiSigContractAddress) * TOKEN Type transaction - * Script Hash- keccak256(uniqueId, threshold, timeoutHours, buyer, seller, moderator, tokenAddress) + * Script Hash- keccak256(uniqueId, threshold, timeoutHours, buyer, seller, moderator, multiSigContractAddress, tokenAddress) * Client can use this method to verify whether it has calculated correct script hash or not */ function calculateRedeemScriptHash( @@ -377,10 +383,10 @@ contract Escrow_v1_0 { ) public view - returns (bytes32 hash) + returns (bytes32) { if (tokenAddress == address(0)) { - hash = keccak256( + return keccak256( abi.encodePacked( uniqueId, threshold, @@ -388,11 +394,11 @@ contract Escrow_v1_0 { buyer, seller, moderator, - this + address(this) ) ); } else { - hash = keccak256( + return keccak256( abi.encodePacked( uniqueId, threshold, @@ -400,7 +406,7 @@ contract Escrow_v1_0 { buyer, seller, moderator, - this, + address(this), tokenAddress ) ); @@ -413,7 +419,7 @@ contract Escrow_v1_0 { * 2. Check if minimum number of signatures has been acquired * 3. If above condition is false, check if time lock is expired and the execution is signed by seller */ - function verifyTransaction( + function _verifyTransaction( uint8[] sigV, bytes32[] sigR, bytes32[] sigS, @@ -423,7 +429,7 @@ contract Escrow_v1_0 { ) private { - address lastRecovered = verifySignatures( + address lastRecovered = _verifySignatures( sigV, sigR, sigS, @@ -432,7 +438,7 @@ contract Escrow_v1_0 { amounts ); - bool timeLockExpired = isTimeLockExpired( + bool timeLockExpired = _isTimeLockExpired( transactions[scriptHash].timeoutHours, transactions[scriptHash].lastModified ); @@ -442,7 +448,7 @@ contract Escrow_v1_0 { sigV.length < transactions[scriptHash].threshold && (!timeLockExpired || lastRecovered != transactions[scriptHash].seller) ) { - revert("sigV.length is under the threshold."); + revert("Minimum number of signatures are not collected and time lock expiry conditions not met!!"); } } @@ -450,26 +456,31 @@ contract Escrow_v1_0 { /** *@dev Private method to transfer funds to the destination addresses on the basis of transaction type */ - function transferFunds( + function _transferFunds( bytes32 scriptHash, address[]destinations, uint256[]amounts ) private - returns (uint256 valueTransferred) + returns (uint256) { Transaction storage t = transactions[scriptHash]; + uint256 valueTransferred = 0; + if (t.transactionType == TransactionType.ETHER) { for (uint256 i = 0; i < destinations.length; i++) { - require(destinations[i] != address(0) && t.isOwner[destinations[i]], "Not a valid destination"); + require(destinations[i] != address(0), "zero address is not allowed as destination address"); + + require(t.isOwner[destinations[i]], "Destination address is not one of the owners"); + require(amounts[i] > 0, "Amount to be sent should be greater than 0"); valueTransferred = valueTransferred.add(amounts[i]); t.beneficiaries[destinations[i]] = true;//add receiver as beneficiary - destinations[i].transfer(amounts[i]);//shall we use send instead of transfer to stop malicious actors from blocking funds? + destinations[i].transfer(amounts[i]); } } else if (t.transactionType == TransactionType.TOKEN) { @@ -478,7 +489,10 @@ contract Escrow_v1_0 { for (uint256 j = 0; j 0, "Amount to be sent should be greater than 0"); valueTransferred = valueTransferred.add(amounts[j]); @@ -486,15 +500,13 @@ contract Escrow_v1_0 { require(token.transfer(destinations[j], amounts[j]), "Token transfer failed."); } - } else { - //transaction type is not supported. Ideally this state should never be reached - revert("Transation type is not supported."); - } + } + return valueTransferred; } - //to check whether the signature are valid or not and if consensus was reached + //to check whether the signatures are valid or not and if consensus was reached //returns the last address recovered, in case of timeout this must be the sender's address - function verifySignatures( + function _verifySignatures( uint8[] sigV, bytes32[] sigR, bytes32[] sigS, @@ -503,13 +515,16 @@ contract Escrow_v1_0 { uint256[]amounts ) private - returns (address lastAddress) + returns (address) { + require( sigR.length == sigS.length && sigR.length == sigV.length, "R,S,V length mismatch." ); + address lastAddress; + // Follows ERC191 signature scheme: https://github.com/ethereum/EIPs/issues/191 bytes32 txHash = keccak256( abi.encodePacked( @@ -518,7 +533,7 @@ contract Escrow_v1_0 { abi.encodePacked( byte(0x19), byte(0), - this, + address(this), destinations, amounts, scriptHash @@ -547,18 +562,20 @@ contract Escrow_v1_0 { transactions[scriptHash].voted[recovered] = true; lastAddress = recovered; } + + return lastAddress; } - function isTimeLockExpired( + function _isTimeLockExpired( uint32 timeoutHours, uint256 lastModified ) private view - returns (bool expired) + returns (bool) { uint256 timeSince = now.sub(lastModified); - expired = ( + return ( timeoutHours == 0 ? false:timeSince > uint256(timeoutHours).mul(3600) ); } @@ -591,11 +608,12 @@ contract Escrow_v1_0 { "Threshold cannot be greater than 3 and must be greater than 0" ); - //if threshold is 1 then moderator can be passed as zero address or any other address(it wont matter aopart from scripthash since we wont add moderator as one of the owner) + //if threshold is 1 then moderator can be passed as zero address or any other address + //(it won't matter apart from scripthash since we wont add moderator as one of the owner), //otherwise moderator should be a valid address require( threshold == 1 || moderator != address(0), - "Either threshold should be 1 otherwise valid moderator address should be passed" + "Either threshold should be 1 or valid moderator address should be passed" ); require( @@ -618,7 +636,6 @@ contract Escrow_v1_0 { value: value, status: Status.FUNDED, lastModified: block.timestamp, - scriptHash: scriptHash, threshold: threshold, timeoutHours: timeoutHours, transactionType:transactionType, @@ -635,7 +652,7 @@ contract Escrow_v1_0 { ); //set moderator as one of the owners only if threshold is greater than 1 otherwise only buyer and seller should be able to release funds - if (threshold > 1){ + if (threshold > 1) { transactions[scriptHash].isOwner[moderator] = true; } diff --git a/test/escrow/1_Escrow_v1_0_test.js b/test/escrow/1_Escrow_v1_0_test.js index 094b5ef..63bed32 100644 --- a/test/escrow/1_Escrow_v1_0_test.js +++ b/test/escrow/1_Escrow_v1_0_test.js @@ -55,9 +55,9 @@ contract("Escrow Contract Version 1- Supports Token transfer", function() { var amountEscrowed = txResult.logs[0].args.value; assert.equal(eventName, "Funded", "Funded event should be fired"); - assert.equal(from, buyer, "Transaction was sent from buyer's address: "+ buyer); - assert.equal(receivedScriptHash, scriptHash, "Received script hash does not matches the script hash sent"); - assert.equal(amountEscrowed.toNumber(), Number(amount), "Escrowed amount does not matches with the actual amount sent"); + assert.equal(from, buyer, "Transaction was not sent from buyer's address: "+ buyer); + assert.equal(receivedScriptHash, scriptHash, "Received script hash does not match the script hash sent"); + assert.equal(amountEscrowed.toNumber(), Number(amount), "Escrowed amount does not match with the actual amount sent"); assert.isAtLeast(buyerBalanceBefore.minus(Number(amount)).toNumber(), buyerBalanceAfter.toNumber(), "Buyer's ether balance must reduce by escrowed amount: "+amount); assert.equal(escrowContractBalanceBefore.plus(Number(amount)).toNumber(), escrowContractBalanceAfter.toNumber(), "Escrow contract's ether balance must increase by escrowed amount: "+amount); @@ -65,22 +65,20 @@ contract("Escrow Contract Version 1- Supports Token transfer", function() { //check whether the transaction stored in state is same as sent var transaction = await this.escrow.transactions(scriptHash); - receivedScriptHash = transaction[0]; - var receivedBuyer = transaction[7]; - var receivedSeller = transaction[8]; - var receivedAmount = transaction[1]; - var receivedStatus = transaction[3]; - var receivedTimeoutHours = transaction[6]; - var receivedThreshold = transaction[5]; - var receivedTransactionType = transaction[4]; - - assert.equal(receivedScriptHash, scriptHash, "Received script hash does not matches the script hash sent"); - assert.equal(receivedBuyer, buyer, "Received buyer hash does not matches the buyer sent"); - assert.equal(receivedSeller, seller, "Received seller hash does not matches the seller sent"); - assert.equal(receivedAmount.toNumber(), Number(amount), "Received amount does not matches the amount sent"); + var receivedBuyer = transaction[6]; + var receivedSeller = transaction[7]; + var receivedAmount = transaction[0]; + var receivedStatus = transaction[2]; + var receivedTimeoutHours = transaction[5]; + var receivedThreshold = transaction[4]; + var receivedTransactionType = transaction[3]; + + assert.equal(receivedBuyer, buyer, "Received buyer does not match the buyer sent"); + assert.equal(receivedSeller, seller, "Received seller does not match the seller sent"); + assert.equal(receivedAmount.toNumber(), Number(amount), "Received amount does not match the amount sent"); assert.equal(receivedStatus, 0, "Received status is not FUNDED(0)"); - assert.equal(receivedTimeoutHours, timeoutHours, "Received timeout hours does not matches the timeout hours sent"); - assert.equal(receivedThreshold, threshold, "Received threshold does not matches the threshold sent"); + assert.equal(receivedTimeoutHours, timeoutHours, "Received timeout hours does not match the timeout hours sent"); + assert.equal(receivedThreshold, threshold, "Received threshold does not match the threshold sent"); assert.equal(receivedTransactionType, 0, "Received transaction type is not ETHER(0)"); }); @@ -118,8 +116,8 @@ contract("Escrow Contract Version 1- Supports Token transfer", function() { assert.equal(eventName, "Funded", "Funded event should be fired"); assert.equal(from, buyer, "Transaction was sent from buyer's address: "+ buyer); - assert.equal(receivedScriptHash, scriptHash, "Received script hash does not matches the script hash sent"); - assert.equal(amountEscrowed.toNumber(), Number(amount), "Escrowed amount does not matches with the actual amount sent"); + assert.equal(receivedScriptHash, scriptHash, "Received script hash does not match the script hash sent"); + assert.equal(amountEscrowed.toNumber(), Number(amount), "Escrowed amount does not match with the actual amount sent"); assert.isAtLeast(buyerBalanceBefore.minus(Number(amount)).toNumber(), buyerBalanceAfter.toNumber(), "Buyer's ether balance must reduce by escrowed amount: "+amount); assert.equal(escrowContractBalanceBefore.plus(Number(amount)).toNumber(), escrowContractBalanceAfter.toNumber(), "Escrow contract's ether balance must increase by escrowed amount: "+amount); @@ -127,22 +125,20 @@ contract("Escrow Contract Version 1- Supports Token transfer", function() { //check whether the transaction stored in state is same as sent var transaction = await this.escrow.transactions(scriptHash); - receivedScriptHash = transaction[0]; - var receivedBuyer = transaction[7]; - var receivedSeller = transaction[8]; - var receivedAmount = transaction[1]; - var receivedStatus = transaction[3]; - var receivedTimeoutHours = transaction[6]; - var receivedThreshold = transaction[5]; - var receivedTransactionType = transaction[4]; - - assert.equal(receivedScriptHash, scriptHash, "Received script hash does not matches the script hash sent"); - assert.equal(receivedBuyer, buyer, "Received buyer hash does not matches the buyer sent"); - assert.equal(receivedSeller, seller, "Received seller hash does not matches the seller sent"); - assert.equal(receivedAmount.toNumber(), Number(amount), "Received amount does not matches the amount sent"); + var receivedBuyer = transaction[6]; + var receivedSeller = transaction[7]; + var receivedAmount = transaction[0]; + var receivedStatus = transaction[2]; + var receivedTimeoutHours = transaction[5]; + var receivedThreshold = transaction[4]; + var receivedTransactionType = transaction[3]; + + assert.equal(receivedBuyer, buyer, "Received buyer does not match the buyer sent"); + assert.equal(receivedSeller, seller, "Received seller does not match the seller sent"); + assert.equal(receivedAmount.toNumber(), Number(amount), "Received amount does not match the amount sent"); assert.equal(receivedStatus, 0, "Received status is not FUNDED(0)"); - assert.equal(receivedTimeoutHours, timeoutHours, "Received timeout hours does not matches the timeout hours sent"); - assert.equal(receivedThreshold, threshold, "Received threshold does not matches the threshold sent"); + assert.equal(receivedTimeoutHours, timeoutHours, "Received timeout hours does not match the timeout hours sent"); + assert.equal(receivedThreshold, threshold, "Received threshold does not match the threshold sent"); assert.equal(receivedTransactionType, 0, "Received transaction type is not ETHER(0)"); }); @@ -180,8 +176,8 @@ contract("Escrow Contract Version 1- Supports Token transfer", function() { assert.equal(eventName, "Funded", "Funded event should be fired"); assert.equal(from, buyer, "Transaction was sent from buyer's address: "+ buyer); - assert.equal(receivedScriptHash, scriptHash, "Received script hash does not matches the script hash sent"); - assert.equal(amountEscrowed.toNumber(), Number(amount), "Escrowed amount does not matches with the actual amount sent"); + assert.equal(receivedScriptHash, scriptHash, "Received script hash does not match the script hash sent"); + assert.equal(amountEscrowed.toNumber(), Number(amount), "Escrowed amount does not match with the actual amount sent"); assert.isAtLeast(buyerBalanceBefore.minus(Number(amount)).toNumber(), buyerBalanceAfter.toNumber(), "Buyer's ether balance must reduce by escrowed amount: "+amount); assert.equal(escrowContractBalanceBefore.plus(Number(amount)).toNumber(), escrowContractBalanceAfter.toNumber(), "Escrow contract's ether balance must increase by escrowed amount: "+amount); @@ -189,22 +185,20 @@ contract("Escrow Contract Version 1- Supports Token transfer", function() { //check whether the transaction stored in state is same as sent var transaction = await this.escrow.transactions(scriptHash); - receivedScriptHash = transaction[0]; - var receivedBuyer = transaction[7]; - var receivedSeller = transaction[8]; - var receivedAmount = transaction[1]; - var receivedStatus = transaction[3]; - var receivedTimeoutHours = transaction[6]; - var receivedThreshold = transaction[5]; - var receivedTransactionType = transaction[4]; - - assert.equal(receivedScriptHash, scriptHash, "Received script hash does not matches the script hash sent"); - assert.equal(receivedBuyer, buyer, "Received buyer hash does not matches the buyer sent"); - assert.equal(receivedSeller, seller, "Received seller hash does not matches the seller sent"); - assert.equal(receivedAmount.toNumber(), Number(amount), "Received amount does not matches the amount sent"); + var receivedBuyer = transaction[6]; + var receivedSeller = transaction[7]; + var receivedAmount = transaction[0]; + var receivedStatus = transaction[2]; + var receivedTimeoutHours = transaction[5]; + var receivedThreshold = transaction[4]; + var receivedTransactionType = transaction[3]; + + assert.equal(receivedBuyer, buyer, "Received buyer does not match the buyer sent"); + assert.equal(receivedSeller, seller, "Received seller does not match the seller sent"); + assert.equal(receivedAmount.toNumber(), Number(amount), "Received amount does not match the amount sent"); assert.equal(receivedStatus, 0, "Received status is not FUNDED(0)"); - assert.equal(receivedTimeoutHours, timeoutHours, "Received timeout hours does not matches the timeout hours sent"); - assert.equal(receivedThreshold, threshold, "Received threshold does not matches the threshold sent"); + assert.equal(receivedTimeoutHours, timeoutHours, "Received timeout hours does not match the timeout hours sent"); + assert.equal(receivedThreshold, threshold, "Received threshold does not match the threshold sent"); assert.equal(receivedTransactionType, 0, "Received transaction type is not ETHER(0)"); }); @@ -242,8 +236,8 @@ contract("Escrow Contract Version 1- Supports Token transfer", function() { assert.equal(eventName, "FundAdded", "FundAdded event should be fired"); assert.equal(from, buyer, "Transaction was sent from buyer's address: "+ buyer); - assert.equal(receivedScriptHash, scriptHash, "Received script hash does not matches the script hash sent"); - assert.equal(amountEscrowed.toNumber(), Number(amount), "Escrowed amount does not matches with the actual amount sent"); + assert.equal(receivedScriptHash, scriptHash, "Received script hash does not match the script hash sent"); + assert.equal(amountEscrowed.toNumber(), Number(amount), "Escrowed amount does not match with the actual amount sent"); assert.isAtLeast(buyerBalanceBefore.minus(Number(amount)).toNumber(), buyerBalanceAfter.toNumber(), "Buyer's ether balance must reduce by escrowed amount: "+amount); assert.equal(escrowContractBalanceBefore.plus(Number(amount)).toNumber(), escrowContractBalanceAfter.toNumber(), "Escrow contract's ether balance must increase by escrowed amount: "+amount); @@ -251,13 +245,13 @@ contract("Escrow Contract Version 1- Supports Token transfer", function() { //check whether the transaction stored in state is same as sent var transaction = await this.escrow.transactions(scriptHash); - var receivedAmount = transaction[1]; + var receivedAmount = transaction[0]; - assert.equal(receivedAmount.toNumber(), Number(amount) +Number(amount), "Received amount does not matches the amount sent"); + assert.equal(receivedAmount.toNumber(), Number(amount) +Number(amount), "Received amount does not match the amount sent"); }); - it("Add funds to ETHER transaction", async()=>{ + it("Add funds to ETHER transaction from non-buyer account", async()=>{ var buyer = acct[0]; var seller = acct[1]; var moderator = acct[2]; @@ -327,7 +321,7 @@ contract("Escrow Contract Version 1- Supports Token transfer", function() { }); - it("Add new transaction with threshold greater number of parties involved", async()=>{ + it("Add new transaction with threshold greater than number of parties involved", async()=>{ var buyer = acct[0]; var seller = acct[1]; var moderator = acct[2]; @@ -340,7 +334,7 @@ contract("Escrow Contract Version 1- Supports Token transfer", function() { try{ await this.escrow.addTransaction(buyer, seller, moderator, threshold, timeoutHours, scriptHash, uniqueId, {from:acct[0], value:amount}); - assert.equal(true, false, "Should not be able to add transaction with threshold greater number of parties involved"); + assert.equal(true, false, "Should not be able to add transaction with threshold greater than number of parties involved"); }catch(error){ assert.notInclude(error.toString(), 'AssertionError', error.message); @@ -371,7 +365,7 @@ contract("Escrow Contract Version 1- Supports Token transfer", function() { }); - it("Add new transaction with moderator being one of buyer or seller", async()=>{ + it("Add new transaction with moderator being one of the buyer or seller", async()=>{ var buyer = acct[0]; var seller = acct[1]; var moderator = buyer; @@ -428,7 +422,7 @@ contract("Escrow Contract Version 1- Supports Token transfer", function() { try{ await this.escrow.addTransaction(buyer, seller, moderator, threshold, timeoutHours, scriptHash, uniqueId, {from:acct[0], value:amount}); - assert.equal(true, false, "Should not be able to add transaction with buyer being zero address"); + assert.equal(true, false, "Should not be able to add transaction with seller being zero address"); }catch(error){ assert.notInclude(error.toString(), 'AssertionError', error.message); @@ -450,7 +444,7 @@ contract("Escrow Contract Version 1- Supports Token transfer", function() { try{ await this.escrow.addTransaction(buyer, seller, moderator, threshold, timeoutHours, scriptHash, uniqueId, {from:acct[0], value:amount}); - assert.equal(true, false, "Should not be able to add transaction with buyer being zero address"); + assert.equal(true, false, "Should not be able to add transaction with moderator being zero address"); }catch(error){ assert.notInclude(error.toString(), 'AssertionError', error.message); @@ -508,7 +502,7 @@ contract("Escrow Contract Version 1- Supports Token transfer", function() { var receivedScriptHash = txResult.logs[0].args.scriptHash; assert.equal(eventName, "Executed", "Executed event must be fired"); - assert.equal(receivedScriptHash, scriptHash, "Received script hash does not matches the script hash of the transaction executed"); + assert.equal(receivedScriptHash, scriptHash, "Received script hash does not match the script hash of the transaction executed"); var sellerBalanceAfter = await web3.eth.getBalance(seller); var escrowContractBalanceAfter = await web3.eth.getBalance(this.escrow.address); @@ -551,7 +545,7 @@ contract("Escrow Contract Version 1- Supports Token transfer", function() { var receivedScriptHash = txResult.logs[0].args.scriptHash; assert.equal(eventName, "Executed", "Executed event must be fired"); - assert.equal(receivedScriptHash, scriptHash, "Received script hash does not matches the script hash of the transaction executed"); + assert.equal(receivedScriptHash, scriptHash, "Received script hash does not match the script hash of the transaction executed"); var sellerBalanceAfter = await web3.eth.getBalance(seller); var escrowContractBalanceAfter = await web3.eth.getBalance(this.escrow.address); @@ -591,7 +585,7 @@ contract("Escrow Contract Version 1- Supports Token transfer", function() { var receivedScriptHash = txResult.logs[0].args.scriptHash; assert.equal(eventName, "Executed", "Executed event must be fired"); - assert.equal(receivedScriptHash, scriptHash, "Received script hash does not matches the script hash of the transaction executed"); + assert.equal(receivedScriptHash, scriptHash, "Received script hash does not match the script hash of the transaction executed"); var sellerBalanceAfter = await web3.eth.getBalance(seller); var escrowContractBalanceAfter = await web3.eth.getBalance(this.escrow.address); @@ -653,7 +647,7 @@ contract("Escrow Contract Version 1- Supports Token transfer", function() { var sig = helper.createSigs([buyer, seller, moderator], this.escrow.address, [seller, moderator], [amountToBeGivenToSeller, amountToBeGivenToModerator], scriptHash); try{ await this.escrow.execute(sig.sigV, sig.sigR, sig.sigS, scriptHash, [seller, moderator], [amountToBeGivenToSeller, amountToBeGivenToModerator]); - assert.equal(true, false, "Should not be able to execute transaction with scripthash that does not exists in the contract"); + assert.equal(true, false, "Should not be able to execute transaction with scripthash that does not exist in the contract"); }catch(error){ assert.notInclude(error.toString(), 'AssertionError', error.message); @@ -705,7 +699,7 @@ contract("Escrow Contract Version 1- Supports Token transfer", function() { assert.equal(true, false, "Should not be able to add transaction with wrong unique id"); - }catch(error){ + } catch(error){ assert.notInclude(error.toString(), 'AssertionError', error.message); } @@ -782,7 +776,7 @@ contract("Escrow Contract Version 1- Supports Token transfer", function() { try{ await this.escrow.execute(sig.sigV, sig.sigR, sig.sigS, scriptHash, [seller, moderator], [amountToBeGivenToSeller, amountToBeGivenToModerator]); - assert.equal(true, false, "Should not be able to execute transaction with less number of signatures than required"); + assert.equal(true, false, "Should not be able to execute transaction with non-owner's signature"); }catch(error){ assert.notInclude(error.toString(), 'AssertionError', error.message); @@ -808,7 +802,7 @@ contract("Escrow Contract Version 1- Supports Token transfer", function() { try{ await this.escrow.execute(sig.sigV, sig.sigR, sig.sigS, scriptHash, [seller, moderator], [amountToBeGivenToSeller, amountToBeGivenToModerator]); - assert.equal(true, false, "Should not be able to execute transaction with one of the destination being non-owner address"); + assert.equal(true, false, "Should not be able to execute transaction with one of the destinations being non-owner address"); }catch(error){ assert.notInclude(error.toString(), 'AssertionError', error.message); @@ -939,7 +933,7 @@ contract("Escrow Contract Version 1- Supports Token transfer", function() { try{ await this.escrow.execute(sig.sigV, sig.sigR, sig.sigS, scriptHash, [seller], [amountToBeGivenToSeller, amountToBeGivenToModerator]); - assert.equal(true, false, "Should not be able to execute transaction with no destination"); + assert.equal(true, false, "Should not be able to execute Transaction with number of destinations and amount in mismatch"); }catch(error){ assert.notInclude(error.toString(), 'AssertionError', error.message); @@ -978,7 +972,7 @@ contract("Escrow Contract Version 1- Supports Token transfer", function() { var receivedScriptHash = txResult.logs[0].args.scriptHash; assert.equal(eventName, "Executed", "Executed event must be fired"); - assert.equal(receivedScriptHash, scriptHash, "Received script hash does not matches the script hash of the transaction executed"); + assert.equal(receivedScriptHash, scriptHash, "Received script hash does not match the script hash of the transaction executed"); var sellerBalanceAfter = await web3.eth.getBalance(seller); var escrowContractBalanceAfter = await web3.eth.getBalance(this.escrow.address); @@ -1044,7 +1038,7 @@ contract("Escrow Contract Version 1- Supports Token transfer", function() { try{ await this.escrow.execute(sig.sigV, sig.sigR, sig.sigS, scriptHash, [seller], [amountToBeGivenToSeller]); - assert.equal(true, false, "Should not be able to execute transaction before timeout by seller account"); + assert.equal(true, false, "Should not be able to execute transaction before timeout by seller account unilaterally"); }catch(error){ assert.notInclude(error.toString(), 'AssertionError', error.message); @@ -1080,7 +1074,7 @@ contract("Escrow Contract Version 1- Supports Token transfer", function() { var receivedScriptHash = txResult.logs[0].args.scriptHash; assert.equal(eventName, "Executed", "Executed event must be fired"); - assert.equal(receivedScriptHash, scriptHash, "Received script hash does not matches the script hash of the transaction executed"); + assert.equal(receivedScriptHash, scriptHash, "Received script hash does not match the script hash of the transaction executed"); var buyerBalanceAfter = await web3.eth.getBalance(buyer); var escrowContractBalanceAfter = await web3.eth.getBalance(this.escrow.address); @@ -1128,8 +1122,8 @@ contract("Escrow Contract Version 1- Supports Token transfer", function() { assert.equal(eventName, "Funded", "Funded event should be fired"); assert.equal(from, buyer, "Transaction was sent from buyer's address: "+ buyer); - assert.equal(receivedScriptHash, scriptHash, "Received script hash does not matches the script hash sent"); - assert.equal(amountEscrowed.toNumber(), Number(amount), "Escrowed amount does not matches with the actual amount sent"); + assert.equal(receivedScriptHash, scriptHash, "Received script hash does not match the script hash sent"); + assert.equal(amountEscrowed.toNumber(), Number(amount), "Escrowed amount does not match with the actual amount sent"); assert.equal(buyerBalanceBefore.minus(Number(amount)).toNumber(), buyerBalanceAfter.toNumber(), "Buyer's token balance must reduce by escrowed amount: "+amount); assert.equal(escrowContractBalanceBefore.plus(Number(amount)).toNumber(), escrowContractBalanceAfter.toNumber(), "Escrow contract's token balance must increase by escrowed amount: "+amount); @@ -1137,25 +1131,23 @@ contract("Escrow Contract Version 1- Supports Token transfer", function() { //check whether the transaction stored in state is same as sent var transaction = await this.escrow.transactions(scriptHash); - receivedScriptHash = transaction[0]; - var receivedBuyer = transaction[7]; - var receivedSeller = transaction[8]; - var receivedAmount = transaction[1]; - var receivedStatus = transaction[3]; - var receivedTimeoutHours = transaction[6]; - var receivedThreshold = transaction[5]; - var receivedTransactionType = transaction[4]; - var receivedTokenAddress = transaction[9]; - - assert.equal(receivedScriptHash, scriptHash, "Received script hash does not matches the script hash sent"); - assert.equal(receivedBuyer, buyer, "Received buyer hash does not matches the buyer sent"); - assert.equal(receivedSeller, seller, "Received seller hash does not matches the seller sent"); - assert.equal(receivedAmount.toNumber(), Number(amount), "Received amount does not matches the amount sent"); + var receivedBuyer = transaction[6]; + var receivedSeller = transaction[7]; + var receivedAmount = transaction[0]; + var receivedStatus = transaction[2]; + var receivedTimeoutHours = transaction[5]; + var receivedThreshold = transaction[4]; + var receivedTransactionType = transaction[3]; + var receivedTokenAddress = transaction[8]; + + assert.equal(receivedBuyer, buyer, "Received buyer does not match the buyer sent"); + assert.equal(receivedSeller, seller, "Received seller does not match the seller sent"); + assert.equal(receivedAmount.toNumber(), Number(amount), "Received amount does not match the amount sent"); assert.equal(receivedStatus, 0, "Received status is not FUNDED(0)"); - assert.equal(receivedTimeoutHours, timeoutHours, "Received timeout hours does not matches the timeout hours sent"); - assert.equal(receivedThreshold, threshold, "Received threshold does not matches the threshold sent"); + assert.equal(receivedTimeoutHours, timeoutHours, "Received timeout hours does not match the timeout hours sent"); + assert.equal(receivedThreshold, threshold, "Received threshold does not match the threshold sent"); assert.equal(receivedTransactionType, 1, "Received transaction type is not TOKEN(1)"); - assert.equal(receivedTokenAddress, this.token.address, "Received token address does not matches the token address sent"); + assert.equal(receivedTokenAddress, this.token.address, "Received token address does not match the token address sent"); }); @@ -1194,8 +1186,8 @@ contract("Escrow Contract Version 1- Supports Token transfer", function() { assert.equal(eventName, "Funded", "Funded event should be fired"); assert.equal(from, buyer, "Transaction was sent from buyer's address: "+ buyer); - assert.equal(receivedScriptHash, scriptHash, "Received script hash does not matches the script hash sent"); - assert.equal(amountEscrowed.toNumber(), Number(amount), "Escrowed amount does not matches with the actual amount sent"); + assert.equal(receivedScriptHash, scriptHash, "Received script hash does not match the script hash sent"); + assert.equal(amountEscrowed.toNumber(), Number(amount), "Escrowed amount does not match with the actual amount sent"); assert.equal(buyerBalanceBefore.minus(Number(amount)).toNumber(), buyerBalanceAfter.toNumber(), "Buyer's token balance must reduce by escrowed amount: "+amount); assert.equal(escrowContractBalanceBefore.plus(Number(amount)).toNumber(), escrowContractBalanceAfter.toNumber(), "Escrow contract's token balance must increase by escrowed amount: "+amount); @@ -1203,25 +1195,23 @@ contract("Escrow Contract Version 1- Supports Token transfer", function() { //check whether the transaction stored in state is same as sent var transaction = await this.escrow.transactions(scriptHash); - receivedScriptHash = transaction[0]; - var receivedBuyer = transaction[7]; - var receivedSeller = transaction[8]; - var receivedAmount = transaction[1]; - var receivedStatus = transaction[3]; - var receivedTimeoutHours = transaction[6]; - var receivedThreshold = transaction[5]; - var receivedTransactionType = transaction[4]; - var receivedTokenAddress = transaction[9]; - - assert.equal(receivedScriptHash, scriptHash, "Received script hash does not matches the script hash sent"); - assert.equal(receivedBuyer, buyer, "Received buyer hash does not matches the buyer sent"); - assert.equal(receivedSeller, seller, "Received seller hash does not matches the seller sent"); - assert.equal(receivedAmount.toNumber(), Number(amount), "Received amount does not matches the amount sent"); + var receivedBuyer = transaction[6]; + var receivedSeller = transaction[7]; + var receivedAmount = transaction[0]; + var receivedStatus = transaction[2]; + var receivedTimeoutHours = transaction[5]; + var receivedThreshold = transaction[4]; + var receivedTransactionType = transaction[3]; + var receivedTokenAddress = transaction[8]; + + assert.equal(receivedBuyer, buyer, "Received buyer does not match the buyer sent"); + assert.equal(receivedSeller, seller, "Received seller does not match the seller sent"); + assert.equal(receivedAmount.toNumber(), Number(amount), "Received amount does not match the amount sent"); assert.equal(receivedStatus, 0, "Received status is not FUNDED(0)"); - assert.equal(receivedTimeoutHours, timeoutHours, "Received timeout hours does not matches the timeout hours sent"); - assert.equal(receivedThreshold, threshold, "Received threshold does not matches the threshold sent"); + assert.equal(receivedTimeoutHours, timeoutHours, "Received timeout hours does not match the timeout hours sent"); + assert.equal(receivedThreshold, threshold, "Received threshold does not match the threshold sent"); assert.equal(receivedTransactionType, 1, "Received transaction type is not TOKEN(1)"); - assert.equal(receivedTokenAddress, this.token.address, "Received token address does not matches the token address sent"); + assert.equal(receivedTokenAddress, this.token.address, "Received token address does not match the token address sent"); }); @@ -1260,8 +1250,8 @@ contract("Escrow Contract Version 1- Supports Token transfer", function() { assert.equal(eventName, "Funded", "Funded event should be fired"); assert.equal(from, buyer, "Transaction was sent from buyer's address: "+ buyer); - assert.equal(receivedScriptHash, scriptHash, "Received script hash does not matches the script hash sent"); - assert.equal(amountEscrowed.toNumber(), Number(amount), "Escrowed amount does not matches with the actual amount sent"); + assert.equal(receivedScriptHash, scriptHash, "Received script hash does not match the script hash sent"); + assert.equal(amountEscrowed.toNumber(), Number(amount), "Escrowed amount does not match with the actual amount sent"); assert.equal(buyerBalanceBefore.minus(Number(amount)).toNumber(), buyerBalanceAfter.toNumber(), "Buyer's token balance must reduce by escrowed amount: "+amount); assert.equal(escrowContractBalanceBefore.plus(Number(amount)).toNumber(), escrowContractBalanceAfter.toNumber(), "Escrow contract's token balance must increase by escrowed amount: "+amount); @@ -1269,25 +1259,23 @@ contract("Escrow Contract Version 1- Supports Token transfer", function() { //check whether the transaction stored in state is same as sent var transaction = await this.escrow.transactions(scriptHash); - receivedScriptHash = transaction[0]; - var receivedBuyer = transaction[7]; - var receivedSeller = transaction[8]; - var receivedAmount = transaction[1]; - var receivedStatus = transaction[3]; - var receivedTimeoutHours = transaction[6]; - var receivedThreshold = transaction[5]; - var receivedTransactionType = transaction[4]; - var receivedTokenAddress = transaction[9]; - - assert.equal(receivedScriptHash, scriptHash, "Received script hash does not matches the script hash sent"); - assert.equal(receivedBuyer, buyer, "Received buyer hash does not matches the buyer sent"); - assert.equal(receivedSeller, seller, "Received seller hash does not matches the seller sent"); - assert.equal(receivedAmount.toNumber(), Number(amount), "Received amount does not matches the amount sent"); + var receivedBuyer = transaction[6]; + var receivedSeller = transaction[7]; + var receivedAmount = transaction[0]; + var receivedStatus = transaction[2]; + var receivedTimeoutHours = transaction[5]; + var receivedThreshold = transaction[4]; + var receivedTransactionType = transaction[3]; + var receivedTokenAddress = transaction[8]; + + assert.equal(receivedBuyer, buyer, "Received buyer does not match the buyer sent"); + assert.equal(receivedSeller, seller, "Received seller does not match the seller sent"); + assert.equal(receivedAmount.toNumber(), Number(amount), "Received amount does not match the amount sent"); assert.equal(receivedStatus, 0, "Received status is not FUNDED(0)"); - assert.equal(receivedTimeoutHours, timeoutHours, "Received timeout hours does not matches the timeout hours sent"); - assert.equal(receivedThreshold, threshold, "Received threshold does not matches the threshold sent"); + assert.equal(receivedTimeoutHours, timeoutHours, "Received timeout hours does not match the timeout hours sent"); + assert.equal(receivedThreshold, threshold, "Received threshold does not match the threshold sent"); assert.equal(receivedTransactionType, 1, "Received transaction type is not TOKEN(1)"); - assert.equal(receivedTokenAddress, this.token.address, "Received token address does not matches the token address sent"); + assert.equal(receivedTokenAddress, this.token.address, "Received token address does not match the token address sent"); }); @@ -1332,8 +1320,8 @@ contract("Escrow Contract Version 1- Supports Token transfer", function() { assert.equal(eventName, "FundAdded", "Funded event should be fired"); assert.equal(from, buyer, "Transaction was sent from buyer's address: "+ buyer); - assert.equal(receivedScriptHash, scriptHash, "Received script hash does not matches the script hash sent"); - assert.equal(amountEscrowed.toNumber(), Number(amount), "Escrowed amount does not matches with the actual amount sent"); + assert.equal(receivedScriptHash, scriptHash, "Received script hash does not match the script hash sent"); + assert.equal(amountEscrowed.toNumber(), Number(amount), "Escrowed amount does not match with the actual amount sent"); assert.equal(buyerBalanceBefore.minus(Number(amount)).toNumber(), buyerBalanceAfter.toNumber(), "Buyer's token balance must reduce by escrowed amount: "+amount); assert.equal(escrowContractBalanceBefore.plus(Number(amount)).toNumber(), escrowContractBalanceAfter.toNumber(), "Escrow contract's token balance must increase by escrowed amount: "+amount); @@ -1341,25 +1329,23 @@ contract("Escrow Contract Version 1- Supports Token transfer", function() { //check whether the transaction stored in state is same as sent var transaction = await this.escrow.transactions(scriptHash); - receivedScriptHash = transaction[0]; - var receivedBuyer = transaction[7]; - var receivedSeller = transaction[8]; - var receivedAmount = transaction[1]; - var receivedStatus = transaction[3]; - var receivedTimeoutHours = transaction[6]; - var receivedThreshold = transaction[5]; - var receivedTransactionType = transaction[4]; - var receivedTokenAddress = transaction[9]; - - assert.equal(receivedScriptHash, scriptHash, "Received script hash does not matches the script hash sent"); - assert.equal(receivedBuyer, buyer, "Received buyer hash does not matches the buyer sent"); - assert.equal(receivedSeller, seller, "Received seller hash does not matches the seller sent"); - assert.equal(receivedAmount.toNumber(), Number(amount) + Number(amount), "Received amount does not matches the amount sent"); + var receivedBuyer = transaction[6]; + var receivedSeller = transaction[7]; + var receivedAmount = transaction[0]; + var receivedStatus = transaction[2]; + var receivedTimeoutHours = transaction[5]; + var receivedThreshold = transaction[4]; + var receivedTransactionType = transaction[3]; + var receivedTokenAddress = transaction[8]; + + assert.equal(receivedBuyer, buyer, "Received buyer does not match the buyer sent"); + assert.equal(receivedSeller, seller, "Received seller does not match the seller sent"); + assert.equal(receivedAmount.toNumber(), Number(amount) + Number(amount), "Received amount does not match the amount sent"); assert.equal(receivedStatus, 0, "Received status is not FUNDED(0)"); - assert.equal(receivedTimeoutHours, timeoutHours, "Received timeout hours does not matches the timeout hours sent"); - assert.equal(receivedThreshold, threshold, "Received threshold does not matches the threshold sent"); + assert.equal(receivedTimeoutHours, timeoutHours, "Received timeout hours does not match the timeout hours sent"); + assert.equal(receivedThreshold, threshold, "Received threshold does not match the threshold sent"); assert.equal(receivedTransactionType, 1, "Received transaction type is not TOKEN(1)"); - assert.equal(receivedTokenAddress, this.token.address, "Received token address does not matches the token address sent"); + assert.equal(receivedTokenAddress, this.token.address, "Received token address does not match the token address sent"); }); @@ -1474,7 +1460,7 @@ contract("Escrow Contract Version 1- Supports Token transfer", function() { var receivedScriptHash = txResult.logs[0].args.scriptHash; assert.equal(eventName, "Executed", "Executed event must be fired"); - assert.equal(receivedScriptHash, scriptHash, "Received script hash does not matches the script hash of the transaction executed"); + assert.equal(receivedScriptHash, scriptHash, "Received script hash does not match the script hash of the transaction executed"); var sellerBalanceAfter = await this.token.balanceOf(seller); var escrowContractBalanceAfter = await this.token.balanceOf(this.escrow.address); @@ -1518,7 +1504,7 @@ contract("Escrow Contract Version 1- Supports Token transfer", function() { var receivedScriptHash = txResult.logs[0].args.scriptHash; assert.equal(eventName, "Executed", "Executed event must be fired"); - assert.equal(receivedScriptHash, scriptHash, "Received script hash does not matches the script hash of the transaction executed"); + assert.equal(receivedScriptHash, scriptHash, "Received script hash does not match the script hash of the transaction executed"); var sellerBalanceAfter = await this.token.balanceOf(seller); var escrowContractBalanceAfter = await this.token.balanceOf(this.escrow.address); @@ -1559,7 +1545,7 @@ contract("Escrow Contract Version 1- Supports Token transfer", function() { var receivedScriptHash = txResult.logs[0].args.scriptHash; assert.equal(eventName, "Executed", "Executed event must be fired"); - assert.equal(receivedScriptHash, scriptHash, "Received script hash does not matches the script hash of the transaction executed"); + assert.equal(receivedScriptHash, scriptHash, "Received script hash does not match the script hash of the transaction executed"); var sellerBalanceAfter = await this.token.balanceOf(seller); var escrowContractBalanceAfter = await this.token.balanceOf(this.escrow.address); @@ -1596,7 +1582,7 @@ contract("Escrow Contract Version 1- Supports Token transfer", function() { try{ await this.escrow.execute(sig.sigV, sig.sigR, sig.sigS, scriptHash, [seller], [amountToBeGivenToSeller]); - assert.equal(true, false, "Should not be able to execute transaction using moderators signature"); + assert.equal(true, false, "Should not be able to execute transaction using moderator's signature"); }catch(error){ assert.notInclude(error.toString(), 'AssertionError', error.message);